Restaurar um backup de log de transações (SQL Server)Restore a Transaction Log Backup (SQL Server)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Este tópico descreve como restaurar um backup de log de transação no SQL Server 2017SQL Server 2017 usando o SQL Server Management StudioSQL Server Management Studio ou o Transact-SQLTransact-SQL.This topic describes how to restore a transaction log backup in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Neste tópicoIn This Topic

Antes de começarBefore You Begin

Pré-requisitosPrerequisites

  • Os backups devem ser restaurados na ordem em que foram criados.Backups must be restored in the order in which they were created. Antes de poder restaurar um backup de log de transações específico, restaure primeiro os backups anteriores seguintes sem reverter as transações não confirmadas, isto é WITH NORECOVERY:Before you can restore a particular transaction log backup, you must first restore the following previous backups without rolling back uncommitted transactions, that is WITH NORECOVERY:

    • O backup de banco de dados completo e o último backup diferencial, se houver, realizado antes do backup de log de transações específico.The full database backup and the last differential backup, if any, taken before the particular transaction log backup. Antes do backup de banco de dados completo ou diferencial mais recente tiver sido criado, o banco de dados deverá usar o modelo de recuperação completa ou o modelo de recuperação bulk-logged.Before the most recent full or differential database backup was created, the database must have been using the full recovery model or bulk-logged recovery model.

    • Todos os backups de log de transações efetuados depois do backup de banco de dados completo ou o backup diferencial (se você o restaurar) e antes do backup de log de transações específico.All transaction log backups taken after the full database backup or the differential backup (if you restore one) and before the particular transaction log backup. Devem ser aplicados backups de log na sequência na qual eles foram criados, sem qualquer intervalo na cadeia de logs.Log backups must be applied in the sequence in which they were created, without any gaps in the log chain.

      Para obter mais informações sobre backups de log de transações, consulte Backups de log de transações (SQL Server) e Aplicar backups de log de transações (SQL Server).For more information about transaction log backups, see Transaction Log Backups (SQL Server) and Apply Transaction Log Backups (SQL Server).

SegurançaSecurity

PermissõesPermissions

As permissões RESTORE são concedidas a funções nas quais as informações de associação estão sempre disponíveis para o servidor.RESTORE permissions are given to roles in which membership information is always readily available to the server. Como a associação da função de banco de dados fixa pode ser verificada apenas quando o banco de dados está acessível e não danificado, o que nem sempre é o caso quando RESTORE é executado, os membros da função de banco de dados fixa db_owner não têm permissões RESTORE.Because fixed database role membership can be checked only when the database is accessible and undamaged, which is not always the case when RESTORE is executed, members of the db_owner fixed database role do not have RESTORE permissions.

Usando o SQL Server Management StudioUsing SQL Server Management Studio

Aviso

O processo normal de uma restauração é selecionar os backups de log na caixa de diálogo Restaurar Banco de Dados junto com os dados e backups diferenciais.The normal process of a restore is to select the log backups in the Restore Database dialog box along with the data and differential backups.

