Como mover bases de dados entre computadores que se encontrem a utilizar o SQL Server

Traduções de Artigos Traduções de Artigos
Artigo: 314546 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo passo a passo descreve como mover bases de dados de Microsoft SQL Server e componentes de SQL Server mais comuns entre computadores que se encontrem a executar o SQL Server.

Os passos descritos neste artigo partem do princípio que não irá mover as bases de dados de sistema master, model, tempdb, ou msdb. Os passos fornecem diferentes opções para poder transferir inícios de sessão e os componentes mais comuns contidos nas bases de dados master e msdb

Para obter mais informações sobre os itens específicos que não são transferidos quando seguir os passos neste artigo, consulte a secção "Mais informações".

Nota Para o Microsoft SQL Server 2008, consulte o tópico "Gerir Metadados ao Disponibilizar uma Base de Dados em outra Instância de Servidor" no seguinte Web site do SQL Server 2008 Books on Line:
http://msdn.microsoft.com/pt-pt/library/ms187580.aspx
Nota A migração de dados do SQL Server 2000 para o Microsoft SQL Server 2000 (64-bit) é suportada. Pode anexar uma base de dados de 32-bits a uma de 64-bits utilizando o procedimento armazenado no sistema sp_attach_db ou o procedimento armazenado no sistema sp_attach_single_file_db, ou utilizando a cópia de segurança e restauro no Enterprise Manager de 32-bits. Pode mover as bases de dados de um lado para o outro entre as versões de 32 bits e de 64 bits do SQL Server. Pode também migrar dados do SQL Server 7.0 utilizando os mesmos métodos. No entanto, a transição para uma versão anterior dos dados para o SQL Server 7.0 a partir do SQL Server 2000 (64-bits) não é suportado. De seguida é apresentada uma descrição de cada método.

Passo 1: Como mover bases de dados de utilizador

Se estiver a utilizar o SQL Server 2005, poderá utilizar o mesmo método para migrar dados do SQL Server 7.0 ou do SQL Server 2000. No entanto, a ferramenta de gestão no Microsoft SQL Server 2005 difere da ferramenta de gestão no SQL Server 7.0 ou no SQL Server 2000. Deverá utilizar o SQL Server Management Studio em vez do SQL Server Enterprise Manager. Adicionalmente, deve utilizar o Assistente de Importação e Exportação do SQL Server (DTSWizard.exe) em vez do Assistente de Importação e Exportação de Dados dos Serviços de Transformação de Dados.

Para mover bases de dados de utilizador, utilize um dos seguintes três métodos.

Método 1: Cópia de segurança e restauro das bases de dados de utilizador

Efectue uma cópia de segurança das bases de dados no servidor de origem, e em seguida restaure as bases de dados do utilizador para o servidor de destino.
  • A base de dados pode ser utilizada quando a cópia de segurança estiver a ser efectuada. Se os utilizadores desempenharem isntruções INSERT, UPDATE ou DELETE na base de dados após a conclusão da cópia de segurança, esta não irá conter estas alterações. Se tiver de transferir todas as alterações, poderá transferi-las com um tempo mínimo de inactividade se desempenhar tanto uma cópia de segurança do registo de transacção e uma cópia de segurança integral da base de dados.
    1. Restaure a totalidade da cópia de segurança da base de dadosno servidor de destino e especifique a opçãoSEM RECUPERAÇÃO.

      Nota Para impedir modificações adicionais à base de dados, oriente os utilizadores para pararem a actividade na base de dados no servidor de origem.
    2. Desempenhe uma cópia de segurança de registo e restaure a cópia de segurança do registo de transacção para o servidor de destino utilizando a opção COM RECUPERAÇÃO. O tempo de inactividade é limitado ao tempo da cópia de segurança do registo de transacção e restauro. Para obter mais informações, consulte o sub-tópico "RESTAURO" do tópico "Referência do Transact-SQL" no SQL Server Books Online.
  • A base de dados no servidor de destino terá a mesma dimensão da base de dados no servidor de origem. Para reduzir a dimensão da base de dados tem ou de reduzir a base de dados de origem antes de efectuar a cópia de segurança ou reduzir a base de dados de destino antes do restauro ser concluído. Para obter mais informações, consulte o sub-tópico "Reduzir uma Base de Dados" no cabeçalho "Criar e Manter Bases de Dados" do SQL Server Books Online.
  • Se restaurar a base de dados para uma localização de ficheiro diferente daquela da base de dados de origem, terá de especificar a opção COM MOVIMENTO. Por exemplo, no servidor de origem a base de dados encontra-se na pasta D:\Mssql\Data. O servidor de destino não possui uma unidade D, e deseja restaurar a base de dados para a pasta C:\Mssql\Data. Para obter mais informações sobre como restaurar uma base de dados para uma localização diferente, clique nos números do artigo seguintes para visualizar os artigos na Base de Dados de Conhecimento da Microsoft.
    221465 Utilizar a opção COM MOVIMENTO com a instrução RESTORE
    304692 Mover as bases de dados do SQL Server 7.0 para uma nova localização com a CÓPIA DE SEGURANÇA e o RESTAURO
  • Se desejar sobrescrever uma base de dados existente no servidor de destino, deve especificar a opção COM SUBSTITUIÇÃO. Para obter mais informações, consulte o sub-tópico "RESTAURO" do tópico "Referência do Transact-SQL" no SQL Server Books Online.
  • Dependendo da versão do SQL Server para a qual restaurar, o conjunto de caracteres, ordem e agrupamento de Unicode poderão ter de ser iguais tanto nos servidores de origem como de destino. Para obter mais informações, consulte a "Nota sobre agrupamento" posteriormente nesta secção.

