Compartilhar via


Recuperar um Número de Sequência do Log (SQL Server)

Este tópico é relevante apenas para bancos de dados que estão usando os modelos de recuperação completa ou registro em massa.

Você pode usar um LSN (número de sequência de log) para definir o ponto de recuperação de uma operação de restauração. No entanto, esse é um recurso especializado que se destina aos fornecedores de ferramentas e é improvável que seja geralmente útil.

Visão geral dos números de sequência de logs

LSNs são usados internamente durante uma sequência de restauração para monitorar o ponto no tempo ao qual os dados foram restaurados. Quando um backup é restaurado, os dados são restaurados para o LSN correspondente ao ponto no tempo em que o backup foi feito. Backups diferenciais e de log levam o banco de dados recuperado para um ponto de tempo mais avançado, o que corresponde a um LSN mais alto.

Cada registro no log de transações é identificado exclusivamente por um LSN (número de sequência de log). LSNs são ordenados de modo que, se LSN2 for maior que LSN1, a alteração descrita pelo registro de log referenciado por LSN2 ocorreu após a alteração descrita pelo registro de log referenciado por LSN1.

O LSN de um registro de log no qual ocorreu um evento significativo pode ser útil para construir sequências de restauração corretas. Como os LSNs são ordenados, eles podem ser comparados para igualdade e desigualdade (ou seja, <, , >, ==<, >=). Essas comparações são úteis ao construir sequências de restauração.

Observação

LSNs são valores do tipo de dado numeric (25,0). As operações aritméticas (por exemplo, adição ou subtração) não são significativas e não devem ser usadas com LSNs.

Exibindo LSNs usados durante o backup e a restauração

O LSN de um registro de log no qual ocorreu um determinado evento de backup e restauração é acessível usando um ou mais dos seguintes:

Observação

LSNs também aparecem em alguns textos de mensagem.

Sintaxe Transact-SQL para Restaurar para um LSN

Usando uma instrução RESTORE , você pode parar em ou imediatamente antes do LSN, da seguinte maneira:

  • Use a cláusula WITH STOPATMARK ='lsn:<lsn_number>' , em que lsn:<lsnNumber> é uma cadeia de caracteres que especifica que o registro de log que contém o LSN especificado é o ponto de recuperação.

    STOPATMARK avança até o LSN e inclui esse registro de log na recuperação para frente.

  • Use a cláusula WITH STOPBEFOREMARK ='lsn:<lsn_number>' , em que lsn:<lsnNumber> é uma cadeia de caracteres que especifica que o registro de log imediatamente antes do registro de log que contém o número LSN especificado é o ponto de recuperação.

    STOPBEFOREMARK avança para o LSN e exclui esse registro de log do roll forward.

Normalmente, uma transação específica é selecionada para ser incluída ou excluída. Embora não seja necessário, na prática, o registro de log especificado é um registro de confirmação de transação.

Exemplos

O exemplo a seguir pressupõe que o AdventureWorks banco de dados foi alterado para usar o modelo de recuperação completa.

RESTORE LOG AdventureWorks FROM DISK = 'c:\adventureworks_log.bak'   
WITH STOPATMARK = 'lsn:15000000040000037'  
GO  

Tarefas Relacionadas

Consulte Também

Aplicar backups de log de transações (SQL Server)
O log de transações (SQL Server)
RESTORE (Transact-SQL)