3

我已经阅读了SQL Server事务日志,但仍不完全了解如何使用/管理它们。我知道它们对于事务回滚,镜像,复制和日志传送等很重要。不太了解SQL Server事务日志

对我来说,它们看起来仍然像一个黑盒子,我并不完全乐于与它们做任何事情。是否有工具可以让我查看事务日志文件或获取有关它的信息?如果我不需要诸如事务日志传送之类的东西,我可以定期缩减和/或截断我的日志文件吗?特别是在将备份还原到测试实例的情况下 - 我真的需要占用空间的多GB的日志文件吗?我还需要注意哪些其他功能对事务日志有特别的依赖性,如果我缩小/截断日志文件将无法工作?

回答

5

作为一般规则,除了确保它们不会太大以外,您不需要对事务日志执行任何操作。虽然可以使用日志挖掘工具从中读取这些信息,但这种情况很少见,并且除非您对DBA角色的其他方面感到满意,否则不要担心。

他们是一个黑匣子,他们工作得很好。

您应该选择一个适合您业务需求的恢复模式。一般来说,这将涉及确定是否需要时间点恢复,如果可能的话可能是“完全恢复模型”或其他“简单恢复模型”。

如果您确实使用完全恢复模式,那么您偶尔需要备份数据库(每天或每周,差异是常见选项),而您的交易记录每15分钟,几小时取决于交易量,可用空间以及您在最差情况下可承受损失的最大数据量。

如果您偶尔使用简单恢复备份数据库,但了解您无法进行时间点恢复。

在开发和测试中,在产品和“简单恢复模型”中有“完全恢复模型”是很常见的。但是你必须确定你的特殊需求并自己作出决定。

“收缩”事务日志的最安全方法是管理备份,以便您永远不必明确这样做。

阅读恢复模型,随时提问后续问题。

+0

能否详细说说最安全的收缩日志的方法吗? – kenwarner 2011-05-11 03:45:21

+1

在完全恢复模式下,在最后一次数据库备份之后发生的任何事务均会保留日志中的空间。当发生备份时,Sql Server会释放该空间。它现在可用于以后的交易,从而防止过度增长,而不是像这样“缩小”。如果您不备份空间未被释放的DB和/或事务日志,导致事务日志增长。尽管可以收缩日志,但您的第一道防线应该是备份管理。 – Karl 2011-05-11 04:31:39