Recuperar para um número de sequência de log (SQL Server)Recover to a Log Sequence Number (SQL Server)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Este tópico é relevante apenas para bancos de dados que estejam usando modelos de recuperação completa ou bulk-logged.This topic is relevant only for databases that are using the full or bulk-logged recovery models.

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.You can use a log sequence number (LSN) to define the recovery point for a restore operation. No entanto, esse é um recurso especializado destinado a fornecedores de ferramentas e provavelmente não é de uso geral.However, this is a specialized feature that is intended for tools vendors and is unlikely to be generally useful.

Visão geral de números de sequência de logOverview of Log Sequence Numbers

Os LSNs são usados internamente durante uma sequência RESTORE para localizar o point-in-time para o qual os dados foram restaurados.LSNs are used internally during a RESTORE sequence to track the point in time to which data has been restored. Quando um backup é restaurado, os dados são restaurados ao LSN que corresponde ao point-in-time em que o backup foi realizado.When a backup is restored, the data is restored to the LSN corresponding to the point in time at which the backup was taken. 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.Differential and log backups advance the restored database to a later time, which corresponds to a higher LSN. Saiba mais sobre LSNs no Guia de arquitetura e gerenciamento de log de transações do SQL Server.For more information about LSNs, see the SQL Server Transaction Log Architecture and Management Guide.

Observação

Os LSNs são valores do tipo de dados numérico (25,0) .LSNs are values of data type numeric(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.Arithmetic operations (for example, addition or subtraction) are not meaningful and must not be used with LSNs.

Exibir LSNs usados por Backup e RestauraçãoViewing LSNs used by Backup and Restore

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:The LSN of a log record at which a given backup and restore event occurred is viewable using one or more of the following:

Observação

Os LSNs também aparecem em algumas mensagens no log de erros.LSNs also appear in some messages in the error log.

Sintaxe de Transact-SQL para restaurar para um LSNTransact-SQL Syntax for restoring to an LSN

Usando uma instrução RESTORE é possível parar no LSN ou imediatamente antes, da seguinte maneira:By using a RESTORE statement, you can stop at or immediately before the LSN, as follows:

  • 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.Use the WITH STOPATMARK =' lsn:<lsn_number>' clause, where lsn:<lsnNumber> is a string that specifies that the log record that contains the specified LSN is the recovery point.

    O STOPATMARK efetua roll forward para o LSN e inclui o registro de log no roll forward.STOPATMARK roll forwards to the LSN and includes that log record in the 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.Use the WITH STOPBEFOREMARK =' lsn:<lsn_number>' clause, where lsn:<lsnNumber> is a string that specifies that the log record immediately before the log record that contains the specified LSN number is the recovery point.

    O STOPATMARK efetua roll forward para o LSN e exclui o registro de log do roll forward.STOPBEFOREMARK rolls forward to the LSN and excludes that log record from the roll forward.

Normalmente, uma transação específica é selecionada para ser incluída ou excluída.Typically, a specific transaction is selected to be included or excluded. Embora não seja exigido, na prática, o registro de log especificado é um registro da confirmação de transação.Although not required, in practice, the specified log record is a transaction-commit record.

ExemplosExamples

O exemplo a seguir assume que o banco de dados AdventureWorks foi alterado para usar o modelo de recuperação completa.The following example assumes that the AdventureWorks database has been changed to use the full recovery model.

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

Tarefas relacionadasRelated Tasks

Consulte TambémSee Also

Aplicar backups de log de transações (SQL Server) Apply Transaction Log Backups (SQL Server)
O log de transações (SQL Server) The Transaction Log (SQL Server)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Visão geral da restauração e recuperação (SQL Server) Restore and Recovery Overview (SQL Server)
Guia de arquitetura e gerenciamento de log de transações do SQL ServerSQL Server Transaction Log Architecture and Management Guide