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 que no momento esteja usando o banco de dados a ser restaurado.

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

  • No modelo de recuperação completa ou com log de operações em massa, antes que seja possível restaurar os arquivos, você deve fazer backup do log de transações ativo (conhecido como a cauda do log). Para obter mais informações, confira Fazer backup de um log de transações (SQL Server).

  • Para restaurar um banco de dados criptografado, é necessário 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 deverá ser retido enquanto o backup for necessário. Para obter mais informações, consulte SQL Server Certificates and Asymmetric Keys.

Permissões

Se o banco de dados que está sendo restaurado não existir, o usuário deverá ter CREATE DATABASE permissões para ser capaz de executar RESTORE. Se o banco de dados existir, RESTORE as permissões padrão são para membros das funções de servidor fixas sysadmin e dbcreator e para o proprietário (dbo) do banco de dados (para a opção FROM DATABASE_SNAPSHOT, o banco de dados sempre existe).

RESTORE as permissões são fornecidas 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 só pode ser verificada quando o banco de dados está acessível e sem danos, o que nem sempre ocorre quando RESTORE é executado, os membros da função de banco de dados fixa db_owner não têm permissões RESTORE.

Como usar o SQL Server Management Studio.

Para restaurar arquivos para um novo local

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

  2. Clique com o botão direito do mouse no banco de dados desejado, aponte para Tarefase para Restaurar, e clique em Arquivos e Grupos de Arquivos.

  3. Na página Geral , na caixa de listagem Banco de dados de destino , digite o banco de dados a ser restaurado. Você pode inserir um novo banco de dados ou escolher um banco de dados existente na lista suspensa. A lista inclui todos os bancos de dados do servidor, excluindo os bancos de dados do sistema mestre 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

      Digite um nome de banco de dados na caixa de listagem. Essa lista contém apenas os bancos de dados em que foi feito backup segundo o histórico de backups do msdb .

    • Do dispositivo

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

      Após adicionar os dispositivos desejados à caixa de listagem Mídia de backup , clique em OK para voltar à página Geral .

  5. Na tabela Selecione os conjuntos de backup a serem restaurados, selecione os conjuntos de backup a serem restaurados. Essa grade exibe os backups disponíveis para o local especificado. Por padrão, um plano de recuperação é sugerido. Para substituir o plano de recuperação sugerido, você pode alterar as seleções na tabela. Todos os backups que dependem de um backup não selecionado serão desmarcados automaticamente.

    Título 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: Dados, Logou Filestream Data. Dados que são contidos em tabelas estão nos arquivos Dados . Dados de log de transações estão nos arquivos Log . Dados de BLOB (objeto binário grande) armazenados no sistema de arquivos estão localizados em arquivos de Dados do Fluxo de Arquivos.
    Tipo Tipo de backup realizado: Completo, Diferencialou Log de Transações.
    Servidor Nome da instância do Mecanismo de Banco de Dados que executou a operação de backup.
    Nome Lógico do Arquivo O nome lógico do arquivo.
    Banco de dados Nome do banco de dados envolvido na operação de backup.
    Data de Início A data e hora de início da operação de backup, apresentadas na configuração regional do cliente.
    Data de Conclusão A data e hora da conclusão da operação de backup, apresentadas na configuração regional do cliente.
    Tamanho O tamanho do conjunto de backup em bytes.
    Nome de usuário O nome do usuário que realizou a operação de backup.
  6. No painel Selecionar uma página , clique na página Opções .

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

    Título da coluna Valores
    Nome do arquivo original O caminho completo do arquivo de backup de origem.
    Tipo de arquivo Especifica o tipo de dados no backup: Dados, Logou Filestream Data. Dados que são contidos em tabelas estão nos arquivos Dados . Dados de log de transações estão nos arquivos Log . Dados de BLOB (objeto binário grande) armazenados no sistema de arquivos estão localizados em arquivos de Dados do Fluxo de Arquivos.
    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 sugerido e o nome do arquivo. Alterar o caminho ou o nome do arquivo na coluna Restaurar como é equivalente a usar a opção MOVE em uma instrução Transact-SQL RESTORE .
  8. Selecione OK.

Usando o Transact-SQL

Para restaurar arquivos para um novo local

  1. Opcionalmente, execute a RESTORE FILELISTONLY instrução para determinar o número e os nomes dos arquivos no backup completo do banco de dados.

  2. Execute a RESTOREDATABASE instrução para restaurar o backup completo do banco 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 em um no local.

    • A cláusula NORECOVERY.

  3. Se os arquivos tiverem sido modificados após a criação do backup de arquivo, execute a RESTORE instrução LOG para aplicar o backup de log de transações, especificando:

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

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

    • A cláusula NORECOVERY se você tiver outro backup de log de transações para aplicar depois do atual; caso contrário, especifique a cláusula RECOVERY.

      Os backups de log de transações, se aplicados, devem cobrir a hora em que os backups dos arquivos e grupos de arquivos foram feitos.

Exemplo (Transact-SQL)

Esse exemplo restaura dois dos arquivos para o banco de dados MyNwind que ficavam originalmente localizados no Drive C em novos locais no Drive 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