Recuperar para um número de sequência de log (SQL Server)

Aplica-se a: SQL Server

Este tópico é relevante apenas para bancos de dados do que estejam usando modelos de recuperação completa ou bulk-logged.

Você pode usar um LSN (número de sequência de log) para definir o ponto de recuperação para uma operação de restauração. No entanto, esse é um recurso especializado destinado a fornecedores de ferramentas e provavelmente não é de uso geral.

Visão geral de números de sequência de log

Os LSNs são usados internamente durante uma sequência RESTORE para localizar o point-in-time para o qual os dados foram restaurados. Quando um backup é restaurado, os dados são restaurados ao LSN que corresponde ao point-in-time em que o backup foi realizado. O backup diferencial e o backup de log avançam o banco de dados restaurado para uma hora posterior que corresponde a um LSN mais alto. Saiba mais sobre LSNs no Guia de arquitetura e gerenciamento de log de transações do SQL Server.

Observação

Os LSNs são valores do tipo de dados numérico (25,0). Operações aritméticas (por exemplo, adição ou subtração) não são significativas e não devem ser usadas com LSNs.

Exibir LSNs usados por Backup e Restauração

O LSN de um registro de log no qual um determinado evento de backup e restauração ocorrido pode ser exibido usando um ou mais do seguinte:

Observação

Os LSNs também aparecem em algumas mensagens no log de erros.

Sintaxe de Transact-SQL para restaurar para um LSN

Usando uma instrução RESTORE é possível parar no LSN ou imediatamente antes, 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.

    O STOPATMARK efetua roll forward para o LSN e inclui o registro de log no roll forward.

  • Use a cláusula WITH STOPBEFOREMARK ='lsn:<lsn_number>', em que lsn:<lsnNumber> é uma sequência que determina que o registro de log imediatamente anterior ao registro de log que contém o número do LSN especificado é o ponto de recuperação.

    O STOPATMARK efetua roll forward para o LSN e exclui o registro de log do roll forward.

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

Exemplos

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

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

Related Tasks

Confira também

Aplicar backups de log de transações (SQL Server)
O log de transações (SQL Server)
RESTORE (Transact-SQL)
Visão geral da restauração e recuperação (SQL Server)
Guia de arquitetura e gerenciamento de log de transações do SQL Server