SQL 事务日志备份与完整备份冲突?

Bra*_*adC 6 backup transaction-log sql-server

在我们的 SQL 服务器(2000、2005 和 2008)上,我们每天晚上运行一次完整备份,每 2 小时运行一次事务日志备份。我们并没有真正担心这两个过程会发生冲突,但最近我们遇到了以下一些问题:

  1. 在一台服务器上,trans log 备份偶尔会阻塞全量备份,必须手动停止全量备份才能完成

  2. 我们有时最终会得到一个超大的 trans log 备份文件(有时比完整备份还大!),它似乎是在完整备份运行的同时发生的。

我找到了一个参考,表明这些“不允许”同时运行,无论这意味着什么:SQL 2000 Books OnlineSQL 2005 Books Online。我不确定这是否意味着服务器会简单地阻止它们同时运行,或者我们是否应该在完整备份运行时明确停止日志备份。

那么这些之间是否存在已知的冲突/问题?SQL 版本之间的答案是否不同?我是否应该让 trans log 备份作业在执行之前检查完整备份是否正在运行?(我该怎么做……?)

Pau*_*dal 12

在 2000 年,日志备份不能与差异备份或完整备份同时运行(因为日志备份会清除一些事务日志,而完整/差异必须备份一些日志以允许恢复的数据库副本在事务上保持一致)。

2005 年,这一限制被取消。它们可以同时发生,但与完整或差异并发的日志备份不会清除日志。日志清除将延迟到完整备份或差异备份完成之前 - 这增加了完整备份和差异备份清除日志的神话 - 他们没有。

谢谢


mrd*_*nny 5

数据库备份通常应该被序列化。

大日志备份可能是由于在上次日志备份和完整备份之间发生的数据库维护操作而发生的。减少日志备份之间的间隔可能有助于解决这个问题。

您可以运行一些 T/SQL 来检查 sysprocesses 表(或 DMV,如果 SQL 2005+),以查看是否已经在该数据库上执行了备份。如果没有做备份,如果有,请优雅地退出。