完全备份和仅复制完全备份之间的区别


17

我在SQL Server中央线程中看到了完整备份会截断日志吗?完全备份不会截断日志:

否。完全备份或差异备份都不会截断事务日志。- 林恩佩蒂斯
否-一个完整的备份不会截断日志。- 乍得·克劳福德

那么完全备份和仅复制完全备份有什么区别?

对于日志备份,有仅复制备份,可以防止在不截断日志的情况下破坏日志链。那么什么是仅复制完整备份?

Answers:


14

至少您需要考虑差异备份。除非使用完全复制,否则您的下一个差异备份将关闭。仅复制备份

仅复制完整备份(所有恢复模型)仅复制备份不能用作差异基础或差异备份,并且不会影响差异基础。

完整副本和完整副本之间的唯一区别是,完整副本不会破坏差异链。它们都没有中断日志链,因为它们都没有截断日志文件。


24

完全备份和仅复制备份之间的主要区别在于LSN(日志序列号),尤其DatabaseBackupLSN是LSN是否已更新。

进行完全备份时, DatabaseBackupLSN更新。进行完整备份后,如果进行差异备份,则备份具有DatabaseBackupLSN与完全备份相匹配的备份,因此SQL可以将两者链接在一起(例如,从那些LSN知道差异遵循完整备份)。

当您计划运行备份时出现问题,因此您有一个初始的完整备份,然后是一系列的差异备份。如果您手动进行完全备份,它将更新LSN,从那时起,您通过计划备份进行的每个差异备份将引用新的LSN,而不是原始的LSN。如果需要还原,您可以还原计划的完整备份,但是当您尝试还原在手动作业后进行的任何差异备份时,您会发现它会失败,因为LSN不再匹配。

对于仅复制备份,它不会碰到DatabaseBackupLSN,因此不会破坏该备份链。

关于这个问题有一个很好的描述,以及为什么这么多人在Michael K. Campbell的《打破备份链– REDUX(或吃乌鸦)》中误解了它,其中包括像这样的出色视觉指南:

SQLmag映像-完全备份v复制_仅备份

要对四种不同的LSN及其用法进行很好的解释,请参阅Simon Liew的《了解备份SQL Server日志序列号》

避免此问题的方法是,对数据库进行标准备份时,不要只有一件以上的事情。任何临时备份或辅助备份都应使用仅复制选项完成,有关完整详细信息,请参见仅复制备份(SQL Server),但实际上,您可以通过WITH COPY_ONLY在命令中指定的T-SQL在SSMS中使用“仅复制备份”选项。,或与PowerShell一起使用-CopyOnly参数。


1
添加:实际上,仅“复制”允许出于非备份目的进行备份。对于客户而言,备份是自动完成的,是对企业备份系统的备份-还原是PAINFULL,尤其是将备份还原到其他环境(文书工作,白天进行)。“仅复制”使我可以在不干扰企业备份管理的备份的情况下进行复制,然后将其还原到测试环境。
TomTom

12

假设我们有一个包含计划备份的数据库。完整备份每24小时在00:00运行一次,此外,我们还有每6小时运行一次的差异备份和每小时运行一次的事务日志备份。因此,如果我们需要在一天中进行一次额外的完整备份以还原另一台服务器怎么办?在这种情况下我们该怎么办。当然,我们可以进行完整备份。

BACKUP DATABASE Test TO DISK = 'C:/Test.bak'

但是,当您对数据库进行备份时,会有一些更改会影响以下备份的还原方式(差异备份和事务日志备份均会影响还原操作的方式)。在这种情况下,所有随后的差异备份将依赖于上次完整备份。如果上次完全备份丢失,则无法进行数据库还原。在此处输入图片说明

但是我们如何进行备份,而不会影响该数据库的以下备份或还原过程。这是仅复制备份所在的位置。

BACKUP DATABASE Test TO DISK = 'C:\Test.bak' WITH COPY_ONLY

在此处输入图片说明


2

当您具有完整备份和一组日志文件备份时,将使用LSN(日志序列号)维护日志链。如果要在不中断日志链的情况下进行备份,请执行仅复制备份。

如果您不执行仅复制备份,则日志链将断开,您执行的备份将是最新的完整备份。这意味着先前的日志备份无法应用于新近采用的完整备份。日志链的维护主要是针对时间点恢复或日志传送方案。

例如:假设您有一个备份方案,该方案每6小时(午夜,上午6点,中午,下午6点)进行一次完整备份,并每15分钟进行一次日志备份。要求在上午9点收到,要求将您的数据库副本放置在测试服务器上。您希望在不中断日志链或不中断备份作业的情况下进行备份。这是仅复制备份的时间。仅复制备份不会破坏常规备份集。


1
我不认为仅复制备份会影响日志链。仅复制完全备份不会重置差异基准。这是唯一的difference.See这些链接sqlservercentral.com/Forums/Topic1471058-391-1.aspx?Update=1sqlinthewild.co.za/index.php/2011/03/08/...
IT研究员

1
我不同意你的回答。完全备份和仅复制完全备份都不会中断日志链。除了``不重置差异基准''之外,仅复制完全备份在各个方面都与普通完全备份完全相同。请参阅我在之前的评论中提到的论坛链接。
IT研究员

假设您有一个完整备份:FB1和3个日志备份:LB1,LB2,LB3。现在执行手动完整备份:FB2(不带copy_only)。等待另外3个日志备份:LB4,LB5,LB6。现在删除FB2。您可以还原FB1 + LB1 + LB2 + LB3 + LB4 + LB5 + LB6吗?
StanleyJohns

是的,我可以恢复。我先进行了完全备份(非复制)FB1,然后记录了备份(LB1),然后进行了完全备份(非复制)FB2,然后再次记录了备份(LB2)。然后我按此顺序恢复了FB1 + LB1 + LB2。正确还原,发现所有行输入正确。
IT研究员

2
-1,因为具有完全备份的仅复制选项与LSN链无关。Itresearcher指出了这一点,但您没有更新/删除答案。
爱德华·多特兰2014年

0

完全备份和仅复制备份不会中断日志链。仅当您执行日志备份时,才会存在LSN不匹配。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.