Método 2: Utilize os procedimentos armazenados "sp_detach_db" e "sp_attach_db"

Para utilizar os procedimentos armazenados sp_detach_db e sp_attach_db, siga estes passos:
  1. Desanexe a base de dados no servidor de origem utilizando o procedimento armazenado sp_detach_db. Deve copiar os ficheiros .mdf, .ndf e .ldf associados com a base de dados para o servidor de destino. Consulte esta tabela relativamente aos tipos de ficheiros:
    Reduzir esta tabelaExpandir esta tabela
    Extensões de nomes de ficheiroDescrição
    .mdf Ficheiros de dados primário
    .ndf Ficheiros de dados secundário
    .ldf Ficheiro de registo da transacção
  2. Anexe a base de dados no servidor de destino utilizando o procedimento armazenado sp_attach_db e aponte para os ficheiros que copiou para o servidor de destino no passo anterior. Para obter mais informações sobre como utilizar estes métodos, clique no número do artigo seguinte para visualizar o artigo na Base de Dados de Conhecimento da Microsoft:
    224071 Como mover bases de dados de SQL Server para uma nova localização utilizando as funções Desanexar e Anexar no SQL Server
  • A base de dados está inacessível após a desanexação, e não pode utilizar a base de dados quando copiar estes ficheiros. Todos os dados contidos na base de dados no momento da desanexação são movidos.
  • O conjunto de caracteres, ordem, e agrupamento Unicode poderão ter de ser iguais em ambos os servidores quando utilizar o método Anexar ou Desanexar. Para obtetr mais informações, consulte a nota seguinte sobre agrupamento.
Nota sobre agrupamento Se mover as bases de dados entre servidores SQL Server 7.0 utilizando os métodos de cópia de segurança e restauro ou deAnexar e Desanexar, o conjunto de caracteres, ordem e agrupamento Unicode terão de ser iguais em ambos servidores. Se mover bases de dados do SQL Server 7.0 para o SQL Server 2000 ou entre servidores SQL Server 2000, a base de dados irá manter o agrupamento da base de dados de origem. Isto significa que se o servidor de destino que se encontra a executar o SQL Server 2000 possuir um agrupamento diferente daquele da base de dados de origem, a base de dados de destino possui um agrupamento diferente daquele das bases de dados master, model, tempdb, e msdb do servidor de destino. Para obter mais informações, consulte o tópico "Ambientes de Agrupamento Misto" no SQL Server 2000 Books Online.

Método 3: Utilize o Assistente de Importação e Exportação de Dados para copiar objectos e dados entre as bases de dados do SQL Server

Pode copiar a totalidade da base de dados ou copiar selectivamente objectos e dados da base de dados de origem para a base de dados de destino utilizando o Assistente de Importação e Exportação de Dados dos Serviços de Transformação de Dados.
  • A base de dados de origem pode ser utilizada durante a transferência. Se a base de dados de origem for utilizada durante a transferência, poderá deparar-se com algum tipo de bloqueio quando a transferência estiver em curso.
  • Quando utilizar o Assistente de Importação e Exportação de Dados, o conjunto de caracteres, ordem e agrupamento não precisam de ser iguais tanto no servidor de origem como no de destino.
  • Uma vez que o espaço por utilizar na base de dados de origem não se move, a base de dados de destino poderá não precisar de ter uma dimensão tão alargada quanto a da base de dados de origem. De modo semelhante, se apenas mover alguns objectos, a base de dados de destino poderá não precisar de ser tão grande quanto a de origem.
  • Os Serviços de Transformação de Dados do SQL Server 7.0 poderão não conseguir transferir correctamente dados de imagem e textuais com uma dimensão superior a 64 KB. Este problema não se aplica à versão do SQL Server 2000 dos Serviços de Transformação de Dados. Para obter mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
    257425 CORRECÇÃO: A Transferência de Objectos DTS não transfere dados BLOB com uma dimensão superior a 64 KB

