是什么LSN在SQL Server中是什么意思?(What does LSN mean in SQL

2019-09-19 08:04发布

什么是日志序列号是什么意思? 我知道,它的类型是二进制和10bytes的长,而且对应的时间在DB的交易发生。 但是,这是保存在一些高效的二进制格式或这是日期,时间和其他的东西(例如这种情况发生在同一毫秒交易的序列号)的函数这种高精度日期时间值。 我做了很多的搜索,但没有找到一个很好的答案。

任何一个可以与被用来从日期时间或任何的LSN一个公式或函数解释。

Answer 1:

在SQL Server事务日志中的每个记录具有唯一的日志序列号(LSN)标识。 LSN被排序,使得如果LSN 2比LSN1更大,由LSN 2中提到的日志记录中描述的变化通过日志记录LSN描述的改变后发生。

从这里 。

你不应该关心的是如何将这些生成的。



Answer 2:

这是一个递增的序列(1,2,3,4,...),而不是一个日期时间值。 从微软的文档 :

日志序列号(LSN)值是由三部分组成,唯一地递增值。 它是用于维护的数据库事务日志记录的序列。 这允许SQL Server保持ACID属性,并执行适当的恢复操作。



Answer 3:

没有任何万无一失的方法获得它,但你可以猜测它msdb.dbo.backupset你做了备份的机器上:

SELECT  last_lsn
FROM    msdb.dbo.backupset
WHERE   backup_start_date = @backup_date

这当然是不准确和不可靠的。



Answer 4:

LSN是自动生成的递增的数字时,事务的提交和备份完成,所以如果你想使用该序列的应用程序表使用while循环在你获取的顺序和使用日期 - 时间值。



文章来源: What does LSN mean in SQL Server?