O que faz LSN média no SQL Server?
-
16-09-2019 - |
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.
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.