Что означает LSN в SQL Server? - PullRequest
9 голосов
/ 17 июля 2009

Что означает лог-номер последовательности? Я знаю, что он имеет тип двоичный и имеет длину 10 байт и соответствует времени транзакции в БД. Но является ли это значение даты-времени высокой точности, которое хранится в каком-то эффективном двоичном формате, или это функция даты-времени и чего-то еще (например, серийный номер транзакций, которые происходят в одну и ту же миллисекунду). Я много искал, но не смог найти хорошего ответа на этот вопрос.

Может ли кто-нибудь объяснить с помощью формулы или функции, которая используется для получения LSN из даты-времени или чего-либо еще.

Ответы [ 4 ]

17 голосов
/ 17 июля 2009

Каждая запись в SQL Server журнал транзакций уникально идентифицирован по порядковому номеру журнала (LSN). LSNS упорядочены так, что если LSN2 больше, чем LSN1, изменение описывается в записи журнала, упомянутой чтобы по LSN2 произошло после изменения описывается в журнале записи LSN.

С здесь .

Вы не должны беспокоиться о том, как они генерируются.

5 голосов
/ 17 июля 2009

Это возрастающая последовательность (1,2,3,4, ...), а не значение даты и времени. Из документации Microsoft :

Значение порядкового номера журнала (LSN) равно трехчастный, однозначно увеличивающийся значение. Он используется для поддержания последовательность журнала транзакций записи в базе данных. Это позволяет SQL Server для поддержки ACID свойства и выполнять соответствующие действия по восстановлению.

1 голос
/ 17 июля 2009

Не существует гарантированного способа его получения, но вы можете угадать его по msdb.dbo.backupset на машине, на которой вы сделали резервную копию:

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

Это, конечно, не точно и не надежно.

0 голосов
/ 28 ноября 2016

LSN - это автоматически генерируемый инкрементный номер, когда транзакции фиксируются и выполняется резервное копирование, поэтому, если вы хотите использовать эту последовательность в таблице приложения, используйте цикл while для получения последовательности и использования значений даты и времени.

...