Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Dublowanie bazy danych można używać w połączeniu z replikacją w celu zwiększenia dostępności bazy danych publikacji. Dublowanie bazy danych obejmuje dwie kopie pojedynczej bazy danych, które zwykle znajdują się na różnych komputerach. W danym momencie tylko jedna kopia bazy danych jest obecnie dostępna dla klientów. Ta kopia jest znana jako główna baza danych. Aktualizacje wprowadzone przez klientów do głównej bazy danych są stosowane na innej kopii bazy danych, znanej jako dublowanie bazy danych. Dublowanie polega na zastosowaniu dziennika transakcji z każdej wstawionej, zaktualizowanej lub usuniętej transakcji w głównej bazie danych na dublowaną bazę danych.
Replikacja trybu failover do dublowania jest w pełni obsługiwana w przypadku baz danych publikacji z ograniczoną obsługą baz danych subskrypcji. Dublowanie bazy danych nie jest obsługiwane w przypadku bazy danych dystrybucji. Aby uzyskać informacje na temat odzyskiwania bazy danych dystrybucji lub bazy danych subskrypcji bez konieczności ponownej konfiguracji replikacji, zobacz Tworzenie kopii zapasowych i przywracanie replikowanych baz danych.
Uwaga / Notatka
Po przełączeniu awaryjnym, kopia lustrzana staje się główną. W tym temacie "principal" i "mirror" zawsze odnoszą się do oryginalnej głównej tożsamości i lustrzanego odbicia.
Wymagania i zagadnienia dotyczące używania replikacji z dublowaniem bazy danych
Podczas korzystania z replikacji z dublowaniem bazy danych należy pamiętać o następujących wymaganiach i zagadnieniach:
Główny serwer i serwer lustrzany muszą współdzielić dystrybutora. Zalecamy, aby był to zdalny dystrybutor, który zapewnia większą odporność na uszkodzenia w przypadku, gdy wydawca ma nieplanowane przełączenie awaryjne.
Replikacja obsługuje dublowanie bazy danych publikacji na potrzeby replikacji scalania oraz replikacji transakcyjnej z subskrybentami tylko do odczytu lub aktualizowaniem w kolejce subskrybentów. Natychmiastowe aktualizowanie subskrybentów, wydawców Oracle, wydawców w topologii równorzędnej i ponowne publikowanie nie jest obsługiwane.
Metadane i obiekty, które znajdują się poza bazą danych, nie są kopiowane do repliki, w tym loginy, zadania, serwery połączone, itp. Jeśli potrzebujesz metadanych i obiektów w lustrzanym obrazie, musisz je skopiować ręcznie. Aby uzyskać więcej informacji, zobacz Zarządzanie nazwami logowania i zadaniami po przełączeniu roli (SQL Server).
Konfigurowanie replikacji za pomocą dublowania bazy danych
Konfigurowanie replikacji i dublowania bazy danych obejmuje pięć kroków. Każdy krok został opisany bardziej szczegółowo w poniższej sekcji.
Skonfiguruj wydawcę.
Skonfiguruj dublowanie bazy danych.
Skonfiguruj lustro tak, aby używało tego samego dystrybutora co główny serwer.
Konfigurowanie agentów replikacji na potrzeby trybu failover.
Dodaj serwer główny i serwer lustrzany w monitorze replikacji.
Kroki 1 i 2 można również wykonać w odwrotnej kolejności.
Aby skonfigurować dublowanie bazy danych publikacji
Skonfiguruj wydawcę:
Zalecamy używanie zdalnego dystrybutora. Aby uzyskać więcej informacji na temat konfigurowania dystrybucji, zobacz Konfigurowanie dystrybucji.
Możesz aktywować bazę danych dla publikacji migawek, publikacji transakcyjnych i/lub publikacji scalania. W przypadku dublowanych baz danych, które będą zawierać więcej niż jeden typ publikacji, należy włączyć bazę danych dla obu typów w tym samym węźle przy użyciu sp_replicationdboption. Można na przykład wykonać następujące wywołania procedur składowanych na głównym serwerze:
exec sp_replicationdboption @dbname='<PublicationDatabase>', @optname='publish', @value=true; exec sp_replicationdboption @dbname='<PublicationDatabase>', @optname='mergepublish', @value=true;Aby uzyskać więcej informacji na temat tworzenia publikacji, zobacz Publikowanie danych i obiektów bazy danych.
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) i Konfigurowanie dublowania bazy danych (SQL Server).
Skonfiguruj dystrybucję dla lustra. Określ nazwę mirrora jako wydawcę i określ ten sam dystrybutor i folder migawki, którego używa główny serwer. Jeśli na przykład konfigurujesz replikację przy użyciu procedur składowanych, wykonaj sp_adddistpublisher w dystrybutorze; a następnie wykonaj sp_adddistributor w lustrze. W przypadku sp_adddistpublisher:
Ustaw wartość parametru @publisher na nazwę sieci lustrzanej.
Ustaw wartość parametru @working_directory na folder migawki używany przez podmiot.
Określ nazwę dublowania dla parametru agenta -PublisherFailoverPartner . Agent Ten parametr jest wymagany dla następujących agentów, aby zidentyfikować replikę po przełączeniu awaryjnym.
Agent migawek (dla wszystkich publikacji)
Agent czytnika dzienników (dla wszystkich publikacji transakcyjnych)
Agent czytnika kolejek (dla publikacji transakcyjnych obsługujących kolejkowane aktualizowanie subskrypcji)
Agent scalania (w przypadku scalania subskrypcji)
Odbiornik replikacji programu SQL Server (replisapi.dll: w przypadku scalania subskrypcji zsynchronizowanych przy użyciu synchronizacji sieci Web)
Sql Merge ActiveX Control (w przypadku scalania subskrypcji zsynchronizowanych z kontrolką)
Agent dystrybucji i formant ActiveX dystrybucji nie mają tego parametru, ponieważ nie łączą się z Publisherem.
Zmiany parametrów agenta zostaną zastosowane przy następnym uruchomieniu agenta. Jeśli agent działa w sposób ciągły, musisz zatrzymać i ponownie uruchomić agenta. Parametry można określić w profilach agentów i w wierszu polecenia. Aby uzyskać więcej informacji, zobacz:
Zalecamy dodanie -PublisherFailoverPartner do profilu agenta, a następnie określenie nazwy lustrzanej w profilu. Jeśli na przykład konfigurujesz replikację przy użyciu procedur składowanych:
-- Execute sp_help_agent_profile in the context of the distribution database to get the list of profiles. -- Select the profile id of the profile that needs to be updated from the result set. -- In the agent_type column returned by sp_help_agent_profile: -- 1 = Snapshot Agent; 2 = Log Reader Agent; 3 = Distribution Agent; 4 = Merge Agent; 9 = Queue Reader Agent. exec sp_help_agent_profile; -- Setting the -PublisherFailoverPartner parameter in the default Snapshot Agent profile (profile 1). -- Execute sp_add_agent_parameter in the context of the distribution database. exec sp_add_agent_parameter @profile_id = 1, @parameter_name = N'-PublisherFailoverPartner', @parameter_value = N'<Failover Partner Name>'; -- Setting the -PublisherFailoverPartner parameter in the default Merge Agent profile (profile 6). -- Execute sp_add_agent_parameter in the context of the distribution database. exec sp_add_agent_parameter @profile_id = 6, @parameter_name = N'-PublisherFailoverPartner', @parameter_value = N'<Failover Partner Name>';Dodaj serwer główny i serwer lustrzany w monitorze replikacji. Aby uzyskać więcej informacji, zobacz Dodawanie i usuwanie wydawców z monitora replikacji.
Utrzymanie zwierciadlanej bazy danych publikacji
Obsługa dublowanej bazy danych publikacji jest zasadniczo taka sama jak konserwacja niezdublowanej bazy danych, z następującymi zagadnieniami:
Administracja i monitorowanie muszą być wykonywane na aktywnym serwerze. W programie SQL Server Management Studio publikacje są wyświetlane w folderze Publikacje lokalne tylko dla aktywnego serwera. Na przykład, w przypadku przełączania awaryjnego na lustro, publikacje są wyświetlane na lustrze i nie są już wyświetlane na głównym serwerze. Jeśli baza danych przełączy się do trybu lustrzanego, może być konieczne ręczne odświeżenie programu Management Studio i monitora replikacji, aby zmiana została uwzględniona.
Monitor replikacji wyświetla węzły wydawcy w drzewie obiektów zarówno dla wydawcy głównego, jak i lustrzanego. Jeśli podstawowy serwer jest aktywny, informacje o publikacji są wyświetlane tylko w węźle podstawowym w Monitorze replikacji.
Jeśli serwer dublowania jest aktywnym serwerem:
Jeśli w agencie wystąpił błąd, jest on wskazywany tylko na węźle głównym, a nie na węźle lustrzanym.
Jeśli główny węzeł jest niedostępny, węzły główny i lustrzany wyświetlają identyczne listy publikacji. Monitorowanie należy wykonać na publikacjach w węźle lustrzanym.
W przypadku używania procedur składowanych lub obiektów zarządzania replikacją (RMO) do administrowania replikacją w lustrzanej bazie, gdy określisz nazwę wydawcy (Publisher), musisz określić nazwę wystąpienia, na którym baza danych została włączona do replikacji. Aby określić odpowiednią nazwę, użyj funkcji publishingservername.
Gdy baza danych publikacji jest dublowana, metadane replikacji przechowywane w dublowanej bazie danych są identyczne z metadanymi przechowywanymi w głównej bazie danych. W związku z tym w przypadku baz danych publikacji włączonych do replikacji na jednostce głównej nazwa wystąpienia programu Publisher przechowywana w tabelach systemowych na serwerze lustrzanym jest nazwą jednostki głównej, a nie lustrzanej. Ma to wpływ na konfigurację replikacji i konserwację, jeśli baza danych publikacji ulegnie awarii do dublowania. Na przykład, jeśli konfigurujesz replikację za pomocą procedur składowanych na serwerze lustrzanym po przejściu w tryb failover i chcesz dodać subskrypcję ściąganą do bazy danych publikacji, która została włączona w jednostce głównej, musisz określić nazwę jednostki głównej, a nie nazwę serwera lustrzanego, dla parametru @publisher w sp_addpullsubscription lub sp_addmergepullsubscription.
Jeśli włączysz bazę danych publikacji na lustrze po przejściu w tryb failover na lustro, nazwa wystąpienia wydawcy przechowywana w tabelach systemowych to nazwa lustra; w tym przypadku należy użyć nazwy lustra dla parametru @publisher.
Uwaga / Notatka
W niektórych przypadkach, takich jak sp_addpublication, parametr @publisher jest obsługiwany tylko w przypadku wydawców innych niż SQL Server; w takich przypadkach nie jest istotny, gdy chodzi o dublowanie baz danych w SQL Server.
Aby zsynchronizować subskrypcję w Management Studio po przełączeniu awaryjnym (failover): synchronizuj subskrypcje typu pull z poziomu subskrybenta oraz synchronizuj subskrypcje typu push z aktywnego wydawcy (Publisher).
Zachowanie replikacji w przypadku usunięcia mirroringu
Trzeba pamiętać o następujących kwestiach, jeśli mirroring bazy danych zostanie usunięty z opublikowanej bazy danych:
Jeśli baza danych publikacji w głównym węźle nie jest już dublowana, replikacja nadal działa bez zmian względem oryginalnego głównego węzła.
Jeśli baza danych publikacji ulegnie awarii i przełączy się z głównego serwera do lustrzanej kopii, a relacja lustrzania zostanie następnie wyłączona lub usunięta, agenci replikacji nie będą działać w odniesieniu do lustrzanej kopii. Jeśli główny obiekt zostanie trwale utracony, wyłącz i ponownie skonfiguruj replikację, z ustawieniem lustrzanego odbicia jako wydawcy.
Jeśli dublowanie bazy danych zostanie całkowicie usunięte, baza danych dublowania jest w stanie odzyskiwania i musi zostać przywrócona, aby stała się funkcjonalna. Zachowanie odzyskanej bazy danych w odniesieniu do replikacji zależy od tego, czy określono opcję KEEP_REPLICATION. Ta opcja wymusza operację przywracania w celu zachowania ustawień replikacji podczas przywracania opublikowanej bazy danych na serwerze innym niż na którym utworzono kopię zapasową. Użyj opcji KEEP_REPLICATION tylko wtedy, gdy inna baza danych publikacji jest niedostępna. Opcja nie jest obsługiwana, jeśli druga baza danych publikacji jest nadal nienaruszona i replikowana. Aby uzyskać więcej informacji na temat KEEP_REPLICATION, zobacz RESTORE (Transact-SQL).
Zachowanie agenta odczytu dzienników
W poniższej tabeli opisano zachowanie agenta czytnika dzienników dla różnych trybów operacyjnych dublowania bazy danych.
| Tryb operacyjny | Zachowanie agenta czytnika dzienników, jeśli mirroring jest niedostępny |
|---|---|
| Tryb wysokiego bezpieczeństwa z automatycznym przełączeniem awaryjnym | Jeśli lustro jest niedostępne, Agent odczytu dzienników propaguje polecenia do dystrybucyjnej bazy danych. Główna baza nie może przełączyć się awaryjnie na serwer lustrzany, dopóki serwer lustrzany nie wróci do trybu online i nie otrzyma wszystkich transakcji z bazy głównej. |
| Tryb wysokiej wydajności | Jeśli lustrzane odbicie jest niedostępne, główna baza danych jest narażona (czyli bez lustrzanego odbicia). Jednak agent czytnika dzienników replikuje tylko te transakcje, które są zatwierdzone na lustrze. Jeśli usługa jest wymuszana, a serwer lustrzany przyjmuje rolę głównego, agent czytelnika dzienników będzie działać w stosunku do lustrzanego i rozpocznie pobieranie nowych transakcji. Należy pamiętać, że opóźnienie replikacji zwiększy się, jeśli kopia lustrzana zostanie w tyle za głównym serwerem. |
| Wysokopoziomowy tryb bezpieczeństwa bez automatycznego failover. | Wszystkie zatwierdzone transakcje mają zagwarantowane zapisanie na dysku na kopii lustrzanej. Agent odczytu dziennika replikuje tylko te transakcje, które są zatwierdzone na lustrzanym serwerze. Jeśli lustro jest niedostępne, główny nie zezwala na dalsze działania w bazie danych; dlatego agent czytnika dziennika nie ma transakcji do replikacji. |
Zobacz też
Replikacja SQL Server
Wysyłanie dzienników i replikacja (SQL Server)