Partilhar via


Restaurar um backup de log de transações (SQL Server)

Aplica-se a:SQL Server

Este tópico descreve como restaurar um backup de log de transações no SQL Server usando o SQL Server Management Studio ou o Transact-SQL.

Neste tópico

Antes de começar

Pré-requisitos

  • Os backups devem ser restaurados na ordem em que foram criados. Antes de restaurar um backup de log de transações específico, você deve primeiro restaurar os seguintes backups anteriores sem reverter transações não confirmadas, ou seja, COM NORECOVERY:

    • O backup completo do banco de dados e o último backup diferencial, se houver, feito antes do backup específico do log de transações. Antes da criação do backup de banco de dados completo ou diferencial mais recente, o banco de dados deve estar usando o modelo de recuperação completa ou o modelo de recuperação bulk-logged.

    • Todos os backups de log de transações feitos após o backup completo do banco de dados ou o backup diferencial (se você restaurar um) e antes do backup de log de transações específico. Os backups de log devem ser aplicados na sequência em que foram criados, sem lacunas na cadeia de logs.

      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).

Segurança

Permissões

As permissões RESTORE são dadas a funções nas quais as informações de associação estão sempre prontamente disponíveis para o servidor. Como a associação à função de banco de dados fixa pode ser verificada somente quando o banco de dados está acessível e sem danos, 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.

Usando o SQL Server Management Studio

Advertência

O processo normal de uma restauração é selecionar os backups de log na caixa de diálogo Restore Database juntamente com os backups de dados e diferenciais.

