MO: restaurar para um banco de dados diferente
Eu li uma dúzia de blogs diferentes, além de ler os exemplos do msdn e eles simplesmente não estão funcionando para mi
Em última análise, o que estou tentando fazer é automatizar a movimentação de um banco de dados de nossa instância de produção para nossa instância de desenvolvimento ou outra direçã
A abordagem adotada é a seguinte:
backup / restauração para um banco de dados temporáriodetach temp DB copie os arquivos mdf e ldf para a outra instância reconecte.Estou preso no 1 e não consigo entender o porquê. Tudo o que li afirma que isso deve estar funcionando.
NOTA: eu configureidbName
para o db para o qual quero restaurar. Eu também configureirestore.Database = dbName
, Onderestore
é uma instância doRestore
lasse @ nosmo
namespace.
mdf.LogicalFileName = dbName;
mdf.PhysicalFileName = String.Format(@"{0}\{1}.mdf", server.Information.MasterDBPath, dbName);
ldf.LogicalFileName = dbName + "_log";
ldf.PhysicalFileName = String.Format(@"{0}\{1}.ldf", server.Information.MasterDBPath, dbName);
restore.RelocateFiles.Add(mdf);
restore.RelocateFiles.Add(ldf);
restore.SqlRestore(server);
Esta é a exceção que estou recebendo:
O arquivo 'D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.mdf' não pode ser substituído. Está sendo usado pelo banco de dados 'MIQDesignTest2'.
@Arquivo 'MIQDesign' não pode ser restaurado para 'D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.mdf'. Use WITH MOVE para identificar um local válido para o arquiv
O arquivo 'D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.ldf' não pode ser substituído. Está sendo usado pelo banco de dados 'MIQDesignTest2'.
@Arquivo 'MIQDesign_log' não pode ser restaurado para 'D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.ldf'. Use WITH MOVE para identificar um local válido para o arquiv
s problemas @ foram identificados durante o planejamento da instrução RESTORE. As mensagens anteriores fornecem detalhes.
RESTORE DATABASE está sendo finalizado de forma anorma
Por que isso está tentando substituir o mdf original? Não é oRelocateFiles
coisas que deveriam especificar que você deseja que ele seja salvo em umdiferent nome do arquivo físico?