什么是日志序列号是什么意思? 我知道,它的类型是二进制和10bytes的长,而且对应的时间在DB的交易发生。 但是,这是保存在一些高效的二进制格式或这是日期,时间和其他的东西(例如这种情况发生在同一毫秒交易的序列号)的函数这种高精度日期时间值。 我做了很多的搜索,但没有找到一个很好的答案。
任何一个可以与被用来从日期时间或任何的LSN一个公式或函数解释。
什么是日志序列号是什么意思? 我知道,它的类型是二进制和10bytes的长,而且对应的时间在DB的交易发生。 但是,这是保存在一些高效的二进制格式或这是日期,时间和其他的东西(例如这种情况发生在同一毫秒交易的序列号)的函数这种高精度日期时间值。 我做了很多的搜索,但没有找到一个很好的答案。
任何一个可以与被用来从日期时间或任何的LSN一个公式或函数解释。
在SQL Server事务日志中的每个记录具有唯一的日志序列号(LSN)标识。 LSN被排序,使得如果LSN 2比LSN1更大,由LSN 2中提到的日志记录中描述的变化通过日志记录LSN描述的改变后发生。
从这里 。
你不应该关心的是如何将这些生成的。
这是一个递增的序列(1,2,3,4,...),而不是一个日期时间值。 从微软的文档 :
日志序列号(LSN)值是由三部分组成,唯一地递增值。 它是用于维护的数据库事务日志记录的序列。 这允许SQL Server保持ACID属性,并执行适当的恢复操作。
没有任何万无一失的方法获得它,但你可以猜测它msdb.dbo.backupset
你做了备份的机器上:
SELECT last_lsn
FROM msdb.dbo.backupset
WHERE backup_start_date = @backup_date
这当然是不准确和不可靠的。
LSN是自动生成的递增的数字时,事务的提交和备份完成,所以如果你想使用该序列的应用程序表使用while循环在你获取的顺序和使用日期 - 时间值。