恢复完整备份会使其到备份开始时间还是备份结束时间?

Bra*_*adC 5 sql-server backup sql-server-2012

背景故事:我正在尝试将多个 SQL 2012 数据库的副本还原到不同的环境,但应用程序需要它们(大致)及时“同步”。

(当然,理想的方法是使用完整和日志备份使用完整恢复模式,然后使用相同的时间戳进行时间点恢复。但在我的情况下,我不需要它们完全同步,只需在大约 10 分钟左右,我宁愿只处理完整备份和还原。我确实可以控制完整备份的运行时间,但问题是数据库的大小非常不同,因此完整备份运行的时间很长时间长短不一样。)

所以我的问题是:我应该同步完整备份的开始时间吗?还是结束时间

换句话说,当我恢复完整备份时,我最终会看到备份开始时或完成时的样子吗?

pac*_*ely 10

看看这个链接

完整数据库备份提供了数据库的完整副本,并提供了可以将数据库还原到的单个时间点。尽管运行备份过程可能需要几个小时,但您仍然只能将备份还原到一个点(实际上是在备份结束时,但我将在本文后面详细讨论该点是什么)。完整备份不允许恢复到备份运行时的任何时间点。

  • 谢谢,这是一个非常切中要害的报价。对于不想阅读整个内容的任何人,Randal 稍后澄清说,“确切点”是备份过程*完成读取数据文件*,但在读取 tran 日志以捕获运行的事务之前在完整备份期间。所以,几乎是完成时间。 (3认同)
  • @variable 假设备份在晚上 10 点开始,在晚上 11 点完成读取数据文件,并在备份完成之前额外花了 2 分钟来捕获尾日志。恢复该备份将使您看到晚上 11:00 而非晚上 11:02(或晚上 10 点)的情况。因此,它确实*使用*备份中的尾部日志,但它使用它来让您回到开始读取尾部日志之前的那一刻(如果这有意义的话)。 (2认同)

Sco*_*red 6

Sql Server 备份包含所有已分配的数据页和足够的事务日志,因此还原操作可以恢复数据库,使其在读取数据操作完成时在事务上保持一致。

所以,回答你的问题

什么是完整备份的“时刻”?开始时间还是结束时间?

这是FINISH时间。

通过调用备份操作,在备份运行时对某些数据进行一些更改(确保提交它们),然后在某处恢复该备份并检查您的更改,应该很容易向自己证明这一点。

参考有关完整备份包含多少事务日志的更多信息