SQL服务器:如何增加事务日志的大小?
-
06-07-2019 - |
题
如何增加事务日志的大小?是否也可以暂时增加事务日志?
假设我有以下场景。我的删除操作对于当前事务日志来说太大。我想要:
- 增加事务日志(我可以检测当前大小吗?我可以知道我的操作需要多大的事务日志吗?)
- (执行我的操作)
- 备份事务日志
- 恢复事务日志的大小。
解决方案
简短回答:
- SQL 2k5/2k8 如何:增加数据库的大小 (SQL Server Management Studio) (也适用于日志), 如何:收缩数据库 (SQL Server Management Studio)
- SQL 2K 如何增加数据库的大小(企业管理器), 如何收缩数据库(企业管理器)
长答案:您可以使用 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 将自动截断不活动的事务
恢复时事务日志将会减少
配置自动增长:
- 右键单击 Management Studio 中的数据库。
- 选择属性
- 更新自动增长值
最重要的部分是场景的最后一行:“还原事务日志的大小。”您的意思是将日志缩小到原始大小。
由于多种原因,这确实很危险,我们在 SQLServerPedia 的几个故事中介绍了它们:
不隶属于 StackOverflow