Fai*_*aiz 11 sql architecture sql-server logging cdc
Log Sequence Number是什么意思?我知道它是二进制类型和10bytes长,它对应于DB中事务发生的时间.但这是一个高精度的日期时间值,以某种有效的二进制格式存储,或者这是日期时间和其他东西的函数(例如,在相同的毫秒时间内发生的事务的序列号).我做了很多搜索,但找不到合适的答案.
任何人都可以解释用于从日期时间或任何事物中导出LSN的公式或函数.
小智 8
首先,很抱歉回复死帖子。我在搜索基于 LSN 的其他操作时来到这个线程。LSN只不过是序列号,它指定了以三个十六进制部分生成的日志序列号,例如00000016:0000003c:0001,这些部分如下:
通常,任何数据库操作以及事务的开始/结束都会被存储,并且事务的每个操作(显然包括开始和提交操作)都会按顺序获取 LSN。这些与任何时间戳无关,但可以根据 sys 函数与时间戳进行映射。@max 已经回复了。
任何针对事务的提交操作,强制切换到新的日志块,中间部分都会增加,否则最后部分将根据VLF的大小增加。
它是一个递增的序列(1,2,3,4,...),而不是日期时间值.从Microsoft文档:
日志序列号(LSN)值是一个由三部分组成的唯一递增值.它用于维护数据库中事务日志记录的顺序.这允许SQL Server维护ACID属性并执行适当的恢复操作.
归档时间: |
|
查看次数: |
25553 次 |
最近记录: |