Udostępnij za pomocą


Konfigurowanie replikacji przy użyciu zawsze włączonych grup dostępności

Dotyczy:Program SQL Server w systemie Windows

Konfigurowanie replikacji programu SQL Server i zawsze włączonych grup dostępności obejmuje siedem kroków. Każdy krok został opisany bardziej szczegółowo w poniższych sekcjach.

1. Konfigurowanie publikacji i subskrypcji bazy danych

Konfigurowanie dystrybutora

Nie można umieścić bazy danych dystrybucji w grupie dostępności z programem SQL Server 2012 i programem SQL Server 2014. Umieszczenie bazy danych dystrybucji w grupie dostępności jest obsługiwane w programie SQL 2016 i nowszych, z wyjątkiem baz danych dystrybucji używanych w topologii scalania, dwukierunkowej lub równorzędnej replikacji. Aby uzyskać więcej informacji, zobacz Konfigurowanie dystrybucji replikacji bazy danych w grupie dostępności Always On.

  1. Skonfiguruj dystrybucję w dystrybutorze. Jeśli procedury składowane są używane do konfiguracji, uruchom sp_adddistributor Użyj parametru @password, aby ustalić hasło, które będzie używane, gdy zdalny wydawca łączy się z dystrybutorem. Hasło będzie również potrzebne w każdym zdalnym wydawcy podczas konfigurowania zdalnego dystrybutora.

    USE master;
    GO
    
    EXECUTE sys.sp_adddistributor
        @distributor = 'MyDistributor',
        @password = '**Strong password for distributor**';
    
  2. Utwórz bazę danych dystrybucji w dystrybutorze. Jeśli procedury składowane są używane do konfiguracji, uruchom sp_adddistributiondb

    USE master;
    GO
    
    EXECUTE sys.sp_adddistributiondb
        @database = 'distribution',
        @security_mode = 1;
    
  3. Skonfiguruj wydawcę zdalnego. Jeśli procedury składowane są używane do konfigurowania dystrybutora, uruchom sp_adddistpublisher Parametr @security_mode służy do określenia, w jaki sposób procedura składowana weryfikacji wydawcy, uruchamiana przez agentów replikacji, łączy się z bieżącym serwerem głównym. Jeśli ustawiono wartość 1, użyte zostanie uwierzytelnianie systemu Windows do nawiązania połączenia z bieżącym podstawowym. W przypadku ustawienia wartości 0 uwierzytelnianie programu SQL Server jest używane z określonymi wartościami @login i @password . Podany login i hasło muszą być prawidłowe w każdej replice pomocniczej, aby procedura składowana walidacji pomyślnie nawiązała połączenie do tej repliki.

    Uwaga / Notatka

    Jeśli jakikolwiek zmodyfikowany agent replikacji jest uruchamiany na komputerze innym niż dystrybutor, użycie uwierzytelniania systemu Windows dla połączenia z serwerem podstawowym będzie wymagać skonfigurowania uwierzytelniania Kerberos na potrzeby komunikacji między komputerami hosta repliki. Użycie logowania SQL Server do połączenia z obecnym głównym nie będzie wymagało uwierzytelniania Kerberos.

    USE master;
    GO
    
    EXECUTE sys.sp_adddistpublisher
        @publisher = 'AGPrimaryReplicaHost',
        @distribution_db = 'distribution',
        @working_directory = '\\MyReplShare\WorkingDir',
        @login = 'MyPubLogin',
        @password = '**Strong password for publisher**';
    

Aby uzyskać więcej informacji, zobacz sp_adddistpublisher.

