Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Este tópico descreve como restaurar um banco de dados para um ponto no tempo no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. Este tópico é relevante apenas para bases de dados do SQL Server que utilizam os modelos de recuperação completa ou bulk-logged.
Importante
No modelo de recuperação bulk-logged, se um backup de log contiver alterações bulk-logged, não é possível realizar a recuperação point-in-time para qualquer ponto dentro desse backup. A base de dados deve ser recuperada até ao final do backup do log de transações.
Recomendações
Use o modo de espera para encontrar um ponto no tempo desconhecido.
Especificar o ponto no tempo no início de uma sequência de restauração
Permissões
Se a base de dados a ser restaurada não existir, o utilizador deve ter CREATE DATABASE permissões para poder executar RESTORE. Se a base de dados existir, RESTORE as permissões são, por predefinição, atribuídas aos membros das funções de servidor fixas sysadmin e dbcreator e ao proprietário (dbo) da base de dados (para a opção FROM DATABASE_SNAPSHOT, a base de dados existe sempre).
RESTORE As permissões 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 pertença ao papel fixo da base de dados só pode ser verificada quando a base de dados está acessível e intacta, o que nem sempre acontece quando RESTORE é executada, os membros do papel fixo da base de dados db_owner não têm RESTORE permissões.
Usando o SQL Server Management Studio
Para restaurar um banco de dados até um ponto no tempo
No Pesquisador de Objetos, conecte-se à instância apropriada do Mecanismo de Banco de Dados do SQL Server e expanda a árvore do servidor.
Expanda Bancos de dados. Dependendo do banco de dados, selecione um banco de dados de usuário ou expanda Bancos de Dados do Sistemae, em seguida, selecione um banco de dados do sistema.
Clique com o botão direito do rato na base de dados, seleccione Tarefas, escolha Restaurare, depois, clique em Base de Dados.
Na página Geral, use a seção Origem para especificar a fonte e o local dos conjuntos de backup a serem restaurados. Selecione uma das seguintes opções:
Base de Dados
Selecione a base de dados a restaurar na lista pendente. A lista contém apenas bancos de dados cujo backup foi feito de acordo com o msdb histórico de backup.
Observação
Se o backup for feito de um servidor diferente, o servidor de destino não terá as informações do histórico de backup do banco de dados especificado. Nesse caso, selecione Dispositivo para especificar manualmente o arquivo ou dispositivo a ser restaurado.
Dispositivo
Clique no botão Procurar (...) para abrir a caixa de diálogo Selecionar dispositivos de backup . Na caixa Tipo de mídia de cópia de segurança, 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 do Backup, clique em OK para retornar à página Geral do.
Na caixa de listagem Source: Device: Database, selecione o nome do banco de dados que deve ser restaurado.
Nota Esta lista só está disponível quando o Dispositivo estiver selecionado. Somente bancos de dados que tenham backups no dispositivo selecionado estarão disponíveis.
Na secção Destino, a caixa Banco de Dados é preenchida automaticamente com o nome do banco de dados a ser restaurado. Para alterar o nome do banco de dados, digite o novo nome na caixa Banco de Dados.
Clique em Linha do tempo para aceder à caixa de diálogo Linha do tempo de Backup.
Na seção Restaurar para, clique em Data e hora específicas.
Use as caixas Data e Hora ou a barra deslizante para especificar uma data e hora exatas onde a restauração deve ser interrompida. Selecione OK.
Observação
Use a caixa Intervalo da Linha do Tempo para alterar a quantidade de tempo exibida na linha do tempo.
Depois de especificar um momento específico no tempo, o Consultor de Recuperação de Bases de Dados garante que apenas os backups necessários para a restauração até esse momento sejam selecionados na coluna Restaurar da grelha de conjuntos de Backup para restaurar. Esses backups selecionados compõem o plano de restauração recomendado para sua restauração point-in-time. Você deve usar apenas os backups selecionados para a sua operação de restauração pontual.
Para obter informações sobre as colunas nos conjuntos de backup do para restaurar grade, consulte Restaurar banco de dados (página Geral). Para obter informações sobre o Consultor de Recuperação de Base de Dados, consulte Visão geral da restauração e recuperação (SQL Server).
Na página de Opções , no painel Opções de restauração , pode selecionar qualquer uma das seguintes opções, se for apropriado para a sua situação:
Sobrescrever a base de dados existente (WITH REPLACE)
Preservar as configurações de replicação (COM KEEP_REPLICATION)
Restringir o acesso ao banco de dados restaurado (COM RESTRICTED_USER)
Para obter mais informações sobre essas opções, consulte Restaurar banco de dados (página Opções).
Selecione uma opção para a caixa de estado de recuperação . Esta caixa determina o estado do banco de dados após a operação de restauração.
RESTORE WITH RECOVERY é o comportamento predefinido que deixa a base de dados pronta para uso ao reverter as transações não comprometidas. Logs de transações adicionais não podem ser restaurados. Selecione esta opção se estiver restaurando todos os backups necessários agora.
RESTORE WITH NORECOVERY , que deixa a base de dados inoperacional e não reverte as transações não comprometidas. Registos de transações adicionais podem ser restaurados. O banco de dados não pode ser usado até que seja recuperado.
RESTORE WITH STANDBY , que deixa a base de dados em modo apenas de leitura. Ele desfaz transações não confirmadas, mas guarda as ações de desfazer num ficheiro de espera para que os efeitos da recuperação possam ser revertidos.
Para obter descrições das opções, consulte Restaurar banco de dados (página Opções).
Faça backup de tail-log antes de restaurar será selecionado se for necessário para o ponto no tempo selecionado. Não é necessário modificar essa configuração, mas você pode optar por fazer backup da parte final do log, mesmo que não seja necessário.
As operações de restauração podem falhar se houver conexões ativas com o banco de dados. Marque a opção Fechar conexões existentes para garantir que todas as conexões ativas entre o Management Studio e o banco de dados sejam fechadas. Essa caixa de seleção define o banco de dados para o modo de usuário único antes de executar as operações de restauração e define o banco de dados para o modo multiusuário quando concluído.
Selecione "Aviso" antes de restaurar cada backup se desejar ser avisado entre cada operação de restauração. Isso geralmente não é necessário, a menos que o banco de dados seja grande e você deseje monitorar o status da operação de restauração.
Usando Transact-SQL
Antes de começar
Um tempo especificado é sempre restaurado a partir de um backup de log. Em cada RESTORE instrução LOG da sequência de restauro, deve especificar o seu tempo ou transação alvo numa cláusula STOPAT idêntica. Como pré-requisito para uma restauração num determinado momento, deve primeiro restaurar uma cópia de segurança completa da base de dados cujo endpoint seja anterior ao seu tempo de restauração previsto. Esse backup completo de banco de dados pode ser mais antigo do que o backup completo de banco de dados mais recente, desde que você restaure todos os backups de log subsequentes, até e incluindo o backup de log que contém o point-in-time de destino.
Para o ajudar a identificar qual a cópia de segurança da base de dados a restaurar, pode opcionalmente especificar a cláusula WITH STOPAT na instrução RESTOREDATABASE para produzir um erro se uma cópia de segurança de dados for demasiado recente para a hora de destino especificada. O backup completo de dados é sempre restaurado, mesmo que contenha o momento desejado.
Sintaxe básica Transact-SQL
RESTORE REGISTO database_name DE <backup_device> COM PARAR EM time= RECUPERAÇÃO...
O ponto de recuperação é a confirmação de transação mais recente que ocorreu em ou antes do valor de datetime especificado por hora.
Para restaurar apenas as modificações feitas antes de um point-in-time específico, especifique WITH STOPAT =time para cada backup restaurado. Isso garante que você não ultrapasse o tempo desejado.
Para restaurar um banco de dados até um ponto no tempo
Observação
Para obter um exemplo deste procedimento, consulte Exemplo (Transact-SQL), mais adiante nesta seção.
Conecte-se à instância do servidor na qual você deseja restaurar o banco de dados.
Execute a RESTOREDATABASE instrução usando a opção NORECOVERY.
Observação
Se uma sequência de restauração parcial excluir qualquer grupo de arquivos FILESTREAM, a restauração point-in-time não será suportada. Você pode forçar a sequência de restauração a continuar. No entanto, os grupos de ficheiros FILESTREAM que são omitidos na sua RESTORE instrução nunca podem ser restaurados. Para forçar um restauro para um ponto específico no tempo, especifique a opção CONTINUE_AFTER_ERROR juntamente com a opção STOPAT, STOPATMARK ou STOPBEFOREMARK, que também terá de especificar nas instruções LOG RESTORE subsequentes. Se você especificar CONTINUE_AFTER_ERROR, a sequência de restauração parcial será bem-sucedida e o grupo de arquivos FILESTREAM se tornará irrecuperável.
Restaure a última cópia de segurança diferencial da base de dados, se existir, sem recuperar a base de dados (RESTOREDATABASEdatabase_name FROM backup_device WITH NORECOVERY).
Aplique cada cópia de segurança do registo de transações pela mesma ordem em que foi criada, especificando a hora à qual pretende parar o restauro do registo (RESTOREDATABASEdatabase_name FROM <backup_device> WITH STOPAT =time, RECOVERY).
Observação
As opções RECOVERY e STOPAT. Se o backup do log de transações não contiver o tempo solicitado (por exemplo, se o tempo especificado for além do final do tempo coberto pelo log de transações), um aviso será gerado e o banco de dados permanecerá não recuperado.
Exemplo (Transact-SQL)
O exemplo a seguir restaura um banco de dados ao seu estado a partir de 12:00 AM no April 15, 2020 e mostra uma operação de restauração que envolve vários backups de log. No dispositivo de backup, AdventureWorksBackups, o backup completo do banco de dados a ser restaurado é o terceiro conjunto de backup no dispositivo (FILE = 3), o primeiro backup de log é o quarto conjunto de backup (FILE = 4) e o segundo backup de log é o quinto conjunto de backup (FILE = 5).
Importante
O banco de dados AdventureWorks2025 usa o modelo de recuperação simples. Para permitir backups de log, antes de fazer um backup completo do banco de dados, o banco de dados foi configurado para usar o modelo de recuperação completa, usando ALTER DATABASE AdventureWorks SET RECOVERY FULL.
RESTORE DATABASE AdventureWorks
FROM AdventureWorksBackups
WITH FILE=3, NORECOVERY;
RESTORE LOG AdventureWorks
FROM AdventureWorksBackups
WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE LOG AdventureWorks
FROM AdventureWorksBackups
WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM';
RESTORE DATABASE AdventureWorks WITH RECOVERY;
GO
Tarefas relacionadas
restaurar um banco de dados até o ponto de falha sob o modelo de recuperação completa (Transact-SQL)
restaurar um banco de dados para uma transação marcada (SQL Server Management Studio)
Recuperar para um Número de Sequência de Registo (SQL Server)
ToPointInTime (SMO)