Para restaurar um backup de log de transaçõesTo restore a transaction log backup

  1. Depois de se conectar à instância apropriada do MicrosoftMicrosoft Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine, no Pesquisador de Objetos, clique no nome do servidor para expandir a árvore do servidor.After connecting to the appropriate instance of the MicrosoftMicrosoft Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.

  2. Expanda Bancos de Dadose, dependendo do banco de dados, selecione um banco de dados de usuário ou expanda Bancos de Dados do Sistema e selecione um banco de dados do sistema.Expand Databases, and, depending on the database, either select a user database or expand System Databases and select a system database.

  3. Clique com o botão direito do mouse no banco de dados, aponte para Tarefas, Restaurare clique em Log de Transações, o que abre a caixa de diálogo Restaurar Log de Transações .Right-click the database, point to Tasks, point to Restore, and then click Transaction Log, which opens the Restore Transaction Log dialog box.

    Observação

    Se a opção Log de Transações estiver acinzentada, talvez seja necessário restaurar um backup completo ou diferencial primeiro.If Transaction Log is grayed out, you may need to restore a full or differential backup first. Use a caixa de diálogo Backup de banco de dados .Use the Database backup dialog box.

  4. Na página Geral , na caixa de listagem Banco de Dados , selecione o nome de um banco de dados.On the General page, in the Database list box, select the name of a database. Só são listados bancos de dados no estado de restauração.Only databases in the restoring state are listed.

  5. Para especificar a origem e o local dos conjuntos de backup a serem restaurados, clique em uma das seguintes opções:To specify the source and location of the backup sets to restore, click one of the following options:

    • De backups anteriores do banco de dadosFrom previous backups of database

      Selecione o banco de dados a ser restaurado na lista suspensa.Select the database to restore from the drop-down list. A lista contém apenas os bancos de dados dos quais foi feito um backup de acordo com o histórico de backup do msdb .The list contains only databases that have been backed up according to the msdb backup history.

    • Do arquivo ou fitaFrom file or tape

      Clique no botão Procurar ( ... ) para abrir a caixa de diálogo Selecione dispositivos de backup .Click the browse (...) button to open the Select backup devices dialog box. Na caixa Tipo de mídia de backup , selecione um dos tipos de dispositivo listados.In the Backup media type box, select one of the listed device types. Para selecionar um ou mais dispositivos da caixa Mídia de backup , clique em Adicionar.To select one or more devices for the Backup media box, click Add.

      Após adicionar os dispositivos desejados à caixa de listagem Mídia de backup , clique em OK para voltar à página Geral .After you add the devices you want to the Backup media list box, click OK to return to the General page.

  6. Na grade Selecione os backups de log de transações a serem restaurados , selecione os backups a serem restaurados.In the Select the transaction log backups to restore grid, select the backups to restore. Essa grade lista os backups de log de transações disponíveis para o banco de dados selecionado.This grid lists the transaction log backups available for the selected database. Um backup de log só estará disponível se o Primeiro LSN for maior do que o Último LSN do banco de dados.A log backup is available only if its First LSN greater than the Last LSN of the database. Os backups de log são listados na ordem dos números de sequência de log (LSN) que eles contêm e devem ser restaurados nessa ordem.Log backups are listed in the order of the log sequence numbers (LSN) they contain, and they must be restored in this order.

    A tabela a seguir lista os cabeçalhos de coluna da grade e descreve seus valores.The following table lists the column headers of the grid and describes their values.

    CabeçalhoHeader ValorValue
    RestaurarRestore Caixas de seleção selecionadas indicam os conjuntos de backup a serem restaurados.Selected check boxes indicate the backup sets to be restored.
    NomeName Nome do conjunto de backup.Name of the backup set.
    ComponenteComponent O componente de backup: Database, File ou <blank> (para logs de transações).Backed-up component: Database, File, or <blank> (for transaction logs).
    Backup de banco de dadosDatabase Nome do banco de dados envolvido na operação de backup.Name of the database involved in the backup operation.
    Data de InícioStart Date A data e hora do início da operação de backup, apresentadas na configuração regional do cliente.Date and time when the backup operation began, presented in the regional setting of the client.
    Data de ConclusãoFinish Date Data e hora de término da operação de backup, apresentadas na configuração regional do cliente.Date and time when the backup operation finished, presented in the regional setting of the client.
    Primeiro LSNFirst LSN Número de sequência de log da primeira transação no conjunto de backup.Log sequence number of the first transaction in the backup set. Em branco para backups de arquivo.Blank for file backups.
    Último LSNLast LSN Número de sequência de log da última transação no conjunto de backup.Log sequence number of the last transaction in the backup set. Em branco para backups de arquivo.Blank for file backups.
    LSN do Ponto de VerificaçãoCheckpoint LSN Número de sequência de log do ponto de verificação mais recente no momento em que o backup foi criado.Log sequence number of the most recent checkpoint at the time the backup was created.
    LSN CompletoFull LSN Número de sequência de log do backup de banco de dados completo mais recente.Log sequence number of the most recent full database backup.
    ServidorServer Nome da instância do Mecanismo de Banco de Dados que executou a operação de backup.Name of the Database Engine instance that performed the backup operation.
    Nome do UsuárioUser Name Nome do usuário que realizou a operação de backup.Name of the user who performed the backup operation.
    TamanhoSize Tamanho do conjunto de backup em bytes.Size of the backup set in bytes.
    PosiçãoPosition Posição do conjunto de backup no volume.Position of the backup set in the volume.
    ValidadeExpiration Data e hora de vencimento do conjunto de backup.Date and time the backup set expires.
  7. Selecione uma destas opções:Select one of the following:

    • Point-in-timePoint in time

      Retenha o padrão (Mais recente possível) ou selecione uma data e hora específicas clicando no botão Procurar, que abre a caixa de diálogo Recuperação Pontual .Either retain the default (Most recent possible) or select a specific date and time by clicking the browse button, which opens the Point in Time Restore dialog box.

    • Transação marcadaMarked transaction

      Restaure o banco de dados a uma transação previamente marcada.Restore the database to a previously marked transaction. Selecionar esta opção inicia a caixa de diálogo Selecionar Transação Marcada que exibe uma grade com uma lista das transações marcadas disponíveis nos backups de log de transações selecionados.Selecting this option launches the Select Marked Transaction dialog box, which displays a grid listing the marked transactions available in the selected transaction log backups.

      Por padrão, a restauração vai até a transação marcada, mas a exclui.By default, the restore is up to, but excluding, the marked transaction. Para restaurar também a transação marcada, selecione Incluir transação marcada.To restore the marked transaction also, select Include marked transaction.

      A tabela a seguir lista os cabeçalhos de coluna da grade e descreve seus valores.The following table lists the column headers of the grid and describes their values.

      CabeçalhoHeader ValorValue
      <em branco><blank> Exibe uma caixa de seleção para selecionar a marca.Displays a checkbox for selecting the mark.
      Transaction MarkTransaction Mark Nome da transação marcada especificado pelo usuário quando a transação foi confirmada.Name of the marked transaction specified by the user when the transaction was committed.
      DataDate Data e hora de confirmação da transação.Date and time of the transaction when it was committed. A data e hora da transação são exibidas como registradas na tabela msdbgmarkhistory , não a data e hora do computador cliente.Transaction date and time are displayed as recorded in the msdbgmarkhistory table, not in the client computer's date and time.
      DescriçãoDescription Descrição da transação marcada especificada pelo usuário quando a transação foi confirmada (se houver).Description of marked transaction specified by the user when the transaction was committed (if any).
      LSNLSN Número de sequência de log da transação marcada.Log sequence number of the marked transaction.
      Backup de banco de dadosDatabase Nome do banco de dados em que a transação marcada foi confirmada.Name of the database where the marked transaction was committed.
      Nome do UsuárioUser Name Nome do usuário do banco de dados que confirmou a transação marcada.Name of the database user who committed the marked transaction.
  8. Para exibir ou selecionar as opções avançadas, clique em Opções no painel Selecionar uma página .To view or select the advanced options, click Options in the Select a page pane.

  9. Na seção Opções de restauração , as opções são:In the Restore options section, the choices are:

    • Preservar as configurações de replicação (WITH KEEP_REPLICATION)Preserve the replication settings (WITH KEEP_REPLICATION)

      Preserva as configurações de replicação ao restaurar um banco de dados publicado em um servidor diferente daquele onde o banco de dados foi criado.Preserves the replication settings when restoring a published database to a server other than the server where the database was created.

      Essa opção só está disponível com a opção Deixar o banco de dados pronto para uso revertendo transações não confirmadas... (descrita adiante), que é equivalente a restaurar um backup com a opção RECOVERY .This option is available only with the Leave the database ready for use by rolling back the uncommitted transactions... option (described later), which is equivalent to restoring a backup with the RECOVERY option.

      Marcar essa opção equivale a usar a opção KEEP_REPLICATION em uma instrução Transact-SQLTransact-SQLRESTORE .Checking this option is equivalent to using the KEEP_REPLICATION option in a Transact-SQLTransact-SQLRESTORE statement.

    • Perguntar antes de restaurar cada backupPrompt before restoring each backup

      Antes de restaurar cada conjunto de backup (depois do primeiro), essa opção traz a caixa de diálogo Continuar Restauração que solicita a você que indique se deseja continuar a sequência de restauração.Before restoring each backup set (after the first), this option brings up the Continue with Restore dialog box, which asks you to indicate whether you want to continue the restore sequence. Essa caixa de diálogo exibe o nome do próximo conjunto de mídia (se disponível), o nome do conjunto de backup e a descrição do conjunto de backup.This dialog displays the name of the next media set (if available), the backup set name, and backup set description.

      Essa opção é particularmente útil quando você deve trocar fitas para conjuntos de mídia diferentes.This option is particularly useful when you must swap tapes for different media sets. Por exemplo, você poderá usá-la quando o servidor tiver só um dispositivo de fita.For example, you can use it when the server has only one tape device. Espere até estar pronto para continuar antes de clicar em OK.Wait until you are ready to proceed before clicking OK.

      Clicar em Não deixa o banco de dados em estado de restauração.Clicking No leaves the database in the restoring state. Quando for conveniente, você poderá continuar a sequência de restauração depois da última restauração concluída.At your convenience, you can continue the restore sequence after the last restore that completed. Se o próximo backup for um backup de dados ou diferencial, use a tarefa Restaurar Banco de Dados novamente.If the next backup is a data or differential backup, use the Restore Database task again. Se o backup seguinte for um backup de log, use a tarefa Restaurar Log de Transações .If the next backup is a log backup, use the Restore Transaction Log task.

    • Acesso restrito ao banco de dados restaurado (WITH RESTRICTED_USER)Restrict access to the restored database (WITH RESTRICTED_USER)

      Disponibiliza o banco de dados restaurado apenas para os membros do db_owner, dbcreatorou sysadmin.Makes the restored database available only to the members of db_owner, dbcreator, or sysadmin.

      Marcar essa opção é sinônimo de usar a opção RESTRICTED_USER em uma instrução Transact-SQLTransact-SQLRESTORE .Checking this option is synonymous to using the RESTRICTED_USER option in a Transact-SQLTransact-SQLRESTORE statement.

  10. Para as opções Estado de recuperação , especifique o estado do banco de dados após a operação de restauração.For the Recovery state options, specify the state of the database after the restore operation.

    • Deixe o banco de dados pronto para uso revertendo as transações não confirmadas. Os logs de transações adicionais não podem ser restaurados. (RESTORE WITH RECOVERY)Leave the database ready for use by rolling back uncommitted transactions. Additional transaction logs cannot be restored. (RESTORE WITH RECOVERY)

      Recupera o banco de dados.Recovers the database. Essa opção equivale à opção RECOVERY em uma instrução Transact-SQLTransact-SQLRESTORE .This option is equivalent to the RECOVERY option in a Transact-SQLTransact-SQLRESTORE statement.

      Só escolha essa opção se você não tiver nenhum arquivo de log que queira restaurar.Choose this option only if you have no log files you want to restore.

    • Deixe o banco de dados não operacional e não reverta as transações não confirmadas. Os logs de transações adicionais podem ser restaurados. (RESTORE WITH NORECOVERY)Leave the database non-operational, and do not roll back uncommitted transactions. Additional transaction logs can be restored. (RESTORE WITH NORECOVERY)

      Deixa o banco de dados não recuperado, no estado RESTORING .Leaves the database unrecovered, in the RESTORING state. Essa opção equivale a usar a opção NORECOVERY em uma instrução Transact-SQLTransact-SQLRESTORE .This option is equivalent to using the NORECOVERY option in a Transact-SQLTransact-SQLRESTORE statement.

      Quando você escolhe essa opção, a opção Preservar configurações de replicação fica indisponível.When you choose this option, the Preserve replication settings option is unavailable.

      Importante

      Para um banco de dados espelho ou secundário, sempre selecione essa opção.For a mirror or secondary database, always select this option.

    • Deixar o banco de dados no modo somente leitura. Desfaça as transações não confirmadas, mas salve as ações de desfazer em um arquivo, para que os efeitos da recuperação possam ser revertidos. (RESTORE WITH STANDBY)Leave the database in read-only mode. Undo uncommitted transactions, but save the undo actions in a file so that recovery effects can be reversed. (RESTORE WITH STANDBY)

      Deixa o banco de dados no estado de espera.Leaves the database in a standby state. Essa opção equivale a usar a opção STANDBY em uma instrução Transact-SQLTransact-SQLRESTORE .This option is equivalent to using the STANDBY option in a Transact-SQLTransact-SQLRESTORE statement.

      A escolha desta opção requer que você especifique um arquivo de espera.Choosing this option requires that you specify a standby file.

  11. Opcionalmente, especifique o nome do arquivo em espera na caixa de texto Arquivo em espera .Optionally, specify a standby file name in the Standby file text box. Essa opção será necessária se você deixar o banco de dados no modo somente leitura.This option is required if you leave the database in read-only mode. Você pode procurar o arquivo em espera ou pode digitar o nome do caminho na caixa de texto.You can browse for the standby file or type its pathname in the text box.

