Dav*_*e D 38 sql-server sql-server-2005
我设置了三个维护计划以在 Sql Server 2005 实例上运行:
每小时的日志备份通常在几百 Kb 到 10Mb 之间,具体取决于活动水平,每日差异通常在周末增加到 250Mb 左右,每周备份约为 3.5Gb。
我遇到的问题是完整备份之前的优化似乎导致下一个事务日志备份在恢复正常之前增长到完整备份大小的 2 倍以上,在本例中为 8Gb。
除此之外BACKUP LOG <DatabaseName> WITH TRUNCATE_ONLY,是否有任何方法可以减少该日志备份的大小,或者完全防止将优化记录在事务日志中,因为它们肯定会在它们之前的完整备份中被考虑在内?
Pau*_*dal 35
这里有一些有趣的建议,这些建议似乎都显示了对日志备份如何工作的误解。日志备份包含自上次日志备份以来生成的所有事务日志,无论在此期间进行了哪些完整或差异备份。停止日志备份或移动到每日完整备份对日志备份大小没有影响。一旦日志备份链启动,唯一影响事务日志的是日志备份。
此规则的唯一例外是如果日志备份链已损坏(例如,通过进入 SIMPLE 恢复模型,从数据库快照恢复,使用 BACKUP LOG WITH NO_LOG/TRUNCATE_ONLY 截断日志),在这种情况下,第一个日志备份将包含自上次完整备份以来的所有事务日志 - 这会重新启动日志备份链;或者如果日志备份链尚未启动 - 当您第一次切换到 FULL 时,您将在一种伪简单恢复模型中运行,直到进行第一次完整备份。
要回答您最初的问题,无需进入 SIMPLE 恢复模型,您将不得不备份所有事务日志。根据您正在采取的操作,您可以更频繁地进行日志备份以减小其大小,或者执行更有针对性的数据库。
如果您可以发布一些有关您正在执行的维护操作的信息,我可以帮助您优化它们。您是否有机会进行索引重建,然后收缩数据库以回收索引重建使用的空间?
如果在进行维护时数据库中没有其他活动,您可以执行以下操作:
希望这会有所帮助 - 期待更多信息。
谢谢
[编辑:在关于完整备份是否可以改变后续日志备份的大小(它不能)的所有讨论之后,我整理了一篇包含背景材料和证明它的脚本的综合博客文章。查看https://www.sqlskills.com/blogs/paul/misconceptions-around-the-log-and-log-backups-how-to-convince-yourself/]
您可以缩小它们,但它们只会再次增长,最终导致磁盘碎片。索引重建和碎片整理会产生非常大的事务日志。如果您不需要时间点可恢复性,您可以更改为简单恢复模式并完全取消事务日志备份。
我猜您正在使用维护计划进行优化,您可以将其更改为使用仅在达到特定碎片级别时才进行索引碎片整理的脚本,并且您可能不会遭受任何性能损失。这将生成更小的日志。
顺便说一句,我会跳过每日差异以支持每日完整备份。
| 归档时间: |
|
| 查看次数: |
52807 次 |
| 最近记录: |