You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

处于Full Recovery Mode的还原后SQL Server数据库如何清空事务日志

SQL Server Full恢复模式下清空事务日志操作方案

你遇到的报错是因为Full恢复模式下,刚还原的数据库还未生成有效初始完整备份,日志链未启动,无法执行事务日志备份,也就无法触发日志截断。要保持Full恢复模式,按以下步骤操作即可:

步骤1:先执行一次完整数据库备份,启动日志链

BACKUP DATABASE [test] TO DISK = N'替换为你的备份存储路径\test_full.bak'
WITH INIT, STATS = 10;

参数说明:INIT 表示覆盖路径下的同名备份文件,不需要可删除;STATS=10 表示每完成10%进度输出一次提示。

步骤2:执行事务日志备份,自动截断已提交事务占用的日志空间

BACKUP LOG [test] TO DISK = N'替换为你的备份存储路径\test_log.trn'
WITH INIT, STATS = 10;

执行完这一步,事务日志中已完成提交的事务占用的空间就会被标记为可复用,不会再持续占用日志文件空间。

步骤3(可选):收缩日志文件物理大小

如果之前日志文件已经膨胀到很大,做完上述备份后还需要缩小物理文件占用,先查询日志文件的逻辑名称:

SELECT name FROM sys.master_files WHERE database_id = DB_ID('test') AND type = 1;

拿到逻辑名后执行收缩操作,假设查询到的逻辑名为test_log,要收缩到100MB:

USE [test]
GO
DBCC SHRINKFILE (N'test_log', 100)
GO

注意事项

  • 禁止通过先切换到简单模式截断日志再切回Full模式的方式操作,该操作会打断日志链,导致断点之后的日志备份无法用于数据恢复,失去Full恢复模式的意义
  • Full恢复模式下需要定期执行完整备份+事务日志备份,才能保证日志空间自动复用,避免日志文件无限制增长
  • 如果业务不需要时间点恢复能力,可将数据库改为简单恢复模式,SQL Server会自动截断已提交事务的日志空间,无需手动备份日志。

内容的提问来源于stack exchange,提问作者dana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:06:04