Para restaurar um backup de log de transações

  1. Depois de se conectar à instância apropriada do Mecanismo de Banco de Dados do Microsoft SQL Server, no Pesquisador de Objetos, clique no nome do servidor para expandir a árvore do servidor.

  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.

  3. Clique com o botão direito do rato na base de dados, aponte para Tarefas, aponte para Restaurare, em seguida, clique em Registo de Transação, que abre a caixa de diálogo Restaurar Registo de Transação.

    Observação

    Se o Log de Transações estiver acinzentado, poderá ser necessário restaurar primeiro um backup completo ou diferencial. Use a caixa de diálogo de cópia de segurança da Base de Dados .

  4. Na página Geral, na caixa de listagem Banco de Dados, selecione o nome de um banco de dados. Somente os bancos de dados no estado de restauração são listados.

  5. Para especificar a origem e o local dos conjuntos de backup a serem restaurados, clique em uma das seguintes opções:

    • De backups anteriores do banco de dados

      Selecione o banco de dados a ser restaurado na lista suspensa. A lista contém apenas bases de dados que foram sujeitos a backup de acordo com o histórico de backup do msdb.

    • De arquivo ou fita

      Clique no botão Procurar (...) para abrir a caixa de diálogo Selecionar dispositivos de backup. Na caixa Tipo de mídia de backup, selecione um dos tipos de dispositivo listados. Para selecionar um ou mais dispositivos para a caixa de mídia do Backup, clique em Adicionar.

      Depois de adicionar os dispositivos desejados à caixa de listagem de mídia de Backup , clique em OK para retornar à página Geral .

  6. No Selecione os backups de log de transações para restaurar grade, selecione os backups a serem restaurados. Essa grade lista os backups de log de transações disponíveis para o banco de dados selecionado. Um backup de log só estará disponível se a sua Primeira LSN for maior que a Última LSN do banco de dados. Os backups de log são listados na ordem dos números de sequência de log (LSN) que eles contêm, e eles devem ser restaurados nessa ordem.

    A tabela a seguir lista os cabeçalhos de coluna da grade e descreve seus valores.

    Cabeçalho Valor
    Restaurar As caixas de seleção marcadas indicam os conjuntos de backup a serem restaurados.
    Nome Nome do conjunto de backup.
    Componente Componente de backup: Banco de dados, Arquivo, ou <> em branco (para logs de transações).
    Base de Dados Nome do banco de dados envolvido na operação de backup.
    Data de início Data e hora em que a operação de backup começou, apresentada na configuração regional do cliente.
    Data de término Data e hora em que a operação de backup terminou, apresentada na configuração regional do cliente.
    Primeiro LSN Número de sequência de log da primeira transação no conjunto de backup. Campo vazio para cópias de segurança.
    Última LSN Número de seqüência de log da última transação no conjunto de backup. Campo vazio para cópias de segurança.
    LSN do posto de controlo Número de sequência de log do ponto de verificação mais recente no momento em que o backup foi criado.
    LSN completo Número de seqüência de log do backup completo de banco de dados mais recente.
    Servidor Nome da instância do Mecanismo de Banco de Dados que executou a operação de backup.
    Nome de Utilizador Nome do usuário que executou a operação de backup.
    Tamanho Tamanho do conjunto de backup em bytes.
    Posição Posição do conjunto de backup no volume.
    Expiração Data e hora em que o conjunto de backup expira.
  7. Selecione uma das seguintes opções:

    • Ponto no tempo

      Mantenha 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 Restauro no Ponto no Tempo.

    • Transação marcada

      Restaure o banco de dados para uma transação marcada anteriormente. Selecionar esta opção inicia a caixa de diálogo Selecionar Transação Marcada, que exibe uma tabela com a lista das transações marcadas disponíveis nos backups de logs de transações selecionados.

      Por padrão, a restauração é até, mas excluindo, a transação marcada. Para também restaurar a transação marcada, selecione Incluir transação marcada.

      A tabela a seguir lista os cabeçalhos de coluna da grade e descreve seus valores.

      Cabeçalho Valor
      <em branco> Exibe uma caixa de seleção para selecionar a marca.
      Marca de transação Nome da transação marcada especificada pelo usuário quando a transação foi confirmada.
      Data Data e hora da transação quando foi confirmada. A data e a hora da transação são exibidas conforme registrado na tabela msdbgmarkhistory, e não na data e hora do computador cliente.
      Descrição Descrição da transação marcada especificada pelo usuário quando a transação foi confirmada (se houver).
      LSN Número de sequência de log da transação marcada.
      Base de Dados Nome do banco de dados onde a transação marcada foi confirmada.
      Nome de Utilizador Nome do usuário do banco de dados que confirmou a transação marcada.
  8. Para exibir ou selecionar as opções avançadas, clique em Opções no painel Selecionar uma página.

  9. Na seção Opções de restauração, as opções são:

    • Preservar as definições de replicação (WITH KEEP_REPLICATION)

      Preserva as configurações de replicação ao restaurar um banco de dados publicado em um servidor diferente do servidor onde o banco de dados foi criado.

      Esta opção só está disponível com a opção Deixe o banco de dados pronto para uso revertendo as transações não confirmadas... opção (descrita mais tarde), que é equivalente a restaurar um backup com a opção RECOVERY.

      Marcar essa opção equivale a usar a opção KEEP_REPLICATION em uma instrução Transact-SQLRESTORE.

    • Avisar antes de restaurar cada cópia de segurança

      Antes de restaurar cada conjunto de backup (após o primeiro), essa opção exibe a caixa de diálogo Continuar com a restauração, que solicita que você indique se deseja continuar a sequência de restauração. Esta 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.

      Essa opção é particularmente útil quando você precisa trocar fitas por conjuntos de mídia diferentes. Por exemplo, você pode usá-lo quando o servidor tiver apenas um dispositivo de fita. Aguarde até estar pronto para prosseguir antes de clicar em OK.

      Clicar em Sem deixa o banco de dados no estado de restauração. Conforme sua conveniência, você pode continuar a sequência de restauração após a última restauração concluída. Se o próximo backup for um backup diferencial ou de dados, use a tarefa Restaurar Banco de Dados novamente. Se o próximo backup for um backup de log, use a tarefa Restaurar Log de Transações.

    • Restringir o acesso ao banco de dados restaurado (COM RESTRICTED_USER)

      Torna o banco de dados restaurado disponível apenas para os membros do db_owner, dbcreatorou sysadmin.

      Marcar essa opção é sinônimo de usar a opção RESTRICTED_USER em uma instrução Transact-SQLRESTORE.

  10. Para as opções do estado de recuperação , especifique o estado do banco de dados após a operação de restauração.

    • Deixe o banco de dados pronto para uso revertendo transações não confirmadas. Logs de transações adicionais não podem ser restaurados. (RESTAURAR COM RECUPERAÇÃO)

      Recupera o banco de dados. Essa opção é equivalente à opção RECOVERY em uma instrução Transact-SQLRESTORE.

      Escolha esta opção somente se não tiver arquivos de log que deseja restaurar.

    • Deixe o banco de dados inoperacional e não reverta transações não confirmadas. Logs de transações adicionais podem ser restaurados. (RESTAURAR COM NORECOVERY)

      Deixa o banco de dados não recuperado, no estado de RESTAURANDO. Essa opção é equivalente ao uso da opção NORECOVERY em uma instrução Transact-SQLRESTORE.

      Quando você escolhe essa opção, a opção Preservar configurações de replicação não está disponível.

      Importante

      Para um espelho ou banco de dados secundário, sempre selecione essa opção.

    • Deixe o banco de dados no modo somente leitura. Desfazer transações não confirmadas, mas guardar as ações de desfazer num ficheiro para que os efeitos de recuperação possam ser anulados. (RESTAURAR COM MODO DE ESPERA)

      Deixa o banco de dados em estado de espera. Essa opção é equivalente ao uso da opção STANDBY em uma instrução Transact-SQLRESTORE.

      Escolher essa opção requer que você especifique um arquivo em espera.

  11. Opcionalmente, especifique um nome de arquivo em espera na caixa de texto Arquivo em espera. Essa opção será necessária se você deixar o banco de dados no modo somente leitura. Você pode procurar o arquivo em espera ou digitar seu nome de caminho na caixa de texto.

