在备份 LDF 文件期间执行事务时会发生什么情况?

What happens when a transaction is being carried out during backing up of LDF files?

我的数据库管理员建议我定期备份 .ldf 个文件。很好,这个 SQL post here 解释得很漂亮。

考虑在 SQL 服务器中进行交易。同时,计划进程尝试访问 .ldf 文件以对其进行备份。

会发生什么?这是如何工作的?

您必须阅读 Paul Randal 的文章 Understanding SQL Server backup。那是我能看到的最好的,可以从各个方面详细解释你。

关于您的问题,事务日志备份包括来自先前事务日志备份或启动日志链的完整备份的所有信息。备份只是意味着从文件(数据或日志)中读取信息并将其写入目标磁盘。事务 any 将独立于日志备份 运行 工作。事务遵循 WAL(预写日志记录)协议,出于实际目的,所有事务信息首先写入日志文件,然后再对数据文件进行更改。因此,当事务为 运行 时,它不会受到事务日志备份作业的影响,因为 运行 两者都在执行不同的任务并且是互斥事件。当前备份将尝试备份所有标记为已提交的日志,如果没有事务需要它,则会截断日志。如果日志的任何部分在日志备份读取该部分后提交,它将不会进入当前日志备份,但会进入进一步的日志备份。

事务日志备份在崩溃恢复中起着重要作用,它有助于确定哪些操作必须前滚,哪些操作必须回滚。没有事务日志备份或事务日志崩溃恢复是不可能的

您还必须阅读 Logging and recovery in SQL Server 以了解交易的生命周期。

关于内部发生的实际步骤的确切答案超出了讨论范围,因为没有人能exactly tell you会发生什么,但阅读这篇文章会给你一个好主意。

如果您还有其他问题,请告诉我。