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