Passo 2: Como transferir inícios de sessão e palavras-passe

Se não transferir os inícios de sessão do servidor de origem para o servidor de destino, os seus utilizadores actuais de SQL Server poderão não ser capazes de iniciar a sessão no servidor de destino. Pode transferir os inícios de sessão e palavras-passe utilizando as instruções no seguinte artigo da Base de Dados de Conhecimento da Microsoft:
246133 Como transferir os inícios de sessão e as palavras-passe entre instâncias do SQL Server
As bases de dados predefinidas para os inícios de sessão no servidor de destino poderão ser diferentes da base de dados predefinida para os inícios de sessão no servidor de origem. Pode alterar a base de dados predefinida para um início de sessão com o procedimento armazenado sp_defaultdb. Para obter mais informações, consulte o sub-tópico "sp_defaultdb" do tópico "Referência do Transact-SQL" no SQL Server Books Online.

Passo 3: Sobre como solucionar utilizadores órfãos

Após transferir inícios de sessão e palavras-passe para o servidor de destino, os utilizadores poderão não conseguir aceder à base de dados. Os inícios de sessão são associados com os utilizadores pelos identificadores de segurança (SID), e se o SID for inconsistente após mover uma base de dados, o SQL Server poderá negar o acesso ao utilizador à base de dados. Este problema é conhecido como um utilizador órfão. Se transferir inícios de sessão e palavras-passe ao utilizar a funcionalidade de Transferência de Início de Sessão de DTS do SQL Server 2000, provavelmente irão existir utilizadores órfãos. Adicionalmente, inícios de sessão integrados concederam acesso num servidor de destino num domínio diferente daquele do servidor de origem, causando utilizadores órfãos.
  1. Procure utilizadores órfãos. Abra o Query Analyzer no servidor de destino, em seguida execute o código seguinte na base de dados do utilizador que moveu:
    exec sp_change_users_login 'Report'
    O procedimento lista quaisquer utilizadores órfãos que não possam ser ligados a um início de sessão. Se não forem listados utilizadores, ignore o passo 2 e 3 e passe ao passo 4.
  2. Solucione os utilizadores órfãos. Se um utilizador for órfão, os utilizadores da base de dados poderão ligar-se com sucesso so servidor mas não terão permissão para aceder à base de dados. Se tentar conceder o acesso de início de sessão à base de dados, irá receber a seguinte mensagem de erro dado que o utilizador já existe:
    Microsoft SQL-DMO (ODBC SQLState: 42000) Erro 15023: Utilizador ou função '%s' já existe na base de dados actual.
    Para mais informações sobre como resolver utilizadores órfãos, clique nos números de artigos que se seguem para visualizar os artigos na Base de Dados de Conhecimento da Microsoft:
    240872 Como solucionar questões de permissão quando mover uma base de dados entre servidores que se encontrem a executar o SQL Server

    Este artigo contém instruções sobre como mapear os inícios de sessão para os utilizadores da base de dados e solucionar utilizadores órfãos a partir de inícios de sessão padronizados de SQL Server e de inícios de sessão integrados.

    274188 O tópico "Resolução de Problema de Utilizadores Órfãos" no Books Online está incompleto

    Este artigo descreve como utilizar o procedimento armazenadosp_change_users_login para corrigir os utilizadores órfãos um a um. O procedimento armazenado sp_change_users_login apenas soluciona utilizadores órfãos de inícios de sessão padrão no SQL Server.
  3. Se o proprietário da base de dados (dbo) for listado como órfão, execute este código na base de dados do utilizador:
    exec sp_changedbowner 'sa'
    O procedimento armazenado mudar o proprietário da base de dados para dbo e corrige o problema. Para alterar o proprietário da base de dados para outro utilizador, execute sp_changedbowner de novo com o utilizador que desejar. Para obter mais informações, consulte o sub-tópico "sp_changedbowner" do tópico "Referência do Transact-SQL" no SQL Server Books Online.
  4. Se o seu servidor de destino estiver a executar o Service Pack 1 do SQL Server 2000, o proprietário da base de dados poderá não estar na lista na pasta Utilizadores no Enterprise Manager após desempenhar a anexação ou o restauro ou ambos. Para obter mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
    305711 ERRO: O utilizador DBO não é apresentado no Enterprise Manager
  5. Pode receber a seguinte mensagem de erro se tentar alterar a palavra-passe do administrador do sistema (sa) através do Enterprise Logon se o início de sessão que foi 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 na colecção de Utilizadores. Se o nome for um nome qualificado, utilize [] para separar as várias partes do nome e tente novamente.
    Para obter mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
    218172 Não é possível alterar a palavra-passe de SA no Enterprise Manager
