是什么LSN在SQL Server中是什么意思?
-
16-09-2019 - |
题
什么是日志序列号的含义?我知道,它的类型是二进制和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循环在你获取的顺序和使用日期 - 时间值自动生成的增量数。
不隶属于 StackOverflow