小编典典

SQL Server 2008-缩小事务日志-是否有任何自动化方法?

sql

前几天我进去检查了我的交易日志,发现它有点疯狂,例如15GB。我运行了以下代码:

USE mydb
GO
BACKUP LOG mydb WITH TRUNCATE_ONLY
GO
DBCC SHRINKFILE(mydb_log,8)
GO

可以正常工作,将其压缩到8MB …但是有问题的数据库是Log Shipping Publisher,并且日志已经备份到500MB左右,并且增长很快。

除了创建自定义“执行T-
SQL语句任务”维护计划任务并将其挂接到我的日志备份任务之外,还有什么方法可以自动执行此日志收缩操作?如果那是最好的方法,那很好……但是我只是想SQL
Server会有更好的方法来处理这个问题。我认为应该在每次进行日志备份时自动缩小,但这并没有发生(也许是因为我的日志传送,我不知道)。

这是我当前的备份计划:

  • 每晚完整备份
  • 每天早晨清晨进行一次事务日志备份(也许可以将日志缩小到此备份…虽然不必每天都缩水)

又或者,在执行完整的备份任务后,我每周只运行一次?你们怎么想


阅读 195

收藏
2021-04-15

共1个答案

小编典典

如果文件每晚 增加到 500 MB,则只有一种正确的操作: 将文件预增长到500MB并保留在该位置
。缩小日志文件具有破坏性。日志文件自动增长也会造成破坏。

  • 您在正常操作期间遇到文件增长零填充初始化的情况,从而降低了性能
  • 您的日志以很小的增量增长,从而创建许多虚拟日志文件,从而导致较差的运行性能
  • 在收缩过程中,您的日志会变得支离破碎。尽管不如数据文件碎片那么糟糕,但日志文件碎片仍然会影响性能
  • 有一天,每天500MB的增长将用尽磁盘空间,您希望文件已预先增长

还有更多,我只是讨厌链接它们。

每次收缩日志文件时,仙女都会失去翅膀。

2021-04-15