Sql server 当日志达到完整大小时写入事务日志

Sql server 当日志达到完整大小时写入事务日志,sql-server,transaction-log,Sql Server,Transaction Log,假设我们有一个定义了事务日志初始大小为100MB的数据库,maxsize是无限制的 SQL Server将自始至终按顺序写入日志。在一本书中,我发现了下一句话: 当SQL Server到达由大小定义的文件末尾时 当它建立起来的时候,它会重新回到起点, 寻找可用空间。SQL Server可以在没有 在有空闲虚拟磁盘时增加物理日志文件大小 事务空间。当使用SQL时,虚拟事务日志空间变为可用 服务器可以将事务日志中的数据写入底层数据库 数据库中的表 最后一部分让我很困惑。最后一句话是什么意思?这是否意

假设我们有一个定义了事务日志
初始大小为100MB的数据库,
maxsize
是无限制的

SQL Server将自始至终按顺序写入日志。在一本书中,我发现了下一句话:

当SQL Server到达由大小定义的文件末尾时 当它建立起来的时候,它会重新回到起点, 寻找可用空间。SQL Server可以在没有 在有空闲虚拟磁盘时增加物理日志文件大小 事务空间。当使用SQL时,虚拟事务日志空间变为可用 服务器可以将事务日志中的数据写入底层数据库 数据库中的表

最后一部分让我很困惑。最后一句话是什么意思?这是否意味着SQL Server会用新事务覆盖已提交的旧事务

据我所知,情况并非如此,因为在备份完成之前,必须显示所有事务


我不知道我是否足够清楚,如果需要一些解释,我将上传DTAE。

这只适用于简单的事务日志记录:

当SQL Server可以将事务日志中的数据写入数据库中的基础表时,虚拟事务日志空间将变得空闲

这意味着,一旦事务实际写入到物理表中,事务日志中就不再需要它们了。因为在这一点上,断电或另一个灾难性故障不再会导致事务“丢失”,因为它们已经保存到磁盘上


无需等待备份完成。但是,如果您需要完整的时间点恢复,您将使用完整的事务日志记录,在这种情况下,不会覆盖任何事务日志。

如果满足以下所有条件,则事务日志中不再需要日志记录:

它所属的事务已提交。 它更改的数据库页都已通过检查点写入磁盘。 备份(完整、差异或日志)不需要日志记录。 读取日志的任何功能(如数据库镜像或复制)都不需要日志记录

进一步阅读: