【发布时间】:2009-03-05 01:28:26
【问题描述】:
我阅读了一些关于恢复/备份的在线书籍,一个愚蠢的问题,如果我使用完整数据库备份/完整恢复模式,对于备份操作本身,它是否会为源数据库服务器生成任何额外的事务日志?完全恢复操作是否会为目标数据库生成额外的事务日志?
【问题讨论】:
标签: sql-server backup restore recoverymodel
我阅读了一些关于恢复/备份的在线书籍,一个愚蠢的问题,如果我使用完整数据库备份/完整恢复模式,对于备份操作本身,它是否会为源数据库服务器生成任何额外的事务日志?完全恢复操作是否会为目标数据库生成额外的事务日志?
【问题讨论】:
标签: sql-server backup restore recoverymodel
一个更有用的观点可能是说完全恢复可以防止事务日志的内容被覆盖而没有其他操作允许它们被覆盖
SQL Server 将记录大多数事务(例如批量加载和一些其他事务),并且在简单恢复模式下运行时,在与创建相同的事务相关的事务结束时有效地丢弃新创建的日志内容。在完全恢复模式下运行时,传输日志的内容会保留,直到标记为可被覆盖。要将它们标记为可被覆盖,通常会执行备份(完整或跨日志)。
如果 trans 日志中没有空间并且没有标记为可覆盖的日志内容,则 SQL Server 将尝试增加日志的大小。
实际上,完全恢复要求您管理事务日志,通常通过每隔一段时间执行一次事务日志备份(如果您没有 SLA 可工作或其他驱动程序来确定,则每 1 小时可能是一个很好的经验法则多久执行一次)
【讨论】:
我不确定我是否完全理解您的问题,但这里是。将您的数据库保持在完全恢复模式可以使您的事务日志变得非常大。权衡是您可以恢复到恢复点。
事务日志大于正常的原因是所有事务都已完全记录。这可以包括批量记录操作、索引创建等。
如果驱动器空间不是问题(并且驱动器如此便宜,不应该),这是推荐的备份方法。
【讨论】: