SMO: przywracanie do innej bazy danych
Przeczytałem kilkanaście różnych blogów, a także przeczytałem przykłady msdn i one po prostu nie działają dla mnie.
Zupełnie to, co próbuję zrobić, to zautomatyzować przenoszenie bazy danych z naszej instancji produkcyjnej do naszej instancji programistycznej lub w innym kierunk
Podejście to:
tworzenie kopii zapasowych / przywracanie do tymczasowej bazy danychdetach temp DB Kopiuj pliki mdf i ldf do drugiej instancji podłącz ponownie.Utknąłem na 1 i nie rozumiem dlaczego. Wszystko, co przeczytałem, twierdzi, że powinno działać.
UWAGA: UstawiłemdbName
do bazy danych, którą chcę przywrócić. Ustawiłem równieżrestore.Database = dbName
, gdzierestore
jest instancjąRestore
klasa wsmo
przestrzeń nazw.
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);
To jest wyjątek, który otrzymuję:
Plik „D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.mdf” nie może zostać zastąpiony. Jest używany przez bazę danych „MIQDesignTest2”.
Pliku „MIQDesign” nie można przywrócić do „D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.mdf”. Użyj Z RUCHEM, aby zidentyfikować prawidłową lokalizację pliku.
Plik „D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.ldf” nie może zostać zastąpiony. Jest używany przez bazę danych „MIQDesignTest2”.
Pliku „MIQDesign_log” nie można przywrócić do „D: \ MSSQL.MIQ_Dev \ MSSQL.2 \ MSSQL \ Data \ MIQDesign2Detach.ldf”. Użyj Z RUCHEM, aby zidentyfikować prawidłową lokalizację pliku.
Problemy zostały zidentyfikowane podczas planowania instrukcji PRZYWRACANIA. Poprzednie wiadomości zawierają szczegółowe informacje.
PRZYWRÓĆ BAZA DANYCH kończy się nieprawidłowo.
Dlaczego to próbuje zastąpić oryginalny plik mdf? Nie jestRelocateFiles
rzeczy powinny określać, że chcesz, aby były zapisywane wróżn nazwa pliku fizycznego?