To jest pytanie uzupełniające do poprzedniego pytania, dlaczego nie mogłem zmniejszyć pliku dziennika w głównej bazie danych.
Krótko mówiąc, skonfigurowałem dublowanie bazy danych, ale zapomniałem upewnić się, że zadanie, które wykonało kopię zapasową dziennika transakcji, zostało uruchomione ponownie, a dziennik transakcji urósł do prawie 60 GB.
Od czasu skonfigurowania kopii lustrzanej ten wzrost rozmiaru został zduplikowany na serwerze kopii lustrzanej i ostatecznie zajął całe miejsce na dysku i uniemożliwił korzystanie z bazy danych kopii lustrzanych.
Na pytanie dotyczące konserwacji dziennika transakcji w lustrzanej bazie danych nie można wykonać kopii zapasowej dziennika w lustrze, ale zapytany w komentarzach o tym, jak zmniejszyć przerośnięty plik dziennika w lustrzanej bazie danych, pozostawiono komentarz
Jednym ze sposobów na to byłoby przełączenie awaryjne do lustrzanej bazy danych i zmniejszenie jej. Dokładnie przetestuj to w środowisku nieprodukcyjnym, aby upewnić się, że zachowuje się tak, jak chcesz.
Wydaje się to sugerować, że mogą istnieć inne sposoby zmniejszenia pliku dziennika na kopii lustrzanej, a ta metoda niekoniecznie może być bezpieczna na serwerze produkcyjnym.
Czy istnieje sposób na bezpieczne zmniejszenie pliku dziennika transakcji w lustrze bazy danych?
źródło
Odpowiedzi:
DBCC SHRINKFILE
Polecenia będą dublowane od zleceniodawcy do lustrzanej bazy danych. Oto jakiś dowód.Utwórz przykładową bazę danych na zleceniodawcy:
Utwórz tę samą bazę danych z kopii zapasowej za pomocą
NORECOVERY
:Skonfiguruj sesję kopii lustrzanej w dowolny sposób.
W głównej bazie danych spójrz na rozmiary plików bazy danych:
Mój zestaw wyników wygląda następująco:
W lustrzanej bazie danych utwórz migawkę i spójrz na te same informacje:
Mój zestaw wyników wygląda następująco:
Teraz powiększ plik dziennika transakcji w głównej bazie danych (przyniosłem go do 1 GB):
Patrząc na rozmiar dziennika transakcji głównej bazy danych , widzimy teraz dostosowany rozmiar:
Mój zestaw wyników wygląda następująco:
Utwórz kolejną migawkę w lustrzanej bazie danych i sprawdź tam rozmiar pliku dziennika transakcji:
Mój zestaw wyników wygląda następująco:
Teraz wykonaj
DBCC SHRINKFILE
na główny :Mój zestaw wyników jest następujący:
Utwórz trzecią i ostatnią migawkę w lustrzanej bazie danych i spójrz na rozmiar:
I otrzymuję następujący zestaw wyników:
Jak widać tutaj,
DBCC SHRINKFILE
polecenie jest w rzeczywistości dublowane w lustrzanej bazie danych.źródło
DBCC SHRINKFILE
na niej uruchomić . Jeśli chodzi o to, czy możesz naprawić sesję kopii lustrzanej bez usuwania kopii lustrzanej w tej bazie danych, trzeba będzie przeprowadzić nieco więcej dochodzenia. Wygląda na to, że został zawieszony z powodu rozmiaru pliku. Czy próbowałeś wznowić partnera?