Partilhar via


Recuperação para um número de sequência de log (LSN)

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

O SQL Server 2005 e versões posteriores permitem utilizar um LSN (número de sequência de log) para definir o ponto de recuperação para uma operação de restauração. Esse é um recurso especializado destinado a fornecedores de ferramentas e provavelmente não é de uso geral.

ObservaçãoObservação

Para obter mais informações sobre os requisitos para restauração de um ponto de recuperação específico, consulte Restaurando um banco de dados para um ponto em um backup.

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>', onde lsn:<lsnNumber> é uma sequência que determina 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 STOPATMARK ='lsn:<lsn_number>', onde 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.

Para mais informações sobre como usar LSNs, consulte Número de seqüência de log e planejamento de restauração.

Para obter mais informações sobre restaurações pontuais, consulte Restaurando um banco de dados para um ponto em um backup.

Exemplos

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

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