Wiem, że są pytania, które rozwiązują problem zatrzymania bazy danych RESTORING
i wykorzystały te rozwiązania do ręcznego przywrócenia bazy danych do trybu online, ale mój scenariusz jest nieco inny.
Mam automatyczne przywracanie za pomocą skryptów Powershell, które przywracają kopię produkcyjną do instancji DEV. Skrypty pozostają niezmienione przez około rok, a czasami proces przywracania kończy się, ale przywrócona baza danych utknęła w RESTORING
stanie (czasami skrypt działa dobrze, a czasem tak się nie udaje).
Za każdym razem, gdy ręcznie ponownie uruchomię proces, działa lub jeśli ręcznie przywracam bazę danych z interfejsu użytkownika SSMS lub za pomocą T-SQL, kończy się bez problemu.
Znalazłem odpowiedzi, które zalecały uruchomienie CHECKDB
na przywróconej bazie danych, ale nic nie wyszło jako przyczyna tego problemu.
Ponieważ skrypty przywracają PEŁNĄ kopię zapasową bazy danych i korzystają z "WITH RECOVERY"
opcji, próbuję dowiedzieć się, co może zatrzymać proces przywracania, chociaż w rzeczywistości przywracam go "WITH RECOVERY"
.
Wszelkie sugestie są bardzo mile widziane, ponieważ od czasu do czasu próbuję zrozumieć, dlaczego tak się dzieje.
Bardzo chciałbym rozwiązać podstawową przyczynę problemu, a nie leczyć objawy, czyli ponowne ręczne przywrócenie bazy danych.
Aktualizacja:
Polecany Github Gist jako @Brent - tutaj .
źródło
EXEC sys.xp_readerrorlog 0,1;
- poszukaj komunikatów w czasie operacji przywracania.Odpowiedzi:
Brzytwa Ockhama sugeruje zacząć od oczywistego:
Jeśli skrypt czasami pozostawia bazę danych w stanie przywracania, debuguj skrypt.
Zacznij od zalogowania się w tabeli lub pliku. Następnie, gdy baza danych zostanie przywrócona, przejdź do swoich dzienników, aby zobaczyć, co poszło nie tak. (Jeśli chcesz mieć drugą grupę oczu od społeczności, spróbuj przesłać swój skrypt jako Github Gist, ale pamiętaj, że im większy, tym trudniej jest wykryć błędy).
Jeśli nie chcesz tego robić, spróbuj uruchomić profil Profiler lub Extended Events, aby śledzić zdarzenia przywracania, ale ostrzegaj - jest to o wiele trudniejsze niż się wydaje. (Przeczytaj komentarze do tego wpisu, aby uzyskać więcej pomysłów czytelników, które wypróbowali i nie powiodło się).
źródło