Usando o Transact-SQLUsing Transact-SQL

Importante

Nós recomendamos que você sempre especifique explicite WITH NORECOVERY ou WITH RECOVERY em toda instrução RESTORE para eliminar a ambiguidade.We recommend that you always explicitly specify either WITH NORECOVERY or WITH RECOVERY in every RESTORE statement to eliminate ambiguity. Isso é particularmente importante ao escrever scripts.This is particularly important when writing scripts.

Para restaurar um backup de log de transaçõesTo restore a transaction log backup

  1. Execute a instrução RESTORE para aplicar o backup de log de transações, especificando o seguinte:Execute the RESTORE LOG statement to apply the transaction log backup, specifying:

    • O nome do banco de dados ao qual o log de transações será aplicado.The name of the database to which the transaction log will be applied.

    • O dispositivo de backup a partir de onde o backup de log de transações será restaurado.The backup device where the transaction log backup will be restored from.

    • A cláusula NORECOVERY.The NORECOVERY clause.

    A sintaxe básica desta instrução é:The basic syntax for this statement is as follows:

    RESTORE LOG database_name FROM <backup_device> WITH NORECOVERY.RESTORE LOG database_name FROM <backup_device> WITH NORECOVERY.

    Em que database_name é o nome do banco de dados e <backup_device> é o nome do dispositivo que contém o backup de log que está sendo restaurado.Where database_name is the name of database and <backup_device>is the name of the device that contains the log backup being restored.

  2. Repita a etapa 1 para cada backup de log de transações você tiver que aplicar.Repeat step 1 for each transaction log backup you have to apply.

  3. Depois de restaurar o último backup na sua sequência de restauração, para recuperar o uso de banco de dados use uma das seguintes instruções:After restoring the last backup in your restore sequence, to recover the database use one of the following statements:

    • Recuperar o banco de dados como parte da última instrução RESTORE LOG:Recover the database as part of the last RESTORE LOG statement:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;  
      GO  
      
    • Espere para recuperar o banco de dados usando uma instrução separada RESTORE DATABASE:Wait to recover the database by using a separate RESTORE DATABASE statement:

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;   
      RESTORE DATABASE <database_name> WITH RECOVERY;  
      GO  
      

      Ao esperar para recuperar o banco de dados você tem a oportunidade de verificar se restaurou todos dos backups de log necessários.Waiting to recover the database gives you the opportunity to verify that you have restored all of the necessary log backups. Essa abordagem é aconselhável quando você estiver executando uma restauração point-in-time.This approach is often advisable when you are performing a point-in-time restore.

    Importante

    Se você estiver criando um banco de dados espelho, omita a etapa de recuperação.If you are creating a mirror database, omit the recovery step. Um banco de dados espelho deve permanecer no estado RESTORING.A mirror database must remain in the RESTORING state.

