Oto jak przywrócić kopię zapasową jako dodatkową bazę danych o unikalnej nazwie.
W przypadku SQL 2005 działa to bardzo szybko. Jestem pewien, że nowsze wersje będą działać tak samo.
Po pierwsze, nie musisz wyłączać oryginalnej bazy danych w trybie offline. Ale ze względów bezpieczeństwa lubię. W moim przykładzie zamierzam zamontować klon mojej bazy danych „billingowych”, która będzie nosić nazwę „billingclone”.
1) Zrób dobrą kopię zapasową bazy danych rozliczeń
2) Ze względów bezpieczeństwa wziąłem oryginał offline w następujący sposób:
3) Otwórz nowe okno zapytania
**WAŻNY! Pozostaw to okno zapytania otwarte, dopóki nie skończysz! Musisz przywrócić db z tego okna!
Teraz wprowadź następujący kod:
-- 1) free up all USER databases
USE master;
GO
-- 2) kick all other users out:
ALTER DATABASE billing SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
-- 3) prevent sessions from re-establishing connection:
ALTER DATABASE billing SET OFFLINE;
3) Następnie w Management Studio kliknij rt bazy danych w Object Explorer, wybierz „Przywróć bazę danych”
4) wprowadź nową nazwę w polu „Do bazy danych”. IE billingclone
5) W polu Źródło do przywracania kliknij „Z urządzenia” i kliknij przycisk… nawiguj
6) Kliknij Dodaj i przejdź do kopii zapasowej
7) Umieść znacznik wyboru obok pozycji Przywróć (wybierz zestawy kopii zapasowych do przywrócenia)
8) następnie wybierz stronę OPCJE w górnym lewym rogu
9) Teraz edytuj nazwy plików bazy danych w RESTORE AS. Zrób to zarówno dla bazy danych, jak i dziennika. IE billingclone.mdf i billingclone_log.ldf
10) teraz naciśnij OK i poczekaj na zakończenie zadania.
11) Naciśnij odśwież w Eksploratorze obiektów, a zobaczysz nową db
12) Teraz możesz przywrócić swój system rozliczeniowy z powrotem do trybu online. Skorzystaj z tego samego okna zapytań, którego użyłeś do rozliczenia offline. Użyj tego polecenia:
-- 1) free up all USER databases
USE master; GO
-- 2) restore access to all users:
ALTER DATABASE billing SET MULTI_USER WITH ROLLBACK IMMEDIATE;GO
-- 3) put the db back online:
ALTER DATABASE billing SET ONLINE;
Gotowe!
backkup set holds a backup of a database other than existing "tmp" database
, co rozumiem. Czyto
wyrażenie powinno być faktyczną ścieżką fizycznąMyTempCopy
?