【问题标题】:How to disable transaction logs in SQL Server 2008如何在 SQL Server 2008 中禁用事务日志
【发布时间】:2012-01-04 08:18:57
【问题描述】:

在 SQL Server 2008 中有什么方法可以禁用事务日志或清除日志文件?

当我在我的项目中执行一个查询(就事务而言非常大)时,该日志文件的大小将会增加(2 到 3 GB)。

请给我一些好的选择。

【问题讨论】:

  • 您的问题已在 SO 上提出并回答。这是链接stackoverflow.com/questions/996403/disable-transaction-log
  • @GuZzie 是的,但是该链接仅用于恢复模型- OP 还要求清除它.....所以不要只放置未完整的链接。
  • @RoyiNamir 问题已于 2 年前提出,但仍未解决?在那种情况下仍然相同的解决方案应该回答 Arun 的问题。抱歉帮了大忙
  • -1 认为缩小是解决方案

标签: sql-server-2008


【解决方案1】:

不能禁用 SQL Server 中的事务日志。没门。

你可以切换到简单的恢复模式

ALTER DATABASE YourDatabase SET RECOVERY SIMPLE

这将减少日志 - 但事务日志是 SQL Server 中如此基本的核心概念,您不能将其关闭。

【讨论】:

    【解决方案2】:

    你可以缩小它

    DECLARE @sql NVARCHAR(MAX) = ''
    SELECT @sql = @sql + N'DBCC SHRINKFILE('+CAST(file_id AS NVARCHAR)+N', 0);' 
    FROM sys.database_files
    WHERE type = 1
    
    EXEC(@sql)
    

    但是它只适用于简单恢复模式,而不是你必须备份日志并在之后缩小它

    您根本无法删除日志文件即使您的数据库处于只读模式。

    AND在处理 sql server 的数据库时尝试重新设计和审查您的方法。缩小文件不是正确的选择或最佳做法 - 尤其是定期缩小文件!

    【讨论】:

    • 感谢您的努力,为此创建作业是否正确,以便在特定时间间隔执行并缩小该文件?
    • 是的 - 只是在你的情况下可能是这样,但是在处理 sql server 的数据库时尝试重新设计和审查你的方法。收缩文件不是正确的选择或最佳做法——尤其是定期收缩!
    • 这适用于完全恢复,但它会破坏您的日志备份链。您需要完整备份来重置日志备份链。这也不是答案,真的。它只是解决了一个症状并产生了进一步的问题。我不会投反对票,因为你有资格收缩。这个问题虽然得到了一个
    • @gbn - 我假设,如果问题是关于“清除日志”甚至“扔掉它” - 那么没有任何选项可以谈论关于 8-) 的备份链或完整恢复模式
    【解决方案3】:

    您不能禁用事务日志。

    如果您的日志需要大 3GB,那就这样吧。如果你把它缩小,那么它只会再次增长并导致其他问题。

    如果是一次性的,您可以通过以下方式减缓增长

    【讨论】:

      【解决方案4】:

      将恢复模式更改为:simple

      ALTER DATABASE myDB SET RECOVERY SIMPLE
      

      然后运行

      DBCC SHRINKFILE (MyLog, 1); // to 1 MB
      

      但是你从哪里得到日志名称?

      sp_helpdb MyDb
      

      【讨论】:

      • 然后它再次增长,导致物理碎片和 VLF 问题。
      • @gbn 命令的存在并非毫无意义。我已经构建了一个哈希工具,它需要一个 bak - 恢复它,哈希数据,并创建一个新的 bak。现在,截断日志文件,对我有很大帮助。
      • 该命令用于特定用途。我知道你做了什么:你在 dba.se 上问过。但这并不意味着它适合使用 adhoc。和 -1
      • @gbn 附注我看不出我对别人的回答有什么不同。但没关系。
      • @gbn 什么是 VLF 问题?你能解释一下吗?
      猜你喜欢
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 2012-09-11
      相关资源
      最近更新 更多