DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 304692 - Última revisão: sábado, 14 de Maio de 2011 - Revisão: 4.0

Nesta página

Sumário

Este artigo descreve como restaurar cópias de segurança de bases de dados de utilizadores e sistemas noutra instalação do SQL Server 7.0 que tenha configurações de letra de unidade diferentes das do servidor a partir do qual efectuou a cópia de segurança original das bases de dados. Pode utilizar este método quando pretender mover uma base de dados utilizando cópias de segurança ou restauros. Para obter mais informações sobre a utilização de um método alternativo, clique no número de artigo seguinte para ver o artigo na Base de Dados de Conhecimento Microsoft:
224071  (http://support.microsoft.com/kb/224071/ ) How to move SQL Server databases to a new location by using Detach and Attach functions in SQL Server
NOTA: As instruções existentes neste artigo não se aplicam ao SQL Server 2000.

Não é possível restaurar as bases de dados mestre, modelo, msdb ou de distribuição de sistema do SQL Server 7.0 para o SQL Server 2000. As bases de dados de sistema do SQL Server 7.0 não são compatíveis com o SQL Server 2000.

Mais Informação

Os exemplos existentes neste artigo são baseados nos seguintes pressupostos:
  • A instalação de destino do SQL Server 7.0 encontra-se no directório D:\Mssql7 e os ficheiros de base de dados e registo estão localizados no directório predefinido, D:\Mssql7\data.
  • A instalação de origem do SQL Server 7.0 encontra-se no directório C:\Mssql7 e os ficheiros de base de dados e registo estão localizados no directório predefinido, C:\Mssql7\data.

Pré-requisitos

  • Crie uma cópia de segurança de todas as bases de dados a partir da localização actual, especialmente no que respeita à base de dados mestre, a base de dados modelo e a base de dados msdb.
  • Necessita de ter privilégios de administrador de sistema.
  • Necessita de conhecer o nome lógico e os nomes físicos de todos os ficheiros de dados e registo das bases de dados que pretende restaurar.

    NOTA: Para determinar o nome lógico e o nome físico de todos os ficheiros que pretende restaurar a partir do conjunto de cópias de segurança, execute o comando seguinte numa ligação do Query Analyzer, em que mydbdata.bak é o nome do ficheiro que contém a cópia de segurança da base de dados:
    RESTORE FILELISTONLY FROM DISK='d:\mssql7\backup\mydbdata.bak'
    go
    					
  • As instalações de origem e destino do SQL Server 7.0 devem ter os mesmos Service Packs e patches aplicados.
Se encontrar problemas durante o processo e não conseguir aceder a uma base de dados que tenha movido, ou se não conseguir iniciar o SQL Server, consulte o registo de erros do SQL Server e o SQL Server 7.0 Books Online para obter detalhes sobre os erros encontrados.

Para restaurar as bases de dados

  1. Restaure a base de dados mestre.

    No exemplo seguinte, a base de dados mestre contém um ficheiro de dados, Master.mdf, e um ficheiro de registo, Mastlog.ldf, no ficheiro de cópia de segurança da base de dados, Master_db.bak.
    1. Execute o comando seguinte a partir de uma linha de comandos, para iniciar o SQL Server:
      d:\mssql7\binn\sqlservr -c -m

      NOTA: O parâmetro -m inicia o SQL Server no modo de utilizador único. No modo de utilizador único, não é possível estabelecer mais de uma ligação com êxito. Preste atenção a quaisquer outros clientes ou serviços que possam estabelecer essa ligação antes de utilizar o SQL Server Query Analyzer.
    2. No SQL Server Query Analyzer, utilize a sintaxe seguinte para restaurar uma cópia de segurança da base de dados mestre:
      RESTORE DATABASE master FROM disk='d:\mssql7\backup\master_db.bak'
      WITH MOVE 'master' to 'd:\mssql7\data\master.mdf',
      MOVE 'mastlog' to 'd:\mssql7\data\mastlog.ldf',
      REPLACE
      go
      NOTA: O SQL Server encerra-se automaticamente depois de restaurar a base de dados mestre.
    3. Execute o comando seguinte a partir de uma linha de comandos, para iniciar o SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
      NOTA: Utilizando esta sintaxe, pode efectuar actualizações à tabela de sistema.
    4. No SQL Server Query Analyzer, execute o conjunto de instruções seguinte:

      AVISO: A actualização incorrecta de tabelas de sistema poderá provocar problemas graves que poderão forçar a reinstalação do SQL Server. A Microsoft não garante que os problemas resultantes da actualização incorrecta das tabelas de sistema possam ser resolvidos. Todo e qualquer risco decorrente da actualização das tabelas de sistema é da responsabilidade do utilizador.
      USE master
      go
      UPDATE sysdatabases SET filename='d:\mssql7\data\tempdb.mdf' WHERE name='tempdb'
      go
      ALTER DATABASE tempdb MODIFY FILE (name = tempdev, filename = 'd:\mssql7\data\tempdb.mdf')
      ALTER DATABASE tempdb MODIFY FILE (name = templog, filename = 'd:\mssql7\data\templog.ldf')
      go
      Deverá receber as mensagens seguintes confirmando a alteração:
      File 'tempdev' modified in sysaltfiles. Delete old file after restarting SQL Server.

      File 'templog' modified in sysaltfiles. Delete old file after restarting SQL Server.
  2. Restaure a base de dados modelo.

    No exemplo seguinte, a base de dados modelo contém um ficheiro de dados, Model.mdf, e um ficheiro de registo, Modellog.ldf, no ficheiro de cópia de segurança da base de dados, Model_db.bak. Se não tiver uma cópia de segurança da base de dados modelo ou se pretender utilizar a base de dados instalada por predefinição durante a instalação do SQL Server, poderá remapear a base de dados modelo. Este procedimento é semelhante ao procedimento descrito para as bases de dados northwind e pubs no passo 4.
    1. No SQL Server Query Analyzer, execute o procedimento armazenado seguinte para desanexar a base de dados modelo actual do SQL Server:
      exec sp_detach_db N'model'
      go
      Depois de executar o procedimento armazenado, será apresentada a seguinte mensagem:
      Successfully detached database 'model'
      DBCC execution completed. If DBCC printed error messages, contact your system administrator
      NOTA: Necessita de desanexar a base de dados modelo porque não é possível substituí-la directamente utilizando a instrução RESTORE. Tem de remover as referências para esta base de dados de sistema existentes na tabela de sistema antes que a base de dados seja restaurada. Para além disso, não pode remover a base de dados para remover estas entradas de sistema.
    2. No SQL Server Query Analyzer, utilize a sintaxe seguinte para restaurar uma cópia de segurança da base de dados modelo:
      RESTORE DATABASE model FROM disk='d:\mssql7\backup\model_db.bak'
      WITH MOVE 'modeldev' TO 'd:\mssql7\data\model.mdf',
           MOVE 'modellog' TO 'd:\mssql7\data\modellog.ldf',
           REPLACE
      go
      Nota A ligação ao SQL Server é interrompida depois de restaurar a base de dados modelo.
  3. Restaure a base de dados msdb.

    No exemplo seguinte, a base de dados msdb contém um ficheiro de dados, Msdbdata.mdf, e um ficheiro de registo, Msdblog.ldf, no ficheiro de cópia de segurança da base de dados, Msdb_db.bak.
    1. Execute o comando seguinte a partir de uma linha de comandos, para iniciar o SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. No SQL Server Query Analyzer, execute o procedimento armazenado seguinte para desanexar a base de dados msdb:
      exec sp_detach_db N'msdb'
      go
    3. No SQL Server Query Analyzer, utilize a sintaxe seguinte para restaurar uma cópia de segurança da base de dados msdb:
      RESTORE DATABASE msdb FROM disk='d:\mssql7\backup\msdb_db.bak'
      WITH MOVE 'msdbdata' TO 'd:\mssql7\data\msdbdata.mdf',
           MOVE 'msdblog' TO 'd:\mssql7\data\msdblog.ldf',
           REPLACE
      go
      Nota A ligação ao SQL Server é interrompida depois de restaurar a base de dados msdb.
  4. As bases de dados northwind e pubs:

    Depois de restaurar a base de dados mestre, as entradas da tabela de sistema relativas às bases de dados northwind e pubs são alteradas e as duas bases de dados, tal como todas as outras bases de dados do utilizador, encontram-se no modo Suspect. Se pretender reutilizar os ficheiros de base de dados originais e reanexá-los ao servidor, poderá utilizar o exemplo seguinte. Caso contrário, se pretender restaurar uma cópia a partir da cópia de segurança, utilize o exemplo relativo à base de dados mydb descrito no passo 6. Utilize o exemplo seguinte para actualizar as referências existentes na tabela de sistema para a base de dados northwind. A base de dados northwind contém um ficheiro de dados, Northwind.mdf, e um ficheiro de registo, Northwind.ldf.
    1. Execute o comando seguinte a partir de uma linha de comandos, para iniciar o SQL Server:
      d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
    2. No SQL Server Query Analyzer, execute o procedimento armazenado seguinte para desanexar a base de dados northwind:
      exec sp_detach_db N'northwind'
      go

      NOTA: Poderá receber a mensagem seguinte, que indica que não existe acesso aos ficheiros físicos:
      Server: Msg 947, Level 16, State 1, Line 1 Error while closing database 'Northwind' cleanly.
      Successfully detached database 'northwind'.
      DBCC execution completed. If DBCC printed error messages, contact your system administrator.
    3. No SQL Server Query Analyzer, utilize a sintaxe seguinte para anexar a base de dados northwind:
      exec sp_attach_db N'northwind', N'd:\mssql7\data\northwnd.mdf', N'd:\mssql7\data\northwnd.ldf'
      go
  5. Remapeie a base de dados pubs.

    A base de dados pubs contém um ficheiro de dados, Pubs.mdf, e um ficheiro de registo, Pubs_log.ldf. Pode remapear a base de dados pubs tal como remapeou a base de dados northwind.
  6. Restaure a base de dados mydb.

    A base de dados mydb contém um ficheiro de dados, Mydbdata.mdf, e um ficheiro de registo, Mydblog.ldf, no ficheiro de cópia de segurança da base de dados, Mydb_db.bak.
    1. No SQL Server Query Analyzer, execute o procedimento armazenado seguinte para desanexar a base de dados mydb:
      exec sp_detach_db N'mydb'
      go
    2. No SQL Server Query Analyzer, utilize a sintaxe seguinte para restaurar uma cópia de segurança da base de dados mydb:
      RESTORE DATABASE mydb FROM disk='d:\mssql7\backup\mydb_db.bak'
      WITH MOVE 'mydbdata' TO 'd:\mssql7\data\mydbdata.mdf',
           MOVE 'mydblog' TO 'd:\mssql7\data\mydblog.ldf',
           REPLACE
      go
  7. Mude o nome ao SQL Server.

    IMPORTANTE: Este procedimento só é necessário se tiver de alterar o nome da instalação do SQL Server para a qual acabou de restaurar a base de dados mestre.

    Por exemplo, teria de mudar o nome do SQL Server se:

    • Tiver restaurados as cópias de segurança da base de dados a partir de um computador SVRORIGEM para um computador chamado SVRDESTINO.
    • O computador chamado SVRDESTINO tiver um servidor SQL chamado SVRORIGEM.
    Se necessitar de mudar o nome do SQL Server, utilize a sintaxe seguinte para sincronizar o nome do computador e o nome do SQL Server:
    exec sp_dropserver 'SOURCESVR'
    go
    exec sp_addserver 'TARGETSVR', 'LOCAL'
    go
  8. Reinicie o serviço SQL Server.

REFERÊNCIAS

Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Base de Dados de Conhecimento Microsoft:
224071  (http://support.microsoft.com/kb/224071/ ) How to move SQL Server databases to a new location by using Detach and Attach functions in SQL Server
314546  (http://support.microsoft.com/kb/314546/ ) How to move databases between computers that are running SQL Server
NOTA: Para obter informações adicionais sobre outras opções de arranque, tais como -c, -m e -f, consulte o SQL Server Books Online.

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 7.0 Standard Edition
Palavras-chave: 
kbsqlmanagementtools kbinfo KB304692
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft