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
Restaurar um banco de dados até o ponto de falha no modelo de recuperação completa (Transact-SQL)
Restaurar um banco de dados para uma transação marcada (SQL Server Management Studio)
Restaurar um banco de dados do SQL Server até um ponto determinado (modelo de recuperação completa)
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