Como usar as funções Desanexar e Anexar para mover bancos de dados do SQL Server

Traduções deste artigo Traduções deste artigo
ID do artigo: 224071 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve como alterar a localização dos arquivos de dados e dos arquivos de log para qualquer banco de dados do Microsoft SQL Server 2005, SQL Server 2000 ou SQL Server 7.0.

Para obter mais informações sobre como mover os bancos de dados do sistema no SQL Server 2008, consulte o tópico "Movendo banco de dados do sistema" no Manuais Online do SQL Server. Para exibir esse tópico, vá para o site Mover bancos de dados do sistema do Microsoft Developer Network (MSDN).

Mais Informações

As etapas a serem seguidas para alterar o local de alguns bancos de dados do sistema SQL Server diferem das etapas a serem seguidas para alterar o local dos bancos de dados de usuário. Estes casos especiais são descritos separadamente.

Observação Os bancos de dados do sistema do SQL Server 7.0 são incompatíveis com o SQL Server 2000. Não anexe os bancos de dados do SQL Server 7.0 mestre, modelo, msdb ou distribuição ao SQL Server 2000. Se você estiver usando o SQL Server 2005, você pode apenas anexar os bancos de dados do SQL Server 2005 a uma instância. Todos os exemplos neste artigo presumem que o SQL Server está instalado na pasta D:\Mssql7. Além disso, os exemplos presumem que todos os arquivos de dados e de log estão localizados na pasta D:\Mssql7\Data padrão. Os exemplos movem os arquivos de dados e os arquivos de log para todos os bancos de dados para a pasta E:\Sqldata folder.

Os locais de dados padrão para o SQL Server 2005 e SQL Server 2000 são os seguintes:

Pré-requisitos

  • Fazer backup de todos os bancos de dados, especialmente o banco de dados mestre, de seu local atual.
  • Certifique-se de que você tenha permissões de administrador do sistema (as).
  • Certifique-se de que você saiba o nome do local atual de todos os arquivos de dados e arquivos de logo para o banco de dados.

    Observação Você pode determinar o nome o local atual de todos os arquivos que um banco de dados usa ao usar o procedimento armazenado sp_helpfile:
    use <database_name>
    go
    sp_helpfile
    go
  • É necessário que você tenha acesso exclusivo ao banco de dados que está sendo movido. Se você tiver problemas durante o processo e não conseguir acessar um banco de dados tenha movido ou se não conseguir iniciar o SQL Server, verifique o registro de erros do SQL Server e o Manuais Online do SQL Server para obter detalhes sobre os erros que você está encontrando.

Movendo os bancos de dados do usuário

O exemplo a seguir move um banco de dados chamado mydb. Este banco de dados contém um arquivo de dados, Mydb.mdf, e um arquivo de log, Mydblog.ldf. Se o banco de dados que está sendo movido tiver mais arquivos de dados ou de log, especifique os arquivos na lista delimitada por vírgulas no procedimento armazenado sp_attach_db. O procedimento sp_detach_db não é alterado independentemente de quantos arquivos o banco de dados contém, porque o procedimento sp_detach_db não lista os arquivos.
  1. Inicie o SQL Server 2005 Management Studio. Para fazer isto, clique em Iniciar, em Todos os Programas, em Microsoft SQL Server 2005 e em SQL Server Management Studio.
  2. Clique em Nova consulta e desanexe o banco de dados da seguinte maneira:
    use master
       go
       sp_detach_db 'mydb'
       go
  3. Copie os arquivos de dados e os arquivos de log do local atual (D:\Mssql7\Data) para o novo local (E:\Sqldata).
  4. Anexe novamente o banco de dados. Aponte para os arquivos no novo local da seguinte forma:
    use master
      go
      sp_attach_db 'mydb','E:\Sqldata\mydbdata.mdf','E:\Sqldata\mydblog.ldf'
      go
    Verifique a alteração no local dos arquivos usando o procedimento armazenado sp_helpfile:
    use mydb
       go
       sp_helpfile
       go
    Os valores da coluna do nome do arquivo devem refletir os novos locais.
