Udostępnij za pośrednictwem


Dublowanie baz danych i wysyłanie dzienników (SQL Server)

Dotyczy:SQL Server

Daną bazę danych można zrcadlać lub przesyłać dzienniki; można ją również jednocześnie zrcadlać i przesyłać dzienniki. Aby wybrać, jakie podejście należy użyć, rozważ następujące kwestie:

  • Ile serwerów docelowych jest potrzebnych?

    Jeśli potrzebujesz tylko pojedynczej docelowej bazy danych, dublowanie bazy danych jest zalecanym rozwiązaniem.

    Jeśli potrzebujesz więcej niż jednej docelowej bazy danych, musisz użyć wysyłki dzienników osobno lub z dublowaniem bazy danych. Połączenie tych podejść zapewnia korzyści z mirroringu baz danych, a także obsługę wielu miejsc docelowych, którą zapewnia wysyłanie dzienników.

  • Jeśli musisz opóźnić przywracanie dziennika w docelowej bazie danych (zazwyczaj w celu ochrony przed błędami logicznymi), użyj wysyłania dzienników samodzielnie lub z dublowaniem bazy danych.

W tym temacie omówiono zagadnienia dotyczące łączenia wysyłania dzienników i dublowania bazy danych.

Uwaga / Notatka

Aby zapoznać się z tymi technologiami, zobacz Dublowanie bazy danych (SQL Server) i Wysyłanie dzienników (SQL Server).

Łączenie przesyłania dzienników danych i mirroringu bazy danych

Główna baza danych w sesji dublowania może również działać jako podstawowa baza danych w konfiguracji wysyłki dziennika lub odwrotnie, ponieważ udział kopii zapasowej wysyłki dziennika jest nienaruszony. Sesja dublowania bazy danych jest uruchamiana w dowolnym trybie operacyjnym, niezależnie od tego, czy synchroniczna (z bezpieczeństwem transakcji ustawionym na pełne) czy asynchroniczna (z bezpieczeństwem transakcji ustawionym na wyłączone).

Uwaga / Notatka

Aby można było używać mirroringu bazy danych, zawsze wymagany jest pełny model odzyskiwania.

Zazwyczaj podczas łączenia wysyłania dzienników i dublowania bazy danych sesja dublowania jest ustanawiana przed wysyłką dziennika, chociaż nie jest to wymagane. Następnie bieżąca główna baza danych jest skonfigurowana jako główna baza danych wysyłania dzienników (główna/podstawowa baza danych), wraz z jedną lub kilkoma zdalnymi pomocniczymi bazami danych. Ponadto baza danych lustrzanych musi być skonfigurowana jako główna dla wysyłania dzienników (baza danych lustrzana/główna). Pomocnicze bazy danych wysyłania dzienników powinny znajdować się w różnych wystąpieniach serwera niż serwer główny/podstawowy lub serwer dublowania/serwera podstawowego.

Uwaga / Notatka

Ustawienia rozróżniania wielkości liter serwerów zaangażowanych w przesyłanie dzienników powinny być zgodne.

Podczas sesji przesyłania dzienników, zadania dotyczące tworzenia kopii zapasowych na bazie danych głównej tworzą kopie zapasowe dziennika w folderze kopii zapasowej. Z tego miejsca kopie zapasowe są kopiowane przez zadania kopiowania serwerów pomocniczych. Aby zadania kopii zapasowej i kopiowania zakończyły się pomyślnie, muszą mieć dostęp do folderu kopii zapasowej logów. Aby zmaksymalizować dostępność serwera podstawowego, zalecamy ustanowienie folderu kopii zapasowej w udostępnionej lokalizacji kopii zapasowej na oddzielnym komputerze hosta. Upewnij się, że wszystkie serwery obsługujące wysyłanie dzienników, w tym serwer lustrzany/podstawowy, mają dostęp do współużytkowanej lokalizacji kopii zapasowej (znanej jako udział kopi zapasowych).

