Pergunta

O que é o significado da Log Sequence Number? Eu sei que ele é do tipo binário e 10bytes longa e corresponde ao tempo da transação acontecer no DB. Mas este é um valor de data e hora de alta precisão que é armazenado em algum formato binário eficiente ou isso é uma função de data-hora e outra coisa (por exemplo, o número de série de transações que acontecem ao mesmo segundo mili). Eu fiz um monte de pesquisa, mas não conseguiu encontrar uma boa resposta para isso.

Qualquer um pode explicar com uma fórmula ou função que é usada para derivar o LSN a partir da data-tempo ou nada.

Foi útil?

Solução

Cada registro no SQL Server log de transações é exclusivamente identificado por um número de sequência de registo (LSN). LSNs são ordenados de tal forma que se LSN2 é maior do que LSN1, a mudança descrito pelo registro de log referido para por LSN2 ocorreu após a mudança descrito pelo LSN registro de log.

A partir aqui .

Você não deve se preocupar com a forma como estes são gerados.

Outras dicas

É uma sequência crescente (1,2,3,4, ...), e não um valor de data e hora. Do Microsoft documentação :

O número de sequência de registo (LSN) valor é um de três parte, incrementando exclusivamente valor. Ele é usado para manter a sequência de registo de transação grava no banco de dados. Isso permite SQL Server para manter o ACID Propriedades e apropriado para executar ações de recuperação.

Não há nenhuma maneira garantida de obter isso, mas você pode adivinhar-lo de msdb.dbo.backupset na máquina que você fez o backup em:

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

Este é, naturalmente, não exata e não confiável.

LSN é um número incremental gerada automaticamente quando as transações são confirmadas e backup é feito, por isso, se você quiser usar essa seqüência ao uso tabela de aplicação while em sua para buscar a seqüência e usar os valores -time data.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top