Observação O artigo 922804 da Base de Dados de Conhecimento Microsoft descreve um problema para os bancos de dados do SQL Server 2005 em um armazenamento anexado por rede.  Para obter mais informações, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
922804 CORREÇÃO: Após desanexar um banco de dados Microsoft SQL Server 2005 no armazenamento anexado por rede, não será possível anexar novamente o banco de dados SQL Server.
Considere este problema. Além disso, considere as permissões aplicadas a um banco de dados desanexado no SQL Server 2005. Para obter mais informações, consulte a seção "Desanexando e anexando um banco de dados" do tópico "Arquivos de dados e de log seguros" nos Manuais Online do SQL Server. Para exibir esse tópico, vá para o site do MSDN Segurança de dados e arquivos de log.

Movendo exemplos de bancos de dados

Para mover exemplos de banco de dados pubs e o exemplo de banco de dados Northwind no SQL Server 2000 ou SQL Server 7.0 ou mover o exemplo de banco de dados AdventureWorks e o exemplo de banco de dados AdventureWorksDW no SQL Server 2005, siga o mesmo procedimento para mover os bancos de dados do usuário.

Movendo o banco de dados modelo

SQL Server 2005 e SQL Server 2000

SQL Server 7.0

Movendo o banco de dados do MSDB

SQL Server 2005 e SQL Server 2000

SQL Server 7.0

Como mover o banco de dados mestre

SQL Server 2005

SQL Server 2000 e SQL Server 7.0

Movendo o banco de dados tempdb

Você pode mover os arquivos tempdb usando a instrução ALTER DATABASE.
  1. Determine os nomes de arquivo lógico para o banco de dados tempdb usando o sp_helpfile da seguinte maneira:
    use tempdb
    go
    sp_helpfile
    go
    O nome lógico para cada arquivo está contido na coluna nome. Esse exemplo usa nomes de arquivos padrão do tempdev e templog.
  2. Use a instrução ALTER DATABASE, especificando o nome de arquivo lógico da seguinte maneira:
    use master
    go
    Alter database tempdb modify file (name = tempdev, filename = 'E:\Sqldata\tempdb.mdf')
    go
    Alter database tempdb modify file (name = templog, filename = 'E:\Sqldata\templog.ldf')
    go
    Você deverá receber as seguintes mensagens que confirmam a alteração:
    Mensagem 1
    Arquivo 'tempdev' modificado em sysaltfiles. Exclua o arquivo antigo após reiniciar o SQL Server.
    Mensagem 2
    Arquivo 'templog' modificado em sysaltfiles. Exclua o arquivo antigo após reiniciar o SQL Server.
  3. O uso do sp_helpfile em tempdb não confirmará essas alterações até que você reinicie o SQL Server.
  4. Interrompa e reinicie o SQL Server.

Referências

Para obter mais informações, clique nos números abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft (alguns artigos podem estar em inglês):
912397 O serviço do SQL Server não pode iniciar quando você altera um parâmetro de inicialização para uma instância em cluster do SQL Server 2000 ou do SQL Server 2005 para um valor que não é válido
274188 O tópico "Solução de problemas de usuários órfãos" nos Manuais Online está incompleto
246133 Como transferir logons e senhas entre instâncias do SQL Server
168001 As permissões e logons de usuário em um banco de dados podem estar incorretos depois que o banco de dados for restaurado

Para obter mais informações, consulte os seguintes manuais:
Microsoft Corporation
Microsoft SQL Server 7.0 System Administration Training Kit
Microsoft Press, 2001
Microsoft Corporation (em inglês)
MCSE Training Kit: Microsoft SQL Server 2000 System Administration
Microsoft Press, 2001
Microsoft Corporation (em inglês)
Microsoft SQL Server 2000 Resource Kit
Microsoft Press, 2001

Propriedades

ID do artigo: 224071 - Última revisão: quinta-feira, 19 de setembro de 2013 - Revisão: 17.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Palavras-chave: 
kbsqlsetup kbinfo KB224071

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com