【问题标题】:SQL Server Clear transaction log [duplicate]SQL Server清除事务日志[重复]
【发布时间】:2021-10-26 19:41:18
【问题描述】:

我有一个处于完全恢复模式的数据库,我从备份文件中恢复了

现在我想清除/截断事务日志文件。 我该怎么做。

第 1 步我尝试使用备份事务日志

BACKUP LOG [test] TO  DISK

但我得到错误:

由于没有当前数据库备份,无法执行 BACKUP LOG。

如果我想将数据库保持在完全恢复模式,我应该怎么做才能清除转换日志

【问题讨论】:

  • 我不知道你为什么要这样做,但你可以这样做ALTER DATABASE [test] SET RECOVERY SIMPLE; ALTER DATABASE [test] SET RECOVERY FULL; 使用完全恢复的全部目的是保持备份链完整,如果你想不要这样做能够从新备份中恢复

标签: sql-server transaction-log


【解决方案1】:

一种解决方案是使用数据库菜单中的收缩数据库文件。

另一个正在使用一些脚本(将 dbname 更改为您的数据库名称):

ALTER DATABASE dbname
SET RECOVERY SIMPLE;  
GO  
-- Shrink the truncated log file to 1 MB.  
DBCC SHRINKFILE (dbname_Log,10);  
GO  
-- Reset the database recovery model.  
ALTER DATABASE dbname
SET RECOVERY FULL;  
GO  

【讨论】:

    【解决方案2】:

    这个:

    由于没有当前数据库备份,无法执行 BACKUP LOG。

    意味着您的数据库处于“伪完整”恢复中,并且在有人进行完整备份之前没有办法或需要进行日志备份,并且在每个检查点之后仍然会截断日志,就像在 SIMPLE 恢复中一样型号。

    【讨论】:

      猜你喜欢
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 2014-10-17
      • 2012-08-08
      相关资源
      最近更新 更多