如何拆分SQL Server事务日志

时间:2012-09-18 19:47:23

标签: sql-server database-design transaction-log

我的数据库服务器刚刚耗尽磁盘空间。事务日志占用超过100GB的空间,我只有30GB的可用空间。因此,一些事务处理需要花费大量时间来处理9002错误。

我想问一下,我是否可以拆分此事务日志并删除其中一个以获得一些可用空间。现在我无法通过添加另一个磁盘来备份或增加磁盘空间。

如果任何人有一个比拆分事务日志更好的解决方案,那就太棒了。

2 个答案:

答案 0 :(得分:1)

有很多关于处理从这里链接的大型日志的好资源:

https://sqlblog.org/2009/07/27/oh-the-horror-please-stop-telling-people-they-should-shrink-their-log-files

基本上,您需要获得更多空间,备份日志或切换到数据库上的简单恢复模式。每种方法都有其起伏。

答案 1 :(得分:1)

实践

数据,日志&操作系统应该在不同的磁盘上...... 比较C表示操作系统,E表示数据,L表示日志。

如果您的事务日志在事务备份后没有收缩,那么您可能想要检查您的设置。全部或简单(不缩小日志)。

强制收缩数据库设置为简单的日志:

Alter database <databasename>set Recovery simple   /* if database is set to FULL */
USE <databasename>
DBCC SHRINKFILE (<log_name>, 0, TRUNCATEONLY)
GO
Alter database <databasename> set Recovery full  /* if database is set to FULL */

希望这会有所帮助