Aby zezwolić na kontynuowanie wysyłania dzienników po zakończeniu dublowania bazy danych w trybie failover, należy również skonfigurować serwer dublowania jako serwer podstawowy przy użyciu tej samej konfiguracji, która jest używana dla podstawowej bazy danych. Baza danych lustrzana jest w stanie przywracania, co uniemożliwia wykonywanie kopii zapasowej dziennika na lustrzanej bazie danych. Dzięki temu baza danych lustrzana/podstawowa nie zakłóca bazy danych głównej/podstawowej, której kopie zapasowe dzienników są obecnie kopiowane przez serwery pomocnicze. Aby zapobiec fałszywym alertom, po wykonaniu zadania tworzenia kopii zapasowej na bazie dublowanej/podstawowej, zadanie tworzenia kopii zapasowej rejestruje komunikat w tabeli log_shipping_monitor_history_detail, a zadanie agenta zwraca stan sukcesu.

Lustrzana/podstawowa baza danych jest nieaktywna w sesji transferu logów. Jednak w przypadku awaryjnego przełączania dublowania, dawna baza danych dublowania jest dostępna jako główna baza danych. W tym momencie ta baza danych staje się także aktywna jako główna baza danych dla wysyłania dzienników. Zadania tworzenia kopii zapasowej dziennika, które wcześniej nie mogły wysyłać logów z tej bazy danych, rozpoczynają wysyłanie dziennika. Z drugiej strony przejście w tryb failover powoduje, że dotychczasowa baza danych główna/podstawowa staje się nową bazą danych lustrzaną/podstawową, wchodzi w stan przywracania, a zadania tworzenia kopii zapasowej w tej bazie danych przestają tworzyć kopie zapasowe dziennika.

Uwaga / Notatka

W przypadku automatycznego awaryjnego przełączenia przełączenie roli na dublowanie następuje, gdy była główna/podstawowa baza danych ponownie łączy się z sesją dublowania.

Aby uruchomić w trybie wysokiego bezpieczeństwa z automatycznym trybem failover, sesja dublowania jest skonfigurowana z dodatkowym wystąpieniem serwera znanym jako świadek. Jeśli główna baza danych zostanie utracona z jakiegokolwiek powodu po zsynchronizowaniu bazy danych, a serwer lustrzany i świadek nadal mogą komunikować się ze sobą, nastąpi automatyczne przełączenie. Automatyczne przełączanie awaryjne powoduje, że serwer lustrzany przyjmuje rolę główną i włącza swoją bazę danych jako główną bazę danych. Jeśli lokalizacja kopii zapasowej wysyłania dziennika jest dostępna dla nowego serwera głównego/podstawowego, procesy tworzenia kopii zapasowej zaczynają przesyłać kopie zapasowe dziennika do tej lokalizacji. Tryb synchroniczny dublowania bazy danych gwarantuje, że łańcuch dziennika pozostaje niewzruszony przez awarię trybu dublowania i że zostaje przywrócony tylko prawidłowy log. Serwery pomocnicze nadal kopiują kopie zapasowe dzienników bez znajomości, że inne wystąpienie serwera stało się serwerem podstawowym.

Podczas korzystania z lokalnego monitora wysyłania dzienników nie są konieczne żadne szczególne kwestie, aby uwzględnić ten scenariusz. Aby uzyskać informacje o korzystaniu z wystąpienia zdalnego monitorowania w tym scenariuszu, zobacz "Wpływ mirroringu bazy danych na wystąpienie zdalnego monitorowania" w dalszej części tego tematu.

Przełączenie z bazy danych głównej do bazy danych lustrzanej

Na poniższej ilustracji przedstawiono, jak współdziałają wysyłanie dzienników i mirroring bazy danych, kiedy mirroring działa w trybie wysokiego bezpieczeństwa z automatycznym przełączeniem awaryjnym. Początkowo Server_A jest zarówno głównym serwerem do dublowania, jak i serwerem podstawowym na potrzeby wysyłania dzienników. Server_B jest serwerem zapasowym i jest również skonfigurowany jako serwer podstawowy, obecnie nieaktywny. Server_C i Server_D to serwery pomocnicze wysyłania dzienników. Aby zmaksymalizować dostępność sesji wysyłania dziennika, lokalizacja kopii zapasowej znajduje się w katalogu udziału na oddzielnym komputerze hosta.

