Restaurar arquivos para um novo local (SQL Server)

Aplica-se a:SQL Server

Este tópico descreve como restaurar arquivos para um novo local no SQL Server usando o SQL Server Management Studio ou o Transact-SQL.

Limitações e Restrições

  • O administrador do sistema que restaura os arquivos deve ser a única pessoa atualmente usando o banco de dados a ser restaurado.

  • RESTORE não é permitido numa transação explícita ou implícita.

  • No modelo de recuperação completa ou bulk-logged, antes de restaurar ficheiros, deve-se efetuar uma cópia de segurança do log de transações ativo (conhecido tecnicamente como a cauda do log). Para obter mais informações, consulte Fazer cópia de segurança de um registo de transações (SQL Server).

  • Para restaurar um banco de dados criptografado, você deve ter acesso ao certificado ou à chave assimétrica usada para criptografar o banco de dados. Sem o certificado ou a chave assimétrica, o banco de dados não pode ser restaurado. Como resultado, o certificado usado para criptografar a chave de criptografia do banco de dados deve ser mantido enquanto o backup for necessário. Para obter mais informações, consulte Certificados do SQL Server e Chaves Assimétricas.

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 ficheiros para uma nova localização

  1. No Pesquisador de Objetos, conecte-se a uma instância do Mecanismo de Banco de Dados do SQL Server, expanda essa instância e expanda Bancos de Dados.

  2. Clique com o botão direito do rato na base de dados pretendida, escolha Tarefas, selecione Restaurare, em seguida, clique em Ficheiros e Grupos de Ficheiros.

  3. Na página Geral, na caixa de lista Para base de dados, insira a base de dados a restaurar. Pode escolher uma base de dados existente na lista suspensa ou introduzir uma nova base de dados. A lista inclui todos os bancos de dados no servidor, excluindo os bancos de dados do sistema master e tempdb.

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

    • Do banco de dados

      Insira um nome de banco de dados na caixa de listagem. Esta lista contém apenas bases de dados que foram alvo de backup de acordo com o histórico de backup do msdb.

    • Do dispositivo

      Clique no botão Procurar. Na caixa de diálogo Especificar dispositivos de backup, selecione um dos tipos de dispositivo listados na lista tipo de mídia de backup. Para selecionar um ou mais dispositivos para a caixa de listagem de mídia de Backup , clique em Adicionar.

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

  5. Na grelha Selecione os conjuntos de backup a serem restaurados, selecione os backups a serem restaurados. Essa grade exibe os backups disponíveis para o local especificado. Por defeito, é sugerido um plano de recuperação. Para substituir o plano de recuperação sugerido, podes alterar as seleções na tabela. Quaisquer backups que dependem de um backup desselecionado são desselecionados automaticamente.

    Cabeça da coluna Valores
    Restaurar As caixas de seleção selecionadas indicam os conjuntos de backup a serem restaurados.
    Nome O nome do conjunto de backup.
    Tipo de arquivo Especifica o tipo de dados no backup: Data, Logou Filestream Data. Os dados contidos em tabelas estão em arquivos de dados. Os dados do log de transações estão em arquivos de log. Os dados de objeto binário grande (BLOB) armazenados no sistema de arquivos estão em arquivos de dados Filestream.
    Tipo O tipo de backup executado: Full, Differentialou Transaction Log.
    Servidor O nome da instância de Database-Engine que executou a operação de backup.
    Nome lógico do arquivo O nome lógico do arquivo.
    Base de Dados O nome do banco de dados envolvido na operação de backup.
    Data de início A data e a hora em que a operação de backup começou, apresentadas na configuração regional do cliente.
    Data de término A data e hora em que a operação de backup terminou, apresentada na configuração regional do cliente.
    Tamanho O tamanho do conjunto de backup em bytes.
    Nome de Utilizador O nome do usuário que executou a operação de backup.
  6. No painel Selecionar uma página, clique na página Opções .

  7. Na grade Restaurar arquivos de banco de dados como, especifique um novo local para o arquivo ou arquivos que você deseja mover.

    Cabeça da coluna Valores
    Nome do arquivo original O caminho completo de um arquivo de backup de origem.
    Tipo de arquivo Especifica o tipo de dados no backup: Data, Logou Filestream Data. Os dados contidos em tabelas estão em arquivos de dados. Os dados do log de transações estão em arquivos de log. Os dados de objeto binário grande (BLOB) armazenados no sistema de arquivos estão em arquivos de dados Filestream.
    Restaurar Como O caminho completo do arquivo de banco de dados a ser restaurado. Para especificar um novo arquivo de restauração, clique na caixa de texto e edite o caminho e o nome do arquivo sugeridos. Alterar o caminho ou nome do ficheiro na coluna Restaurar Como é equivalente a usar a opção MOVER numa instrução Transact-SQL RESTORE .
  8. Selecione OK.

Usando Transact-SQL

Para restaurar ficheiros para uma nova localização

  1. Opcionalmente, execute a RESTORE FILELISTONLY instrução para determinar o número e os nomes dos ficheiros na backup completa da base de dados.

  2. Execute a RESTOREDATABASE instrução para restaurar a cópia de segurança completa da base de dados, especificando:

    • O nome do banco de dados a ser restaurado.

    • O dispositivo de backup a partir do qual o backup completo do banco de dados será restaurado.

    • A cláusula MOVE para cada arquivo a ser restaurado para um novo local.

    • A cláusula NORECOVERY.

  3. Se os ficheiros foram modificados após a criação do backup, execute a RESTORE instrução LOG para aplicar a cópia de segurança 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 se você tiver outro backup de log de transações para aplicar após o atual; caso contrário, especifique a cláusula RECOVERY.

      Os backups do log de transações, se aplicados, devem cobrir o tempo em que os arquivos e grupos de arquivos foram submetidos a backup.

Exemplo (Transact-SQL)

Este exemplo restaura dois dos arquivos do banco de dados MyNwind originalmente localizados na Unidade C para novos locais na Unidade D. Dois logs de transações também serão aplicados para restaurar o banco de dados para a hora atual. A instrução RESTORE FILELISTONLY é usada para determinar o número e os nomes lógicos e físicos dos arquivos no banco de dados que está sendo restaurado.

USE master;  
GO  
-- First determine the number and names of the files in the backup.  
RESTORE FILELISTONLY  
   FROM MyNwind_1;  
-- Restore the files for MyNwind.  
RESTORE DATABASE MyNwind  
   FROM MyNwind_1  
   WITH NORECOVERY,  
   MOVE 'MyNwind_data_1' TO 'D:\MyData\MyNwind_data_1.mdf',   
   MOVE 'MyNwind_data_2' TO 'D:\MyData\MyNwind_data_2.ndf';  
GO  
-- Apply the first transaction log backup.  
RESTORE LOG MyNwind  
   FROM MyNwind_log1  
   WITH NORECOVERY;  
GO  
-- Apply the last transaction log backup.  
RESTORE LOG MyNwind  
   FROM MyNwind_log2  
   WITH RECOVERY;  
GO