Exemplos (Transact-SQL)Examples (Transact-SQL)

Por padrão, o banco de dados AdventureWorks2012AdventureWorks2012 usa o modelo de recuperação simples.By default, the AdventureWorks2012AdventureWorks2012 database uses the simple recovery model. Os exemplos seguintes requerem a modificação do banco de dados para usar o modelo de recuperação completa, como segue:The following examples require modifying the database to use the full recovery model, as follows:

ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;  

A.A. Aplicando um único backup de log de transaçõesApplying a single transaction log backup

O exemplo seguinte inicia restaurando o banco de dados AdventureWorks2012AdventureWorks2012 usando um backup de banco de dados completo que reside em um dispositivo de backup chamado AdventureWorks2012_1.The following example starts by restoring the AdventureWorks2012AdventureWorks2012 database by using a full database backup that resides on a backup device named AdventureWorks2012_1. O exemplo aplica então o primeiro backup de log de transações que reside em um dispositivo de backup chamado AdventureWorks2012_log.The example then applies the first transaction log backup that resides on a backup device named AdventureWorks2012_log. Por fim, o exemplo recupera o banco de dados.Finally, the example recovers the database.

RESTORE DATABASE AdventureWorks2012  
   FROM AdventureWorks2012_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2012  
   FROM AdventureWorks2012_log  
   WITH FILE = 1,  
   WITH NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2012  
   WITH RECOVERY;  