Skonfiguruj wydawcę u pierwotnego wydawcy

  1. Konfigurowanie dystrybucji zdalnej. Jeśli procedury składowane są używane do konfigurowania wydawcy, uruchom sp_adddistributor Określ tę samą wartość dla @password jaką użyto, gdy sp_adddistrbutor był uruchamiany u dystrybutora, ażeby skonfigurować dystrybucję.

    EXECUTE sys.sp_adddistributor
        @distributor = 'MyDistributor',
        @password = 'MyDistPass';
    
  2. Włącz bazę danych na potrzeby replikacji. Jeśli procedury składowane są używane do konfigurowania publikatora, uruchom polecenie sp_replicationdboption Jeśli dla bazy danych należy skonfigurować zarówno replikację transakcyjną, jak i scalaną, obie muszą być włączone.

    USE master;
    GO
    
    EXECUTE sys.sp_replicationdboption
        @dbname = 'MyDBName',
        @optname = 'publish',
        @value = 'true';
    
    EXECUTE sys.sp_replicationdboption
        @dbname = 'MyDBName',
        @optname = 'merge publish',
        @value = 'true';
    
  3. Utwórz publikację replikacji, artykuły i subskrypcje. Aby uzyskać więcej informacji na temat konfigurowania replikacji, zobacz Publikowanie danych i obiektów bazy danych.

2. Konfigurowanie grupy dostępności

W docelowym serwerze głównym utwórz grupę dostępności z opublikowaną (lub do opublikowania) bazą danych jako bazą członkowską. Jeśli korzystasz z Kreatora grupy dostępności, możesz zezwolić kreatorowi na początkową synchronizację pomocniczych baz danych repliki lub ręcznie przeprowadzić inicjowanie przy użyciu kopii zapasowej i przywracania.

Utwórz odbiornik DNS dla grupy dostępności, której agenci replikacji będą używać do nawiązania połączenia z aktualnym serwerem głównym. Określona nazwa nasłuchującego będzie używana jako cel przekierowania dla oryginalnej pary wydawcy i opublikowanej bazy danych. Jeśli na przykład używasz języka DDL do skonfigurowania grupy dostępności, można użyć następującego przykładu kodu do określenia odbiornika grupy dostępności dla istniejącej grupy dostępności o nazwie MyAG:

ALTER AVAILABILITY GROUP 'MyAG'
    ADD LISTENER 'MyAGListenerName' (WITH IP (('10.120.19.155', '255.255.254.0')));

Aby uzyskać więcej informacji, zobacz Tworzenie i konfigurowanie grup dostępności (SQL Server).

3. Upewnij się, że wszystkie hosty repliki pomocniczej są skonfigurowane do replikacji

Na każdym hoście repliki pomocniczej sprawdź, czy program SQL Server został skonfigurowany do obsługi replikacji. Następujące zapytanie można uruchomić na każdym hoście repliki pomocniczej, aby określić, czy jest zainstalowana replikacja:

USE master;
GO

DECLARE @installed AS INT;

EXECUTE @installed = sys.sp_MS_replication_installed;

SELECT @installed;

Jeśli @installed ma wartość 0, należy dodać replikację do instalacji programu SQL Server.

4. Skonfiguruj hosty replik pomocniczych jako wydawców replikacji

Replika pomocnicza nie może działać jako wydawca ani powtórny wydawca replikacji, ale replikacja musi być skonfigurowana tak, aby replika pomocnicza mogła przejąć funkcję po awarii systemu. W dystrybutorze skonfiguruj dystrybucję dla każdego hosta repliki wtórnej. Określ tę samą bazę danych dystrybucji i katalog roboczy, jak określono podczas dodawania oryginalnego wydawcy do dystrybutora. Jeśli używasz procedur składowanych do konfigurowania dystrybucji, użyj polecenia sp_adddistpublisher , aby skojarzyć wydawców zdalnych z dystrybutorem. Jeśli @login i @password były używane dla oryginalnego wydawcy, określ te same wartości dla każdego podczas dodawania hostów repliki pomocniczej jako wydawców.

EXECUTE sys.sp_adddistpublisher
    @publisher = 'AGSecondaryReplicaHost',
    @distribution_db = 'distribution',
    @working_directory = '\\MyReplShare\WorkingDir',
    @login = 'MyPubLogin',
    @password = '**Strong password for publisher**';

Na każdym hoście repliki pomocniczej skonfiguruj dystrybucję. Zidentyfikuj dystrybutora oryginalnego wydawcy jako zdalnego dystrybutora. Użyj tego samego hasła, które było używane, kiedy sp_adddistributor był uruchamiany pierwotnie przez dystrybutora. Jeśli procedury składowane są używane do konfigurowania dystrybucji, parametr @passwordsp_adddistributor jest używany do określania hasła.

