Como mover bancos de dados entre computadores que estão executando o SQL Server

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

Neste artigo

Sumário

Este artigo descreve detalhadamente com mover banco de dados do usuário do Microsoft SQL Server e os componentes mais comuns do SQL Server entre computadores que estão executando o SQL Server.

As etapas descritas nesse artigo presumem que os banco de dados do sistema master, model, tempdb ou msdb não serão movidos. As etapas fornecem opções diferentes para você transferir logins e os componentes mais comuns contidos nos bancos de dados master e msdb.

Para obter informações sobre os itens específicos que não são transferidos ao executar as etapas descritas nesse artigo, consulte a seção "Informações adicionais" desse artigo.

Observação: Existe suporte para migração de dados a partir do SQL Server 2000 para o Microsoft SQL Server 2000 (64 bits). É possível anexar um banco de dados de 32 bits a um banco de dados de 64 bits usando o procedimento sp_attach_db armazenado no sistema ou o procedimento sp_attach_single_file_db armazenado no sistema, ou usando backup e restauração no Enterprise Manager de 32 bits. É possível mover bancos de dados continuamente entre as versões em 32 bits e 64 bits do SQL Server. Também é possível migrar dados a partir do SQL Server 7.0 usando os mesmo métodos. No entanto, não há suporte para fazer uma desatualização de dados para SQL Server 7.0 a partir do SQL Server 2000 (64 bits). A seguir está uma descrição de cada método.

Se estiver usando o SQL Server 2005

É possível usar o mesmo método para migrar dados do SQL Server 7.0 ou do SQL Server 2000. No entanto, a ferramenta de gerenciamento no Microsoft SQL Server 2005 difere da ferramenta de gerenciamento no SQL Server 7.0 ou no SQL Server 2000. Você deve usar o SQL Server Management Studio em vez de usar o SQL Server Enterprise Manager, o SQL Server Import and Export Wizard (DTSWizard.exe) em vez de usar o Data Transformation Services Import and Export Data Wizard.

Backup e restauração

Faça um backup dos bancos de dados do usuário no servidor de origem e restaure os banco de dados no servidor de destino.
  • O banco de dados pode ser usado quando o backup estiver em andamento. Se os usuários executarem as instruções INSERT, UPDATE ou DELETE no banco de dados após a conclusão do backup, ele não apresentará essas alterações. Se for preciso transferir todas as alterações, esse processo deverá ser executado com um tempo de inatividade mínimo caso você tenha executado um backup do log de transação ou um backup total do banco de dados.
    1. Restaure o backup total do banco de dados no servidor de destino e especifique a opção WITH NORECOVERY.

      Observação Para impedir alterações adicionais no banco de dados, peça aos usuários que encerrem as atividades do banco de dados no servidor de origem.
    2. Realize um backup do log de transação e restaure-o no servidor de destino usando a opção WITH RECOVERY. O tempo de inatividade é limitado ao tempo de backup e restauração do log de transação. Para obter informações adicionais, consulte o subtópico "RESTAURAÇÃO" no tópico "Referência Transact-SQL" nos Manuais online do SQL Server.
  • O banco de dados no servidor de destino terá o mesmo tamanho do banco de dados no servidor de origem. Para reduzir o tamanho do banco de dados, é necessário reduzir o tamanho do banco de dados de origem antes de realizar o backup ou reduzir o banco de dados de destino após completar a restauração. Para obter informações adicionais, consulte o subtópico "Reduzindo um banco de dados" no tópico "Criando e mantendo um banco de dados" nos Manuais online do SQL Server.
  • Se você restaurar um banco de dados em um arquivo diferente do que o banco de dados de origem, você deve especificar a opção WITH MOVE. Por exemplo, no servidor de origem o banco de dados está na pasta D:\Mssql\Data. O servidor de destino não tem uma unidade D e você deseja restaurar o banco de dados na pasta C:\Mssql\Data. Para obter informações adicionais sobre como restaurar um banco de dados em um local diferente, clique nos números abaixo para ler os artigos na Base de Dados de Conhecimento da Microsoft:
    221465 INFORMAÇÕES: Usando a opção WITH MOVE com a instrução RESTORE
    304692 INFORMAÇÕES: Movendo os banco de dados do SQL Server para um novo local usando BACKUP e RESTORE
  • Se você deseja sobrescrever um banco de dados preexistente no servidor de destino, é preciso especificar a opção WITH REPLACE. Para obter informações adicionais, consulte o subtópico "RESTAURAÇÃO" no tópico "Referência Transact-SQL" nos Manuais online do SQL Server.
  • Dependendo da versão do SQL Server para o qual você deseja restaurar, o conjunto de caracteres, a ordem de classificação e o agrupamento Unicode podem ser os mesmos em ambos os servidores de origem e destino. Para obter informações adicionais, consulte a seção "Observação sobre agrupamento" desse artigo.

