从SQL2005升级到2008 SP1之后,我们突然观察到在大事务期间数据库日志文件的不成比例的扩展。
例如:在表B中插入7500万行,在同一事务中删除表A中相同的75M行。 数据总量约为20GB的20倍,但数据库日志文件增长到150GB甚至更多。
在升级之前从未在SQL2005中看到过。
我无法find任何地方的SQL2008已知的回归logging..任何人也看到了这一点?
谢谢
马克斯
您始终可以使用fn_dblog()来分析日志内容,并了解增加来自哪里。 简单的恢复,日志可能会翻转,无法分析,所以出于分析的目的,我build议改变恢复到完整,采取一个虚拟的完整备份到/ dev / nul( backup database ... to disk='nul:' )并重新运行您的交易。 如果可能的话,记下事务ID(查看sys.dm_tran_active_transactions ),然后查看select ... from fn_dblog(null, null) where [TransactionID] = 'xactid'输出并查看生成哪种logging,以便日志增长到150Gb。 保留空间是您的相关列。 最后,如果可能的话,在SQL 2005上进行比较。
之后,您可以将恢复模式恢复为简单。 请注意,日志预留行为在简单的情况下可能会不同于完整的情况,但是如果发生这种情况,我们会跨越这个桥梁。
事务日志意外增长或在运行SQL Server的计算机上变满
这是SQL 2005,但也可能与2008年有关。
您的事务日志可能被设置为自动增长。 closures该设置并将日志文件设置为固定大小。
这是因为你的日志文件正在logging一切,我build议通过Shrink数据库任务来修剪数据库日志文件。 请记住在完成备份之后再执行该操作。
Tsql做到这一点:
USE [N2CMS] GO DBCC SHRINKDATABASE(N'MyDataBase', 10, TRUNCATEONLY)
根据备份方式的不同,备份软件应该能够做到这一点