【问题标题】:SQL Server: How do I increase the size of the transaction log?SQL Server:如何增加事务日志的大小?
【发布时间】:2010-11-03 22:08:14
【问题描述】:

如何增加事务日志的大小?是否也可以临时增加事务日志?

假设我有以下情况。我的删除操作对于当前事务日志来说太大了。我不想:

  • 增加事务日志(我可以检测当前的大小吗?我可以知道我的操作需要多大的事务日志吗?)
  • (执行我的操作)
  • 备份事务日志
  • 恢复事务日志的大小。

【问题讨论】:

    标签: sql-server tsql transaction-log


    【解决方案1】:

    简答:

    长答案:您可以使用ALTER DATABASE ... MODIFY FILE 更改数据库文件的大小,包括LOG 文件。您可以查找master_files/sysfiles (2k) 或<dbname>.sys.database_files (2k5/2k8) 以获取日志的逻辑名称。您可以使用DBCC SHRINKFILE 来缩小文件(如果可能的话)。

    我可以告诉我需要多大的 交易日志为我的 操作?

    这取决于很多因素(这是新数据吗?它是更新吗?它是删除吗?什么恢复模型?您是否对 SQL 2k8 进行了压缩?等等),但通常比您预期的要大。我估计你将要执行的更新大小是 2.5 倍。

    更新:

    错过你说的是一个DELETE。粗略估计是删除数据(包括所有索引)大小的 1.5 倍。

    【讨论】:

      【解决方案2】:

      事务日志可以配置为根据需要扩展。您将选项设置为自动增长。 但是,当事务日志变得太大(磁盘空间不足)或使 sql server 无法使用时。

      备份事务日志。 SQL 将自动截断不活动的事务

      当你恢复事务日志时会减少

      要配置自动增长:

      1. 在 Management Studio 中右键单击数据库。
      2. 选择属性
      3. 更新自动增长值

      【讨论】:

        【解决方案3】:

        最重要的部分是场景的最后一行:“恢复事务日志的大小”。你的意思是把日志缩小到原来的大小。

        这真的很危险,原因有很多,我们已经在 SQLServerPedia 的几个故事中介绍了它们:

        【讨论】:

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