Criar uma nova base de dados a partir de uma cópia de segurança de outra base de dados no mesmo servidor?
estou a tentar criar uma nova base de dados a partir de uma cópia de segurança antiga da base de dados no mesmo servidor. Ao usar SQL server management studio e tentar restaurar para o novo DB a partir da cópia de segurança, obtenho este erro
System.Data.SqlClient.SqlError: The backup set holds a backup of a database
other than the existing 'test' database. (Microsoft.SqlServer.Smo)
Depois de pesquisar no Google, encontrei este código.
RESTORE DATABASE myDB
FROM DISK = 'C:\myDB.bak'
WITH MOVE 'myDB_Data' TO 'C:\DATA\myDB.mdf',
MOVE 'myDB_Log' TO 'C:\DATA\myDB_log.mdf'
GO
Estava a pensar se as declarações de mudança iriam interferir com a base de dados de que o backup veio daquele servidor?
Obrigado, agradeço a ajuda.
4 answers
- Primeiro, crie uma base de dados em branco.
- Então, no Assistente de recuperação" SQL Server Management Studio", procure a opção para sobrepor a base de dados de destino. Está na página 'Opções' e é chamada 'sobrepor a base de dados existente (com a substituição)'. Verifica.
- Lembre-se de seleccionar os ficheiros de destino na página 'ficheiros'.
Poderá alterar as 'páginas' do lado esquerdo do Assistente (Geral, ficheiros, Opções)
No SQL Server Management Studio, carregue com o botão direito nas bases de dados [5]} e seleccione restaurar a base de dados...
Na janela Restaurar a base de dados, Seleccione a base de dados de origem ou o dispositivo como normal. Uma vez que a base de dados de origem é selecionada, o SSMS irá preencher o nome da base de dados de destino com base no nome original da base de dados.
Então é possível mudar o nome da base de dados e indique um novo nome da base de dados de destino .Com esta abordagem, nem sequer precisa de ir à página Opções e carregar na opção "sobrepor a base de dados existente".
Além disso, os ficheiros de base de dados serão nomeados de forma consistente com o seu novo nome de base de dados e você ainda tem a opção de alterar os nomes dos ficheiros, Se quiser.
Então, se já tivesses um MyDb na instância do servidor, não estarias a repô-lo.