这是我的第一篇DBA.SE帖子,如有任何错误,请通知我,谢谢!
我是一名新的DBA(不是IT专业人员,只是公司中没有其他人可以这样做),所以解释越基本,越好。我一直在阅读有关数据库备份策略的信息(或者,据我所知,它们称为“恢复策略”)。我了解完整,差异和事务日志备份的功能,但是我想知道为什么差异备份只能基于最新的完整备份。
如果差异备份是自上次完整备份以来发生的所有变化,那么为什么差异不能基于我选择的任何备份呢?更清楚地说,我要问的是在进行备份时(而不是在还原时)指定基准。我假设还原时,您将选择正确的基准和相应的差异来执行还原(不使用由基准B制成的差异从基准A还原)。
是什么原因阻止了此功能的实现?我认为一定有原因,我只是不知道那是什么。
注意:我知道不能指定基数,但是我的问题是为什么不指定?(我也对“为什么要这么做?”的讨论不感兴趣)
比喻
这是我了解差异备份的类比:
我有一个Excel文件,在单元格中有一些数据。
在第一天,我将复制此文件并将其存储在其他位置(“完整备份”)。
在第2天,我查看该文件并将其与在第1天创建的备份副本进行比较,并注意到所有已更改的单元以及它们的新值(“差异备份”)。我没有注意到对单元格所做的每一次更改,只是它的最终值是多少。如果单元格A1开始为“ Alfred”,更改为“ Betty”,“ Charlie”,然后更改为“ Dave”,那么我只会注意到“ A1现在是Dave”。
在第3天,我再次将当前文件与备份文件进行比较,并记下更改(另一个“差异备份”与第2天具有相同的基准)。同样,仅注意观察到的每个单元格的最终值,而不是整个一天中单元格的所有值。
在第4天,我再次比较并注意到更改。继续到单元格A1,现在它说“ Sarah”,即使一天中有其他10个名字,我只注意到“现在A1是Sarah”。
第5天,我的文件被弄乱了。因此,我看了第1天制作的备份副本,然后看了第4天记录的最终状态,然后将记录的更改应用于备份副本,现在我将文件“还原”到了第4天的状态。因此,我看一下在第1天进行的备份,看到在第4天单元格A1结束为“ Sarah”,并将备份单元格A1更改为“ Sarah”。
如果在第二天我又制作了文件的另一个备份副本(“完整”),那怎么办?为什么仍无法将第3或4天的文件与第1天制作的副本进行比较(读取,“进行差异备份”)?据我了解,SQL Server将要求我将(在进行另一次差异备份时)与第二天(如果已进行)进行的完整备份进行比较-没有其他选择。
COPY_ONLY
-如果OP在第1天进行常规完整备份,COPY_ONLY
在第2天进行完整备份,那么从同一基准应用更高的差异将导致什么问题?到第二天备份?