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 .
EXEC sys.xp_readerrorlog 0,1;
- poszukaj komunikatów w czasie operacji przywracania.