Wysyłanie dzienników i dublowanie bazy danych Wysyłka dziennika

Po przełączeniu w tryb odzwierciedlania nazwa serwera podstawowego zdefiniowana na serwerze pomocniczym pozostaje bez zmian. .

Wpływ dublowania bazy danych na wystąpienie zdalnego monitorowania

W przypadku użycia wysyłania dziennika z wystąpieniem zdalnego monitorowania połączenie sesji wysyłki dziennika i dublowania bazy danych wpływa na informacje w tabelach monitora. Informacje o podstawowym serwerze są połączeniem konfiguracji na głównym/podstawowym serwerze i monitorze skonfigurowanym na każdym serwerze pomocniczym.

Aby zapewnić jak najbardziej płynne monitorowanie, podczas korzystania z monitora zdalnego zalecamy określenie oryginalnej nazwy podstawowej podczas konfigurowania podstawowego w pomocniczym systemie. Takie podejście ułatwia również zmianę konfiguracji wysyłania dziennika z programu Microsoft SQL Server Agent. Aby uzyskać więcej informacji na temat monitorowania, zobacz Monitor Log Shipping (Transact-SQL).

Konfigurowanie mirroringu i wysyłania dziennika razem

Aby skonfigurować dublowanie bazy danych i wysyłanie dzienników razem, wymagane są następujące kroki:

  1. Przywróć kopie zapasowe głównej/podstawowej bazy danych z opcją NORECOVERY na innym wystąpieniu serwera, aby mogły być później użyte jako baza mirroringu dla głównej/podstawowej bazy danych. Aby uzyskać więcej informacji, zobacz Prepare a Mirror Database for Mirroring (SQL Server).

  2. Skonfiguruj dublowanie bazy danych. Aby uzyskać więcej informacji, zobacz Ustanawianie sesji dublowania bazy danych przy użyciu uwierzytelniania systemu Windows (SQL Server Management Studio) lub Konfigurowanie dublowania bazy danych (SQL Server).

  3. Przywróć kopie zapasowe głównej/podstawowej bazy danych na inne wystąpienia serwera, które później będą używane jako drugorzędne bazy danych wysyłania dzienników dla głównej bazy danych.

  4. Skonfiguruj wysyłkę dziennika w głównej bazie danych jako podstawową bazę danych dla co najmniej jednej pomocniczej bazy danych.

    Należy skonfigurować pojedynczy udział jako katalog do przechowywania kopii zapasowych (udział kopii zapasowych). Gwarantuje to, że po przełączeniu ról między serwerami głównymi a serwerami lustrzanymi, zadania tworzenia kopii zapasowej będą kontynuować zapisywanie w tym samym katalogu, co wcześniej. Najlepszym rozwiązaniem jest zapewnienie, że ten udział znajduje się na innym serwerze fizycznym niż serwery hostujące bazy danych zaangażowane w dublowanie i wysyłanie dzienników.

    Aby uzyskać więcej informacji, zobacz Konfigurowanie wysyłania dziennika (SQL Server).

  5. Ręczne przełączenie awaryjne z głównego serwera do serwera lustrzanego.

    Aby wykonać ręczne przełączenie awaryjne:

  6. Skonfiguruj wysyłkę dziennika dla nowej bazy głównej (wcześniej bazy lustrzanej) jako bazy podstawowej.

    Ważne

    Nie należy wykonywać konfiguracji na urządzeniu pomocniczym.

    Musisz użyć tego samego udziału kopii zapasowej, którego użyto w kroku 4.

    Interfejs Wysyłki Dziennika Transakcji w programie SQL Server Management Studio obsługuje tylko jedną główną bazę danych w każdej konfiguracji wysyłki dziennika. W związku z tym należy użyć procedur składowanych, aby skonfigurować nowy główny element jako podstawowy.

  7. Wykonaj kolejne ręczne przełączenie awaryjne, aby powrócić do oryginalnego serwera głównego.