Usando Transact-SQL

Importante

Recomendamos que o utilizador especifique sempre explicitamente WITH NORECOVERY ou WITH RECOVERY em cada instrução RESTORE para eliminar a ambiguidade. Isso é particularmente importante ao escrever scripts.

Para restaurar um backup de log de transações

  1. Execute a instrução RESTORE LOG para aplicar o backup do log de transações, especificando:

    • O nome do banco de dados ao qual o log de transações será aplicado.

    • O dispositivo de backup a partir do qual o backup do log de transações será restaurado.

    • A cláusula NORECOVERY.

    A sintaxe básica para esta instrução é a seguinte:

    RESTAURE LOG database_name A PARTIR DE <backup_device> COM NORECOVERY.

    Onde 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.

  2. Repita a etapa 1 para cada backup de log de transações que você precisa aplicar.

  3. Depois de restaurar o último backup na sequência de restauração, para recuperar o banco de dados, use uma das seguintes instruções:

    • Recupere o banco de dados como parte da última instrução RESTORE LOG:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;  
      GO  
      
    • Aguarde para recuperar o banco de dados usando uma instrução RESTORE DATABASE separada:

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

      Esperar para recuperar o banco de dados lhe dá a oportunidade de verificar se você restaurou todos os backups de log necessários. Essa abordagem é geralmente aconselhável quando se está a executar uma restauração pontual.

    Importante

    Se você estiver criando um banco de dados espelho, omita a etapa de recuperação. Um banco de dados espelho deve permanecer no estado RESTORE.

Exemplos (Transact-SQL)

Por padrão, o banco de dados AdventureWorks2025 usa o modelo de recuperação simples. Os exemplos a seguir exigem a modificação do banco de dados para usar o modelo de recuperação completa, da seguinte maneira:

ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;  

Um. Aplicando um único backup de log de transações

O exemplo a seguir começa restaurando o banco de dados AdventureWorks2025 usando um backup de banco de dados completo que reside em um dispositivo de backup chamado AdventureWorks2022_1. O exemplo aplica o primeiro backup de log de transações que reside em um dispositivo de backup chamado AdventureWorks2022_log. Finalmente, o exemplo recupera o banco de dados.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

B. Aplicação de múltiplos backups de logs de transações

O exemplo a seguir começa restaurando o banco de dados AdventureWorks2025 usando um backup de banco de dados completo que reside em um dispositivo de backup chamado AdventureWorks2022_1. O exemplo então aplica, um a um, os três primeiros backups de log de transações que residem em um dispositivo de backup chamado AdventureWorks2022_log. Finalmente, o exemplo recupera o banco de dados.

RESTORE DATABASE AdventureWorks2022  
   FROM AdventureWorks2022_1  
   WITH NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 1,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 2,  
   NORECOVERY;  
GO  
RESTORE LOG AdventureWorks2022  
   FROM AdventureWorks2022_log  
   WITH FILE = 3,  
   NORECOVERY;  
GO  
RESTORE DATABASE AdventureWorks2022  
   WITH RECOVERY;  
GO  

Tarefas relacionadas

Ver também

RESTAURAR (Transact-SQL)
Aplicar backups de log de transações (SQL Server)