GO  

B.B. Aplicando múltiplos backups de log de transaçõesApplying multiple transaction log backups

O exemplo seguinte inicia restaurando o banco de dados AdventureWorks2012AdventureWorks2012 usando um backup de banco de dados completo que reside em um dispositivo de backup chamado AdventureWorks2012_1.The following example starts by restoring the AdventureWorks2012AdventureWorks2012 database by using a full database backup that resides on a backup device named AdventureWorks2012_1. O exemplo aplica então, um por um, os três primeiros backups de log de transações que residem em um dispositivo de backup chamado AdventureWorks2012_log.The example then applies, one by one, the first three transaction log backups that reside on a backup device named AdventureWorks2012_log. Por fim, o exemplo recupera o banco de dados.Finally, the example recovers the database.

RESTORE DATABASE AdventureWorks2012  
   FROM AdventureWorks2012_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2012  
   FROM AdventureWorks2012_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2012  
   FROM AdventureWorks2012_log  
   WITH FILE = 2,  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2012  
   FROM AdventureWorks2012_log  
   WITH FILE = 3,  
   WITH NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2012  
   WITH RECOVERY;  
GO  

Tarefas relacionadasRelated Tasks

Consulte TambémSee Also

RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Aplicar backups de log de transações (SQL Server)Apply Transaction Log Backups (SQL Server)