在实时 SQL Server 备份期间会发生什么?

Sea*_*wat 22 backup sql-server

当我告诉他们我可以在 SQL Server 数据库仍在运行时对其进行备份时,我的一些同事感到惊讶,并想知道这怎么可能。我知道 SQL Server 能够在数据库仍处于联机状态时对其进行备份,但我不确定如何解释为什么可以这样做。我的问题是这对数据库有什么影响?

如果在备份运行时修改了数据(通过插入、更新或删除),备份会包含这些更改还是会在之后添加到数据库中?

我假设日志文件在这里起着重要作用,但我不太确定如何。

编辑:请注意,我的案例涉及使用 SQL Server 代理备份数据库以及此过程中数据库修改的影响。

Rem*_*anu 29

完整备份包含数据和日志。对于数据,它只是将数据库的每个页面复制到备份中,就像它读取页面的那一刻一样。然后它将所有“相关”日志附加到备份媒体中。这至少包括备份操作开始时的 LSN 和备份操作结束时的 LSN 之间的所有日志。实际上,通常有更多日志,因为它必须包括备份开始时的所有活动事务和复制所需的日志。请参阅揭穿有关完整数据库备份的几个误区

当数据库恢复时,所有的数据页被复制到数据库文件中,然后所有的日志页被复制到日志文件中。此时数据库不一致,因为它包含可能彼此不同步的数据页图像。但是现在正在运行正常的恢复。由于日志包含备份期间的所有日志,因此在恢复结束时数据库是一致的。

  • 很棒的帖子和链接提供了一个很好的例子。谢谢。 (2认同)