Compartilhar via


Mover um banco de dados usando desanexar e anexar (Transact-SQL)

Este tópico descreve como mover um banco de dados desanexado para outro local e anexá-lo novamente à mesma instância de servidor ou a uma instância de servidor diferente no SQL Server 2014. No entanto, recomendamos mover bancos de dados usando o procedimento de realocação planejada ALTER DATABASE, em vez de usar desanexar e anexar. Saiba mais em Mover bancos de dados de usuário.

Importante

Recomendamos que você não anexe ou restaure bancos de dados de fontes desconhecidas ou não confiáveis. Esses bancos de dados podem conter um código mal-intencionado que pode executar um código Transact-SQL inesperado ou provocar erros modificando o esquema ou a estrutura física do banco de dados. Antes de usar um banco de dados de uma fonte desconhecida ou não confiável, execute DBCC CHECKDB no banco de dados em um servidor de não produção e examine também o código, como procedimentos armazenados ou outro código definido pelo usuário, no banco de dados.

Procedimento

Para mover um banco de dados usando desanexar e anexar

  1. Desanexe o banco de dados. Para obter mais informações, veja Desanexar um banco de dados.

  2. Em uma janela do Windows Explorer ou do Prompt de Comando do Windows, mova o arquivo ou arquivos de banco de dados desanexados e o arquivo ou arquivos de log para o novo local.

    Observação

    Para mover um banco de dados de arquivo único, você pode usar o email se o tamanho do arquivo for pequeno o suficiente para o email acomodar.

    Você deve mover os arquivos de log mesmo se pretender criar novos arquivos de log. Em alguns casos, reanexar um banco de dados exige seus arquivos de log existentes. Portanto, mantenha todos os arquivos de log desanexados até que o banco de dados seja anexado com êxito sem eles.

    Observação

    Se você tentar anexar o banco de dados sem especificar o arquivo de log, a operação de anexação procurará o arquivo de log em seu local original. Se uma cópia do log ainda existir no local original, essa cópia será anexada. Para evitar a utilização do arquivo de log original, especifique o caminho do novo arquivo de log ou remova a cópia original do arquivo de log (depois de copiá-la para o novo local).

  3. Anexe os arquivos copiados. Para obter mais informações, consulte Attach a Database.

Exemplo

O exemplo a seguir cria uma cópia das instruções Transact-SQL, que são executadas em uma janela do Editor de Consultas conectada à instância do servidor à qual elas estão anexadas.

  1. Desanexe as instruções Transact-SQL:

    USE master;  
    GO  
    EXEC sp_detach_db @dbname = N'AdventureWorks2012';  
    GO  
    
  2. Usando o método de sua escolha, copie os arquivos de banco de dados (AdventureWorks208R2_Data.mdf e AdventureWorks208R2_log) para: C:\MySQLServer\AdventureWorks208R2_Data.mdf e C:\MySQLServer\AdventureWorks208R2_Log.ldf, respectivamente.

    Importante

    Para um banco de dados de produção, coloque o banco de dados e o log de transações em discos separados.

    Para copiar arquivos pela rede para um disco ou um computador remoto, utilize o nome UNC (Convenção Universal de Nomenclatura) do local remoto. Um nome UNC possui o formato \\Servername\Sharename\Path\Filename. Assim como ocorre com a gravação de arquivos no disco rígido local, deverão ser concedidas à conta do usuário utilizada pela instância do SQL Server, as permissões apropriadas exigidas para ler ou gravar em um arquivo no disco remoto.

  3. Anexe o banco de dados movido e, opcionalmente, seu log executando as seguintes instruções Transact-SQL:

    USE master;  
    GO  
    CREATE DATABASE MyAdventureWorks   
        ON (FILENAME = 'C:\MySQLServer\AdventureWorks2012_Data.mdf'),  
        (FILENAME = 'C:\MySQLServer\AdventureWorks2012_Log.ldf')  
        FOR ATTACH;  
    GO  
    

    No SQL Server Management Studio, um banco de dados anexado recentemente não fica imediatamente visível no Pesquisador de Objetos. Para exibir o banco de dados, no Pesquisador de Objetos, clique em Exibir e depois em Atualizar. Quando o nó Bancos de Dados for expandido no Pesquisador de Objetos, o banco de dados recentemente anexado será exibido na lista de bancos de dados.

Consulte Também

Anexar e desanexar o banco de dados (SQL Server)