EXECUTE sp_adddistributor
    @distributor = 'MyDistributor',
    @password = '**Strong password for distributor**';

Na każdym hoście repliki wtórnej upewnij się, że subskrybenci push publikacji bazy danych są wyświetlani jako serwery połączone. Jeśli procedury składowane są używane do konfigurowania wydawców zdalnych, użyj polecenia sp_addlinkedserver, aby dodać subskrybentów (jeśli jeszcze nie istnieją) jako serwery połączone z wydawcami.

EXECUTE sys.sp_addlinkedserver @server = 'MySubscriber';

5. Przekieruj oryginalnego wydawcę do nazwy listenera AG

W dystrybutorze, w bazie danych dystrybucji, uruchom procedurę składowaną sp_redirect_publisher, aby skojarzyć oryginalnego wydawcę i opublikowaną bazę danych z nazwą listenera grupy dostępności.

USE distribution;
GO

EXECUTE sys.sp_redirect_publisher
    @original_publisher = 'MyPublisher',
    @publisher_db = 'MyPublishedDB',
    @redirected_publisher = 'MyAGListenerName';

6. Uruchom procedurę weryfikacji replikacji, aby zweryfikować konfigurację

W dystrybutorze w bazie danych dystrybucji uruchom procedurę sp_validate_replica_hosts_as_publishers składowaną, aby sprawdzić, czy wszystkie hosty repliki są teraz skonfigurowane jako wydawcy opublikowanej bazy danych.

USE distribution;
GO

DECLARE @redirected_publisher AS sysname;

EXECUTE sys.sp_validate_replica_hosts_as_publishers
    @original_publisher = 'MyPublisher',
    @publisher_db = 'MyPublishedDB',
    @redirected_publisher = @redirected_publisher OUTPUT;

Procedura sp_validate_replica_hosts_as_publishers składowana powinna zostać uruchomiona z identyfikatora logowania z wystarczającą autoryzacją na każdym hoście repliki grupy dostępności, aby wykonać zapytanie o informacje o grupie dostępności. W przeciwieństwie do sp_validate_redirected_publisher, używa poświadczeń obiektu wywołującego i nie korzysta z identyfikatora logowania przechowywanego w msdb.dbo.MSdistpublishers, aby łączyć się z replikami grupy dostępności.

Błąd podczas sprawdzania poprawności hostów replik pomocniczych

sp_validate_replica_hosts_as_publishers Zawodzi z następującym błędem podczas weryfikacji sekundarnych hostów replik, które nie zezwalają na dostęp do odczytu lub wymagają określenia intencji odczytu.

Msg 21899, poziom 11, stan 1, procedura sp_hadr_verify_subscribers_at_publisher, wiersz 109

Kwerenda u przekierowanego wydawcy "MyReplicaHostName" w celu ustalenia, czy istnieją wpisy sysserver dla subskrybentów oryginalnego wydawcy "MyOriginalPublisher", nie powiodła się z powodu błędu "976". Komunikat o błędzie: "Błąd 976, poziom 14, stan 1, komunikat: docelowa baza danych, "MyPublishedDB", jest częścią grupy dostępności i obecnie nie jest dostępna dla zapytań." Przenoszenie danych jest zawieszone lub replika dostępności nie jest włączona na potrzeby dostępu do odczytu. Aby zezwolić na dostęp tylko do odczytu do tych i innych baz danych w grupie dostępności, włącz dostęp do odczytu do co najmniej jednej pomocniczej repliki dostępności w grupie. Aby uzyskać więcej informacji, zobacz instrukcję ALTER AVAILABILITY GROUP w książkach programu SQL Server Online.

Napotkano co najmniej jeden błąd weryfikacji wydawcy dla hosta repliki "MyReplicaHostName".

Jest to oczekiwane zachowanie. Należy sprawdzić obecność wpisów serwera subskrybenta na tych hostach wtórnej repliki, poprzez bezpośrednie wysyłanie zapytań o wpisy serwera sysserver na hoście.

7. Dodaj wydawcę źródłowego do Monitora Replikacji

W każdej replice grupy dostępności należy dodać oryginalnego wydawcę do monitora replikacji.

Replication

Tworzenie i konfigurowanie grupy dostępności