Aviso Se restaurar ou anexar a base de dados novamente, os utilizadores da base de dados poderão ficar de novo órfãos e terá de repetir o passo 3.

Passo 4: Como mover tarefas, alertas e operadores

O Passo 4 é opcional. Pode gerar scripts para todas as tarefas, alertas e operadores no servidor de origem, e em seguida executar o script no servidor de destino.
  • Para mover tarefas, alertas e operadores, siga estes passos:
    1. Abra o SQL Server Enterprise Manager, e em seguida expanda a pasta Gestão.
    2. Expanda o Agente do SQL Server, e em seguida clique com o botão direito do rato em Alertas, Tarefas, ou Operadores.
    3. Clique em Todas as Tarefas, e em seguida clique em Gerar Script SQL. Para o SQL Server 7.0, clique em Script para todas as tarefas, ou Alertas, ou Operadores.
    Terá a opção de gerar scripts para Todos os Alertas, Todas as Tarefas ou Todos os Operadores com base no item no qual tenha clicado com o botão direito do rato.
  • Pode mover tarefas, alertas e operadores do SQL Server 7.0 para o SQL Server 2000 ou entre servidores do computador que estejam a executar o SQL Server 7.0 e o SQL Server 2000.
  • Se possuir operadores que tenham sido configurados para receber notificações por SQLMail no servidor de origem, terá de configurar o SQLMail no servidor de destino para possuir a mesma funcionalidade. Para obter mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
    263556 Como Configurar o SQL Mail

Passo 5: Como mover pacotes DTS

O Passo 5 é opcional. Se os pacotes DTS forem armazenados no servidor de origem no SQL Server ou repositório, se quiser poderá move-los. Para mover pacotes DTS entre servidores, utilize um dos métodos seguinte.

Método 1

  1. Guarde o pacote DTS no servidor de origem para um ficheiro e em seguida abra o ficheiro do pacote DTS no servidor de destino.
  2. Guarde o pacote no servidor de destino no SQL Server ou repositório.
    Nota Tem de mover cada pacote individualmente em ficheiros separados.

Método 2

  1. Abra cada pacote DTS no Estruturador de DTS.
  2. No menu Pacote, clique em Guardar com.
  3. Especifique o SQL Server de destino.
Nota O pacote poderá não ser executado correctamente no novo servidor. Poderá ter de alterar o pacote, e mudar quaisquer referências no pacote à ligação, ficheiros, fontes de dados, perfis e outras informações localizadas no antigo servidor de origem, para passarem a referir o novo servidor de destino. Deve efectuar estas alterações numa base pacote a pacote com base no design de cada pacote.

Passo 6: Altere as definições sp_configure para corresponder ao sistema anterior

Poderá ter de alterar as definições de modo a que elas correspondam às definições no novo sistema. Por exemplo, se o novo sistema possuir mais memória ou se estiver a executar instâncias e aplicações diferentes do SQL, poderá querer alterar as definições de memória mínima e máxima do servidor ou a definição AWE. Poderá ter de alterar a definição MAXDOP se o número de núcleos CPU expostos ao sistema operativo tiverem mudado.

Mais Informação

Poderá também desejar mover outros itens, tal como servidores ligados, espelhamento, replicação, envio de registos, catálogos de texto completo, dispositivos de reserva nomeados, planos de manutenção, diagramas da base de dados, instantâneos da base de dados, credenciais e contas proxy, pontos finais, accionadores DDL confinados ao servidor (tais como accionadores de início de sessão) ou outros itens que involvam a base de dados principal ou msdb. Examine o servidor de origem relativamente a estas configurações e tome medidas para o configurar manualmente no servidor de destino se assim o desejar.

Para mais informações sobre como mover os componentes de texto completo, clique no número de artigo que se segue para visualizar o artigo na Base de Dados de Conhecimento da Microsoft:
240867 Como mover, copiar efectuar cópias de segurança de pastas de catálogo e ficheiros de texto completo
Os diagramas da base de dados e o histórico de cópia de segurança e restauro não são movidos se seguir os passos neste artigo. Se tiver de mover estas informações, mova a base de dados de sistema msdb. Para obter mais informações sobre como mover a base de dados msdb, consulte os artigos da Base de Dados de Conhecimento Microsoft referidos na secção "Passo 1: Como mover bases de dados de utilizador". Se mover a base de dados msdb, não terá de seguir o "Passo 4: Como mover tarefas, alertas e operadores" ou o "Passo 5: Como mover pacotes DTS."

Referências

Para obter mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
320125 Como mover um diagrama de base de dados

Propriedades

Artigo: 314546 - Última revisão: 17 de setembro de 2011 - Revisão: 3.0
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 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
Palavras-chave: 
kbsqlsetup kbhowtomaster 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