Obsługa dziennika transakcji w bazie danych Mirror

10

Wersja SQL Server: 2008 R2 Enterprise SP2

Próbuję opanować obsługę programu SQL Server i natknąłem się na coś, co moim zdaniem jest nieprawidłowe. Mamy jedną instancję produkcyjną z 3 bazami danych, z których każda jest dublowana poza instancją do instancji DR.

Patrząc na instancję DR zauważyłem, że pliki LDF były ogromne, ponad 35 GB dla mocno używanych baz danych.

Rozumiem, że jest to prawdopodobnie spowodowane tym, że bazy danych kopii lustrzanych są w trybie pełnego odzyskiwania i że dzienniki nigdy nie zostały zapisane, będą one rosły aż do wyczerpania miejsca na dysku.

Wykonujemy kopie zapasowe dzienników w głównej bazie danych, a moje pytanie brzmi: co to są problemy z tworzeniem kopii zapasowej dziennika w lustrze?

Co najmniej jedna pełna kopia zapasowa bazy danych z kopii dystrybucyjnej musi zostać wykonana przed wykonaniem kopii zapasowej dziennika. Czy w takim przypadku istnieją specjalne opcje, których należy użyć, ponieważ jest to kopia lustrzana?

Ponownie są to zalecenia dotyczące konserwacji dziennika transakcji w bazie danych MIRROR .

Dzięki za wszelkie uwagi

Jeremie Grund
źródło

Odpowiedzi:

5

Wykonujemy kopie zapasowe dzienników w głównej bazie danych, a moje pytanie brzmi: co to są problemy z tworzeniem kopii zapasowej dziennika w lustrze?

Nie można wykonać kopii zapasowej dziennika w lustrzanej bazie danych.

Co najmniej jedna pełna kopia zapasowa bazy danych z kopii dystrybucyjnej musi zostać wykonana przed wykonaniem kopii zapasowej dziennika. Czy w takim przypadku istnieją specjalne opcje, których należy użyć, ponieważ jest to kopia lustrzana?

Nie można również wykonać pełnej kopii zapasowej bazy danych w lustrzanej bazie danych.

Weźmy na przykład: Mam, Server1która mieści główną bazę danych AdventureWorks2012, i mam, Server2która zawiera kopię lustrzaną. Oto, co się dzieje, gdy próbuję uruchomić kopie zapasowe w lustrzanej bazie danych (włączone Server2):

use master;
go

backup database AdventureWorks2012
to disk = 'c:\sqlserver\AW_mirror.bak';
go

Msg 954, poziom 14, stan 1, wiersz 2
Nie można otworzyć bazy danych „AdventureWorks2012”. Działa jak lustrzana baza danych .
Msg 3013, poziom 16, stan 1, wiersz 2
KOPIA ZAPASOWA kończy się nieprawidłowo.

backup log AdventureWorks2012
to disk = 'c:\sqlserver\AW_mirror.trn';
go

Msg 954, poziom 14, stan 1, wiersz 1
Nie można otworzyć bazy danych „AdventureWorks2012”. Działa jak lustrzana baza danych .
Msg 3013, poziom 16, stan 1, wiersz 1
KOPIA ZAPASOWA kończy się nieprawidłowo.

Przejrzyj często zadawane pytania dotyczące kopii lustrzanych bazy danych autorstwa Roberta Davisa . Zacytuję go odnośnie tej operacji i utrzymania dziennika transakcji lustrzanej bazy danych:

Podczas tworzenia kopii zapasowej dziennika na komputerze głównym wirtualne pliki dziennika (poszczególne jednostki w pliku dziennika) są oznaczane jako pliki do ponownego zapisu. Te same VLF-y są również oznaczone jako pliki do ponownego zapisu w lustrzanym pliku dziennika. Status VLF jest dublowany w bazie danych .

Więc masz to. Jeśli masz kopie zapasowe dziennika transakcji na jednostce głównej, podobne zachowanie ponownego użycia dziennika zostanie odzwierciedlone w bazie danych partnera.

Thomas Stringer
źródło
Nienawidzę tego, gdy istnieje artykuł, który odpowiada na moje dokładne pytanie i nie mogę go znaleźć. To ma sens, kiedy przejąłem dzienniki, których kopii zapasowej nie utworzono i urosłem na zleceniodawcy, więc po rozpoczęciu regularnych kopii zapasowych zmniejszyłem dzienniki, ale nie pomyślałem o zrobieniu tego w lustrze. Dzięki!
Jeremie Grund
1
Dodatkowym pytaniem byłoby, czy możliwe jest zmniejszenie przerośniętego, lustrzanego dziennika transakcji, skoro mamy regularne kopie zapasowe dziennika transakcji na zleceniodawcy?
Jeremie Grund
@JeremieGrund 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.
Thomas Stringer
0

@JeremieGrund - Jeśli architektura fizycznego pliku bazy danych jest taka sama (nazwy i lokalizacje dysków z danymi i lokalizacjami), to jeśli zmniejszysz plik dziennika na zleceniodawcy, polecenie zmniejszenia zostanie wysłane do kopii lustrzanej i zrobi to samo na kopii lustrzanej. W ten sposób można zachować plik dziennika lustrzanego. Jeśli architektura plików nie jest identyczna, należy postępować zgodnie z sugestią Thomasa Stringera.

kranthi
źródło