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

假设我有以下场景。我的删除操作对于当前事务日志来说太大。我想要:

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

解决方案

简短回答:

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

我能说出我的操作需要多大的交易日志吗?

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

更新:

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

其他提示

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

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

恢复时事务日志将会减少

配置自动增长:

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

最重要的部分是场景的最后一行:“还原事务日志的大小。”您的意思是将日志缩小到原始大小。

由于多种原因,这确实很危险,我们在 SQLServerPedia 的几个故事中介绍了它们:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top