SQL Server:如何增加事务日志的大小?
Posted
技术标签:
【中文标题】SQL Server:如何增加事务日志的大小?【英文标题】:SQL Server: How do I increase the size of the transaction log? 【发布时间】:2010-11-03 22:08:14 【问题描述】:如何增加事务日志的大小?是否也可以临时增加事务日志?
假设我有以下情况。我的删除操作对于当前事务日志来说太大了。我不想:
增加事务日志(我可以检测当前的大小吗?我可以知道我的操作需要多大的事务日志吗?) (执行我的操作) 备份事务日志 恢复事务日志的大小。【问题讨论】:
【参考方案1】:简答:
SQL 2k5/2k8 How to: Increase the Size of a Database (SQL Server Management Studio)(也适用于日志),How to: Shrink a Database (SQL Server Management Studio) SQL 2K How to increase the size of a database (Enterprise Manager), How to shrink a database (Enterprise Manager)长答案:您可以使用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 将自动截断不活动的事务
当你恢复事务日志时会减少
要配置自动增长:
-
在 Management Studio 中右键单击数据库。
选择属性
更新自动增长值
【讨论】:
【参考方案3】:最重要的部分是场景的最后一行:“恢复事务日志的大小”。你的意思是把日志缩小到原来的大小。
这真的很危险,原因有很多,我们已经在 SQLServerPedia 的几个故事中介绍了它们:
http://sqlserverpedia.com/wiki/Shrinking_Databases http://sqlserverpedia.com/blog/sql-server-backup-and-restore/backup-log-with-truncate_only-like-a-bear-trap/ http://sqlserverpedia.com/blog/sql-server-bloggers/i-was-in-the-pool-dealing-with-sql-shrinkage/【讨论】:
以上是关于SQL Server:如何增加事务日志的大小?的主要内容,如果未能解决你的问题,请参考以下文章
sql server 2008 的事务日志文件存储数据库的啥情况