Procedimentos armazenados Sp_detach_db e Sp_attach_db

Para usar os procedimentos armazenados sp_detach_db e sp_attach_db, execute as seguintes etapas:
  1. Desanexe o banco de dados no servidor de origem usando o procedimento armazenado sp_detach_db. Você deve copiar os arquivos .mdf, .ndf e .ldf associados ao banco de dados no servidor de destino. Consulte esta tabela para uma descrição dos tipos de arquivos:
    Recolher esta tabelaExpandir esta tabela
    Extensão de nome de arquivoDescrição
    .mdfArquivo de dados primário
    .ndfArquivo de dados secundário
    .ldfArquivo de log de transação
  2. Anexe o banco de dados no servidor de destino usando o procedimento armazenado sp_attach_db e aponte para os arquivos copiados no servidor de destino na etapa anterior. Para obter informações adicionais sobre como usar esses métodos, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
    224071 INFORMAÇÕES: Movendo bancos de dados do SQL Server para um novo local com Desanexar/Anexar
  • O banco de dados está inacessível após a separação e você não pode usá-lo enquanto copia os arquivos. Todos os dados que estiverem no banco de dados no momento da separação serão movidos.
  • O conjunto de caracteres, a ordem de classificação e o agrupamento Unicode podem ser os mesmos em ambos os servidores ao usar o método Anexar ou Desanexar. Para obter informações adicionais, consulte a seção "Observação sobre agrupamento" deste artigo.

Observação sobre agrupamento:

Se você mover bancos de dados entre servidores SQL Server 7.0 usando os métodos de backup e restauração ou Anexar e Desanexar, o conjunto de caracteres, a ordem de classificação e o agrupamento Unicode deverão ser os mesmo em ambos os servidores. Se você mover bancos de dados a partir do SQL Server 7.0 para o SQL Server 2000 ou entre os servidores SQL Server 2000, o banco de dados manterá o agrupamento do banco de dados de origem. Isso significa que se o servidor de destino que estiver executando SQL Server 2000 possuir um agrupamento diferente do banco de dados de origem, o banco de dados de destino possuirá um agrupamento diferente do bancos de dados master, model, tempdb e msdb do servidor de destino. Para obter informações adicionais, consulte o tópico "Ambientes de agrupamento mistos" no Manuais online do SQL Server 2000.

Importar e exportar dados (copiar objetos e dados entre bancos de dados do SQL Server)

É possível copiar um banco de dados inteiro ou objetos seletivamente a partir do banco de dados de origem para o banco de dados de destino usando o Data Transformation Services Import and Export Data Wizard.
  • O banco de dados de origem pode ser usado durante a transferência. Se isso ocorrer, algum bloqueio poderá ser visto durante o progresso da transferência.
  • Ao usar o Assistente de Importação e Exportação de Dados, o conjunto de caracteres, a ordem de classificação e o agrupamento não precisam ser os mesmos entre o servidor de origem e de destino.
  • Como o espaço não usado no banco de dados de origem não é movido, o banco de dados de destino não precisa ser tão grande quanto o banco de dados de origem. Da mesma maneira, ao mover apenas alguns objetos, talvez não seja necessário que o banco de dados de destino seja tão grande quanto o banco de dados de origem.
  • Pode ser que os dados de textos e imagens maiores que 64 KB não sejam transferidos corretamente pelo Serviço de Transformação de Dados do SQL Server 7.0. Esse problema não se aplica à versão do SQL Server 2000 dos Serviços de Transformação de Dados. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
    257425 CORREÇÃO: A transferência de objeto DTS não transfere dados BLOB maiores que 64 KB

