【发布时间】:2010-11-03 22:08:14
【问题描述】:
如何增加事务日志的大小?是否也可以临时增加事务日志?
假设我有以下情况。我的删除操作对于当前事务日志来说太大了。我不想:
- 增加事务日志(我可以检测当前的大小吗?我可以知道我的操作需要多大的事务日志吗?)
- (执行我的操作)
- 备份事务日志
- 恢复事务日志的大小。
【问题讨论】:
标签: sql-server tsql transaction-log
如何增加事务日志的大小?是否也可以临时增加事务日志?
假设我有以下情况。我的删除操作对于当前事务日志来说太大了。我不想:
【问题讨论】:
标签: sql-server tsql transaction-log
简答:
长答案:您可以使用ALTER DATABASE ... MODIFY FILE 更改数据库文件的大小,包括LOG 文件。您可以查找master_files/sysfiles (2k) 或<dbname>.sys.database_files (2k5/2k8) 以获取日志的逻辑名称。您可以使用DBCC SHRINKFILE 来缩小文件(如果可能的话)。
我可以告诉我需要多大的 交易日志为我的 操作?
这取决于很多因素(这是新数据吗?它是更新吗?它是删除吗?什么恢复模型?您是否对 SQL 2k8 进行了压缩?等等),但通常比您预期的要大。我估计你将要执行的更新大小是 2.5 倍。
更新:
错过你说的是一个DELETE。粗略估计是删除数据(包括所有索引)大小的 1.5 倍。
【讨论】:
事务日志可以配置为根据需要扩展。您将选项设置为自动增长。 但是,当事务日志变得太大(磁盘空间不足)或使 sql server 无法使用时。
备份事务日志。 SQL 将自动截断不活动的事务
当你恢复事务日志时会减少
要配置自动增长:
【讨论】:
最重要的部分是场景的最后一行:“恢复事务日志的大小”。你的意思是把日志缩小到原来的大小。
这真的很危险,原因有很多,我们已经在 SQLServerPedia 的几个故事中介绍了它们:
【讨论】: