Mam kopię zapasową Database1 sprzed tygodnia. Kopia zapasowa jest wykonywana co tydzień w harmonogramie i otrzymuję .bak
plik. Teraz chcę majstrować przy niektórych danych, więc muszę je przywrócić do innej bazy danych - Database2 .
Widziałem to pytanie: przywróć bazę danych SQL Server na tym samym komputerze o innej nazwie i zalecanym krokiem jest zmiana nazwy oryginalnej bazy danych , ale nie mam tej opcji, ponieważ jestem na serwerze produkcyjnym i naprawdę nie mogę tego zrobić.
Czy istnieje jakiś inny sposób przywrócenia go Database2
, lub przynajmniej, w jaki sposób mogę przeglądać dane tego pliku .bak?
dzięki.
ps: druga odpowiedź z powyższego linku wyglądała obiecująco, ale wciąż kończy się błędem:
Przywracanie listy plików kończy się nieprawidłowo
źródło
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
?to
jest to lokalizacja db & log dla nowej bazy danych, przykład aktualizacji powyżejRESTORE DATABASE MyTempCopy FROM DISK='e:\mssql\backup\creditline.bak' WITH REPLACE, RECOVERY, MOVE 'CreditLine' TO 'e:\mssql\MyTempCopy.mdf', MOVE 'CreditLine_log' TO 'e:\mssql\MyTempCopy_log.ldf'
SQL Server 2008 R2:
W przypadku istniejącej bazy danych, którą chcesz „przywrócić: z kopii zapasowej innej bazy danych, wykonaj następujące kroki:
źródło
W przypadku SQL Server 2012, używając Sql Server Management Studio, uznałem te kroki ze strony Microsoft za przydatne do przywrócenia do innego pliku bazy danych i nazwy: (zob .: http://technet.microsoft.com/en-us/library/ms175510 .aspx )
Uwaga: kroki 4 i 7 są ważne, aby nie zastępować istniejącej bazy danych.
źródło
W rzeczywistości nie ma potrzeby przywracania bazy danych w natywnych warunkach SQL Server, ponieważ „chcesz bawić się danymi” i „przeglądać dane tego pliku .bak”
Możesz użyć ApexSQL Restore - narzędzia SQL Server, które dołącza zarówno rodzime, jak i natywnie skompresowane kopie zapasowe bazy danych SQL oraz kopie dzienników transakcji jako bazy danych na żywo , dostępne za pośrednictwem SQL Server Management Studio, Visual Studio lub dowolnego innego narzędzia zewnętrznego. Umożliwia dołączanie pojedynczych lub wielu pełnych kopii zapasowych, różnicowych i dzienników transakcji
Ponadto uważam, że możesz wykonać zadanie, gdy narzędzie jest w pełni funkcjonalnym trybie próbnym (14 dni)
Oświadczenie: Pracuję jako inżynier wsparcia produktu w ApexSQL
źródło
Oto, co zebrałem razem z różnych postów, aby skopiować bazę danych za pomocą kopii zapasowej i przywracania z przeniesieniem, aby naprawić fizyczną lokalizację i dodatkową sql, aby naprawić logiczną nazwę.
źródło
DECLARE @BackupFiles...
wiersz wymaga dodatkowej kolumny:SnapshotURL nvarchar(360)
Jest to w rzeczywistości nieco prostsze niż przywracanie na tym samym serwerze. Zasadniczo wystarczy przejść przez opcje „Przywróć bazę danych”. Oto samouczek dla Ciebie:
http://www.techrepublic.com/blog/window-on-windows/how-do-i-restore-a-sql-server-database-to-a-new-server/454
Zwłaszcza, że jest to przywracanie nieprodukcyjne, możesz czuć się swobodnie po prostu wypróbowując go, nie martwiąc się zbytnio o szczegóły. Po prostu umieść swoje pliki SQL tam, gdzie chcesz, na nowym serwerze i nadaj im dowolną nazwę, którą chcesz i możesz już iść.
źródło
Jeśli nie istnieje baza danych, używam następującego kodu:
źródło
Mam ten sam błąd, co w tym temacie podczas przywracania nowej bazy danych przy użyciu starej bazy danych. (użycie .bak daje ten sam błąd)
Zmieniłem nazwę starej bazy danych na nazwę nowej bazy danych (to samo na tym zdjęciu). Zadziałało.
źródło
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:
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:
Gotowe!
źródło
źródło