Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Execute o comando seguinte a partir de uma linha de comandos, para iniciar o SQL Server:
d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
No SQL Server Query Analyzer, execute o procedimento armazenado seguinte para desanexar a base de dados msdb:
exec sp_detach_db N'msdb'
go
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.
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.
Execute o comando seguinte a partir de uma linha de comandos, para iniciar o SQL Server:
d:\mssql7\binn\sqlservr -c -f -T3608 -T4022
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.
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
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.
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.
No SQL Server Query Analyzer, execute o procedimento armazenado seguinte para desanexar a base de dados mydb:
exec sp_detach_db N'mydb'
go
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
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
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.
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
O que podemos fazer para melhor estas informações?
Para proteger a sua privacidade, não inclua as informações de contacto nos comentários.
Obrigado! Os seus comentários serão utilizados para nos ajudar a melhorar o conteúdo do suporte. Para obter mais opções de assistência, visite a Home Page da Ajuda e Suporte.