Etapa 2: Como transferir logins e senhas

Se você não transferir os logins do servidor de origem para o servidor de destino, talvez seus usuários atuais do SQL Server não consigam fazer logon no servidor de destino. É possível transferir os logins e senhas usando as instruções no seguinte artigo na Base de Dados de Conhecimento da Microsoft:
246133 Como transferir logins e senhas entre instâncias do SQL Server
Os bancos de dados padrões para os logins no servidor de destino podem ser diferentes do banco de dados padrão para os logins no servidor de origem. É possível alterar o banco de dados padrão para um logon com o procedimento armazenado sp_defaultdb. Para obter informações adicionais, consulte o subtópico "sp_defaultdb" no tópico "Referência Transact-SQL" nos Manuais online do SQL Server.

Etapa 3: Como resolver problemas com usuários órfãos

Após você transferir logins e senhas para o servidor de destino, os usuários podem não conseguir acessar o banco de dados. Os logins estão associados com os usuários pelo identificador de segurança (SID). Se o SID for inconsistente após você mover um banco de dados, o SQL Server poderá negar o acesso ao banco de dados para o usuário. Esse problema é conhecido como um usuário órfão. Se você transferir logins e senhas usando o recurso Login de Transferência do SQL Server 2000 DTS, provavelmente terá usuários órfãos. Além disso, logins integrados que receberam acesso em um servidor de destino em um domínio diferente do servidor de origem, causam usuários órfãos.
  1. Procure por usuários órfãos. Abra o Analisador de Consultas no servidor de destino e execute o seguinte código no banco de dados do usuário que você moveu:
    exec sp_change_users_login 'Report'
    Esse procedimento relaciona quaisquer usuários órfãos que não se vincularam a um logon. Se nenhum usuário estiver na lista, ignore as etapas 2 e 3 e vá para a etapa 4.
  2. Solucione os problemas com usuários órfãos. Se um usuário for órfão, os usuários do banco de dados poderão conectar-se ao servidor com êxito, mas não terão permissão para acessar o banco de dados. Se você tentar conceder o logon de acesso ao banco de dados, a seguinte mensagem de erro será exibida, pois o usuário já existe:
    Microsoft SQL-DMO (ODBC SQLState: 42000) Erro 15023: Usuário ou função '%s' já existe no banco de dados atual.
    Para obter informações adicionais sobre como resolver usuários órfãos, clique nos números abaixo para ler os artigos na Base de Dados de Conhecimento da Microsoft:
    240872 COMO: Resolver problemas de permissão quando um banco de dados é movido entre SQL Servers

    Esse artigo contém informações sobre como mapear logins para os usuários do banco de dados e resolver problemas com usuários órfãos a partir de logins padrão do SQL Server e de logins integrados.

    274188 O tópico "Solucionando problemas de usuários órfãos" nos Manuais online está incompleto

    Esse artigo descreve como usar o procedimento armazenado sp_change_users_login para corrigir os usuários órfãos, um por um. O procedimento armazenado sp_change_users_login somente resolve problemas com usuários órfãos a partir de logins SQL Server padrões.
  3. Se o proprietário do banco de dados (dbo) estiver relacionado como órfão, execute este código no banco de dados do usuário:
    exec sp_changedbowner 'sa'
    O procedimento armazenado altera o proprietário do banco de dados para dbo e corrige o problema. Para alterar o proprietário do banco de dados para outro usuário, execute sp_changedbowner novamente com o usuário que deseja. Para obter informações adicionais, consulte o subtópico "sp_changedbowner" no tópico "Referência Transact-SQL" nos Manuais online do SQL Server.
  4. Se o seu servidor de destino estiver executando o SQL Server 2000 Service Pack 1, o usuário proprietário do banco de dados poderá não estar na lista na pasta Usuários no Enterprise Manager após você realizar a anexação ou restauração, ou ambos. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
    305711 BUG: O usuário DBO não é exibido no Enterprise Manager
  5. É possível receber a seguinte mensagem de erro se você tentar alterar a senha do administrador do sistema (sa) pelo Enterprise Manager, se o logon mapeado para dbo no servidor de origem não existir no servidor de destino:
    Erro 21776: [SQL-DMO] O nome 'dbo' não foi encontrado no conjunto de Usuários. Se o nome for um nome qualificado, use [] para separar diversas partes do nome e tente novamente.
    Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
    218172 PRB: Não é possível alterar a senha SA no Enterprise Manager
Aviso Se você restaurar ou anexar o banco de dados novamente, os usuários do banco de dados podem voltar a ser órfãos e você terá que repetir a etapa 3.

Etapa 4: Como mover tarefas, alertas e operadores

A etapa 4 é opcional. É possível gerar scripts para todas as tarefas, alertas e operadores no servidor de origem e executar o script no servidor de destino.
  • Para mover tarefas, alertas e operadores, execute as seguintes etapas:
    1. Abra o SQL Server Enterprise Manager e expanda a pasta Gerenciamento.
    2. Expanda Agente SQL Server e clique com o botão direito em Alertas, Tarefas ou Operadores.
    3. Clique em Todas as tarefas e em Gerar script SQL. No SQL Server 7.0, clique em Gerar script para todas as tarefas ou Alertas ou Operadores.
    Você terá a opção de gerar scripts para Todos os alertas, Todas as tarefas ou Todos os operadores com base no item em que você clicar com o botão direito.
  • É possível mover tarefas, alertas e operadores a partir do SQL Server 7.0 para SQL Server 2000 ou entre servidores computadores que estejam executando SQL Server 7.0 e SQL Server 2000.
  • Se você possuir operadores que estejam configurados para notificação pelo SQLMail no servidor de origem, será preciso definir o SQLMail no servidor de destino para obter a mesma funcionalidade. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
    263556 INFORMAÇÕES: Como configurar o SQL Mail

Etapa 5: Como mover pacotes DTS

A etapa 5 é opcional. Se os pacotes DTS estiverem armazenados no servidor de origem no SQL Server ou no repositório, será possível movê-los se desejar. Para mover pacotes DTS entre servidores, use um dos seguintes métodos.

Método 1

  1. Salve o pacote DTS no servidor de origem em um arquivo e abra o arquivo do pacote DTS no servidor de destino.
  2. Salve o pacote do servidor de destino no SQL Server ou no repositório.
    Observação É necessário mover cada pacote, um a um, em arquivos separados.

Método 2

  1. Abra cada pacote DTS no DTS Designer.
  2. No menu Pacote, clique em Salvar como.
  3. Especifique o SQL Server de destino.
Observação Pode ser que o pacote não seja executado corretamente no novo servidor. Talvez seja preciso alterar o pacote e quaisquer referências nele sobre conexões, arquivos, origem de dados, perfis e outras informações localizadas no antigo servidor de origem, para fazer referência ao novo servidor de destino. As alterações em um pacote devem ser feitas por base de pacote com base no design de cada pacote.

Mais Informações

Convém também mover outros itens como replicações, envio de log, catálogos completos, dispositivos de backup nomeados, planos de manutenção e servidores vinculados. Examine o servidor de origem para essas configurações e execute as etapas para configurá-los manualmente no servidor de destino, se desejar.

Para obter informações adicionais sobre como mover componentes de texto completos, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
240867 INFORMAÇÕES: Como mover, copiar e faze backup das pastas e dos arquivos completos do catálogo
Diagramas de banco de dados e histórico de backup e restauração não são movidos se as etapas desse artigo forem seguidas. Se precisar mover essas informações, mova o banco de dados do sistema msdb. Para obter informações sobre como mover o banco de dados msdb, consulte os artigos da Base de Dados de Conhecimento da Microsoft citados na seção "Etapa 1: Como mover bancos de dados do usuário" desse artigo. Se você mover o banco de dados msdb, não haverá necessidade de executar a "Etapa 4: Como mover tarefas, alertas e operadores" ou a "Etapa 5: Como mover pacotes DTS".

Referências

Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
320125 Como mover um diagrama de banco de dados

Propriedades

ID do artigo: 314546 - Última revisão: terça-feira, 16 de julho de 2013 - Revisão: 8.1
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
Palavras-chave: 
kbsqlmanagementtools kbhowtomaster kbsmbportal KB314546

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