我发现了一些类似的这里,但是它是在近10年前被问到的,到那时已经没有选择了。我不知道现在有没有。
我正在对应用程序执行一些操作,并在应用程序前后进行备份,但是当我想恢复数据库以回滚到以前的版本时,需要花费大量的时间和精力。我想知道是否有任何快速的方法来获得差分备份,如myDB_v1、myDB_v2、v3等。并迅速恢复他们之间的联系。提前谢谢。
发布于 2020-09-08 23:48:38
的问题
不是的。如果没有完整的备份(也称为差异基本备份),仅应用差异备份是不可行的。
您希望从本质上撤消备份后所做的更改,而差异无法做到这一点。它们被设计成在另一个方向工作--它们“快速前进”,从先前的完全备份开始,使您能够更快地到达结束状态,而不必在此过程中重新执行实际的更改。
差异备份只包含上次完全备份后更改的数据页。您的场景需要撤消在执行差异备份后更改的页面--差异不知道将来会发生什么变化,因此很可能没有数据来撤消这些更改。为了执行您的建议,您需要对每个数据页进行备份,这样您就可以撤消任何可能的更改--这是一个完整的备份机制。
的问题
听起来你好像想看看数据库快照。
快照本质上是你要寻找的微分的逆图。它们跟踪自快照创建以来的更改,以便快照显示原始版本,而不管真实数据库发生了什么。快照还可以用于回滚到创建快照时的时间点。
来自医生们:
如果源数据库出现用户错误,则可以将源数据库还原到创建给定数据库快照时的状态。数据丢失仅限于自快照创建以来对数据库的更新。例如,在进行重大更新(如批量更新或架构更改)之前,在数据库上创建数据库快照保护数据。如果发生错误,可以通过将数据库还原到快照来使用快照进行恢复。为此目的,恢复可能比从备份恢复要快得多;但是,您不能在此之后进行前滚。
重要的是要注意快照不是备份。它们可以用于还原数据更改,但如果原始/真实数据库损坏或脱机,它们将毫无帮助。
您将希望阅读恢复到快照,以确保它确实满足您的需要,并确保各种限制适用于您的场景。特别是,为了恢复到快照,您需要先删除其他快照。
你提到"...myDB_v1,myDB_v2,v3等.并迅速地在它们之间恢复。“快照将允许您同时主动查询所有版本,但当您想将“真实”数据库还原到其中一个版本时,该过程将涉及删除所有其他快照版本。
https://dba.stackexchange.com/questions/275183
复制相似问题