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 中完整事务日志的实际原因

如何管理 SQL Server 日志大小

sql server 2008 的事务日志文件存储数据库的啥情况

关于SQL Server事务日志的问题汇总

sql server 2000中,如何查询事务日志?事务日志有啥作用?

如何清除 SQL Server 事务日志?