Compartilhar via


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

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

O SQL Server 2005 e versões posteriores permitem utilizar um LSN (número de seqüê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 seqüê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 seqüê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 point-in-time, consulte Restaurando um banco de dados para um ponto em um backup.

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