在我们的SQL服务器上(2000年,2005年和2008年),我们每天晚上运行一次完整备份,每2小时进行一次事务日志备份。 我们并没有真正担心这两个过程相冲突,但最近我们遇到了以下一些问题:
在一台服务器上,传输日志备份有时会阻塞完整备份,必须在完整备份完成之前手动停止
我们有时会得到一个大规模的传输日志备份文件(有时候比完整备份还要大),这似乎是在完整备份运行的同时发生的。
我发现一个引用,指出这些是“不允许”在同一时间运行,无论这意味着什么: SQL 2000联机丛书和SQL 2005联机丛书 。 我不确定这是否意味着服务器将阻止它们同时运行,或者如果我们应该在完整备份运行时明确停止日志备份。
那么是否有这些冲突/问题? SQL版本的答案是否有所不同? 是否应该在执行完备份之前检查完整备份是否正在运行? (我该怎么做…?)
在2000年,日志备份无法与差异备份或完整备份同时运行(因为日志备份将清除一些事务日志,而完整/差异必须备份某些日志以允许恢复的数据库副本在事务上一致)。
2005年这个限制被解除了。 它们可以同时发生,但是与完整或差异同时进行的日志备份不会清除日志。 日志清除将被延迟,直到完整或差异完成 – 这增加了全面和差异备份清除日志的神话 – 他们不这样做。
谢谢
数据库备份通常应该被序列化。
大型日志备份可能是由于上次日志备份和完全备份之间发生的数据库维护操作而发生的。 减less日志备份之间的时间间隔可能会有所帮助。
您可以运行一些T / SQL来检查sysprocesses表(如果是SQL 2005+,则为DMV),以查看是否已在该数据库上执行备份。 如果不做备份的话,如果这样的话可以妥善保释。
还有一种可能性:如果您configuration了镜像,并且挂起了镜像,则只要镜像暂停,事务日志和数据库备份就会不断增长并继续增长。
在我的情况..我们有日志传送
SQL 2005 db完整备份时间: – 每15分钟23小时Tran日志: – 即22.15,22.30,22.45,23.00。
但是,每当数据库完整备份开始… tran日志停止生成,我们的备用数据库不同步。
所以我们推迟了5分钟的转换日志…问题得到了解决。