Konfigurieren der Replikation für AlwaysOn-Verfügbarkeitsgruppen (SQL Server)

Das Konfigurieren von Replikation und AlwaysOn-Verfügbarkeitsgruppen umfasst sieben Schritte. Jeder dieser Schritte wird in den folgenden Abschnitten detailliert beschrieben.

  1. Konfigurieren Sie die Datenbankveröffentlichungen und die Abonnements.

  2. Konfigurieren Sie die AlwaysOn-Verfügbarkeitsgruppe.

  3. Stellen Sie sicher, dass alle sekundären Replikathosts zur Replikation konfiguriert werden.

  4. Konfigurieren Sie die sekundären Replikathosts als Replikationsverleger.

  5. Leiten Sie den ursprünglichen Verleger zum Namen des Verfügbarkeitsgruppenlisteners um.

  6. Führen Sie die gespeicherte Prozedur zum Überprüfen aus, um die Konfiguration zu überprüfen.

  7. So fügen Sie dem Replikationsmonitor den ursprünglichen Verleger hinzu.

Schritt 1 und 2 können in beliebiger Reihenfolge ausgeführt werden.

1.Konfigurieren der Datenbankveröffentlichungen und Abonnements

Konfigurieren des Verteilers

Der Verteiler sollte kein Host für eine der aktuellen (oder vorgesehenen) Replikate der Verfügbarkeitsgruppe sein, zu der die Veröffentlichungsdatenbank gehört (oder gehören wird).

  1. Konfigurieren Sie Verteilung beim Verteiler. Wenn gespeicherte Prozeduren zur Konfiguration verwendet werden, führen Sie sp_adddistributor aus. Verwenden Sie den @password-Parameter, um das Kennwort zu identifizieren, das verwendet wird, wenn ein Remoteverleger eine Verbindung mit dem Verteiler herstellt. Das Kennwort wird auch bei jedem Remoteverleger benötigt, wenn der Remoteverteiler eingerichtet wird.

    USE master;
    GO
    EXEC sys.sp_adddistributor
        @distributor = 'MyDistributor',
        @password = '**Strong password for distributor**';
    
  2. Erstellen Sie die Verteilungsdatenbank beim Verteiler. Wenn gespeicherte Prozeduren zur Konfiguration verwendet werden, führen Sie sp_adddistributiondb aus.

    USE master;
    GO
    EXEC sys.sp_adddistributiondb
        @database = 'distribution',
        @security_mode = 1;
    
  3. Konfigurieren Sie den Remoteverleger. Wenn gespeicherte Prozeduren zur Konfiguration des Verteilers verwendet werden, führen Sie sp_adddistpublisher aus. Mit dem @security\_mode-Parameter wird festgelegt, wie die gespeicherte Prozedur zur Verlegerüberprüfung, die von den Replikations-Agents ausgeführt wird, eine Verbindung mit dem aktuellen primären Replikat herstellt. Wenn der Parameter auf 1 festgelegt ist, wird die Windows-Authentifizierung verwendet, um eine Verbindung mit dem aktuellen primären Replikat herzustellen. Wenn er auf 0 festgelegt ist, wird die SQL Server-Authentifizierung mit den angegebenen Werten für @login und @password verwendet. Die Anmeldedaten und das Kennwort, die angegeben wurden, müssen bei jedem sekundären Replikat gültig sein, damit die gespeicherte Prozedur zur Überprüfung erfolgreich eine Verbindung mit diesem Replikat herstellen kann.

    HinweisHinweis

    Wenn geänderte Replikations-Agents auf einem anderen Computer als dem Verteiler ausgeführt werden, dann ist bei Verwendung der Windows-Authentifizierung zum Herstellen einer Verbindung zum primären Replikat erforderlich, dass die Kerberos-Authentifizierung für die Kommunikation zwischen den Replikathostcomputern konfiguriert wird. Bei Verwendung einer SQL Server-Anmeldung zum Herstellen einer Verbindung mit dem aktuellen primären Replikat ist keine Kerberos-Authentifizierung erforderlich.

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

Weitere Informationen finden Sie unter sp_adddistpublisher (Transact-SQL).

Konfigurieren des Verlegers beim ursprünglichen Verleger

  1. Konfigurieren Sie die Remoteverteilung. Wenn gespeicherte Prozeduren zur Konfiguration des Verlegers verwendet werden, führen Sie sp_adddistributor aus. Geben Sie den Wert für @password an, der verwendet wurde, als sp_adddistrbutor beim Verteiler ausgeführt wurde, um die Verteilung einzurichten.

    exec sys.sp_adddistributor
        @distributor = 'MyDistributor',
        @password = 'MyDistPass'
    
  2. Aktivieren Sie die Datenbank für die Replikation. Wenn gespeicherte Prozeduren zur Konfiguration des Verlegers verwendet werden, führen Sie sp_replicationdboption aus. Wenn sowohl Transaktions- als auch Mergereplikation für die Datenbank konfiguriert werden sollen, müssen beide aktiviert werden.

    USE master;
    GO
    EXEC sys.sp_replicationdboption
        @dbname = 'MyDBName',
        @optname = 'publish',
        @value = 'true';
    
    EXEC sys.sp_replicationdboption
        @dbname = 'MyDBName',
        @optname = 'merge publish',
        @value = 'true';
    
  3. Erstellen Sie die Replikationsveröffentlichung, Artikel und Abonnements. Weitere Informationen zum Konfigurieren der Replikation finden Sie unter "Veröffentlichen von Daten und Datenbankobjekten".

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

2.Konfigurieren der AlwaysOn-Verfügbarkeitsgruppe

Erstellen Sie beim vorgesehenen primären Replikat die Veröffentlichungsgruppe, und ordnen Sie ihr die veröffentlichte (oder zu veröffentlichende) Datenbank als Elementdatenbank zu. Wenn Sie den Verfügbarkeitsgruppen-Assistenten verwenden, können Sie es entweder dem Assistenten erlauben, die sekundären Replikatdatenbanken zum ersten Mal zu synchronisieren, oder Sie können die Initialisierung mit Sicherung und Wiederherstellung manuell ausführen.

Erstellen Sie einen DNS-Listener für die Verfügbarkeitsgruppe, die von den Replikations-Agents verwendet wird, um eine Verbindung mit dem aktuellen Primären herzustellen. Der angegebene Listenername wird als Umleitungsziel für das aus ursprünglichem Verleger und veröffentlichter Datenbank bestehende Paar verwendet. Wenn Sie die Verfügbarkeitsgruppe beispielsweise mithilfe von DDL konfigurieren, kann das folgende Codebeispiel zur Angabe eines Verfügbarkeitsgruppenlisteners für eine vorhandene Verfügbarkeitsgruppe mit dem Namen MyAG verwendet werden:

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

Weitere Informationen finden Sie unter Erstellung und Konfiguration von Verfügbarkeitsgruppen (SQL Server).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

3.Stellen Sie sicher, dass alle sekundären Replikathosts für die Replikation konfiguriert werden.

Überprüfen Sie bei jedem sekundären Replikathost, ob SQL Server so konfiguriert wurde, dass die Replikation unterstützt wird. Die folgende Abfrage kann auf jedem sekundären Replikathost ausgeführt werden, um zu bestimmen, ob die Replikation installiert wurde:

USE master;
GO
DECLARE @installed int;
EXEC @installed = sys.sp_MS_replication_installed;
SELECT @installed;

Wenn @installed gleich 0 ist, muss die Replikation der SQL Server-Installation hinzugefügt werden.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

4.Konfigurieren des sekundären Replikathosts als Replikationsverleger

Ein sekundäres Replikat kann nicht als Replikationsverleger oder Neuverleger fungieren, aber die Replikation kann so konfiguriert werden, dass das sekundäre Replikat nach einem Failover die Rolle übernehmen kann. Konfigurieren Sie beim Verteiler die Verteilung für jeden sekundären Replikathost. Geben Sie die Verteilungsdatenbank und das Arbeitsverzeichnis an, die angegeben wurden, als der ursprüngliche Verleger dem Verteiler hinzugefügt wurde. Wenn Sie gespeicherte Prozeduren zum Konfigurieren der Verteilung verwenden, führen Sie sp_adddistpublisher aus, um die Remoteverleger dem Verteiler zuzuordnen. Wenn @login und @password für den ursprünglichen Verleger verwendet wurden, geben Sie die gleichen Werte für die einzelnen sekundären Replikathosts an, die Sie als Verleger hinzufügen.

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

Konfigurieren Sie die Verteilung auf jedem sekundären Replikathost. Identifizieren Sie den Verteiler des ursprünglichen Verlegers als Remoteverteiler. Verwenden Sie das Kennwort, das verwendet wurde, als sp_adddistributor ursprünglich auf dem Verteiler ausgeführt wurde. Wenn gespeicherte Prozeduren zum Konfigurieren der Verteilung verwendet werden, wird der @password-Parameter von sp_adddistributor verwendet, um das Kennwort anzugeben.

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

Stellen Sie bei jedem sekundären Replikathost sicher, dass die Pushabonnenten der Datenbankveröffentlichungen als Verbindungsserver angezeigt werden. Wenn gespeicherte Prozeduren zum Konfigurieren der Remoteverleger verwendet werden, führen Sie sp_addlinkedserver aus, um den Verlegern die Abonnenten (sofern nicht bereits vorhanden) als Verbindungsserver hinzuzufügen.

EXEC sys.sp_addlinkedserver 
    @server = 'MySubscriber';

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

5.Umleiten des ursprünglichen Verlegers zum Namen des Verfügbarkeitsgruppenlisteners

Führen Sie auf dem Verteiler in der Verteilungsdatenbank die gespeicherte Prozedur sp_redirect_publisher aus, um den ursprünglichen Verleger und die veröffentlichte Datenbank dem Namen des Verfügbarkeitsgruppenlisteners der Verfügbarkeitsgruppe zuzuordnen.

USE distribution;
GO
EXEC sys.sp_redirect_publisher 
@original_publisher = 'MyPublisher',
    @publisher_db = 'MyPublishedDB',
    @redirected_publisher = 'MyAGListenerName';

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

6.Ausführen der gespeicherten Prozedur zur Replikationsüberprüfung, um die Konfiguration zu überprüfen

Führen Sie auf dem Verteiler in der Verteilungsdatenbank die gespeicherte Prozedur sp_validate_replica_hosts_as_publishers aus, um zu überprüfen, ob alle Replikathosts bereits so konfiguriert worden sind, um als Verleger für die veröffentlichte Datenbank zu fungieren.

USE distribution;
GO
DECLARE @redirected_publisher sysname;
EXEC sys.sp_validate_replica_hosts_as_publishers
    @original_publisher = 'MyPublisher',
    @publisher_db = 'MyPublishedDB',
    @redirected_publisher = @redirected_publisher output;

Die gespeicherte Prozedur sp_validate_replica_hosts_as_publishers sollte von einer Anmeldung mit ausreichender Autorisierung bei jedem Verfügbarkeitsgruppenreplikathost ausgeführt werden, um Informationen zur Verfügbarkeitsgruppe abzufragen. Im Gegensatz zu sp_validate_redirected_publisher verwendet diese gespeicherte Prozedur die Anmeldeinformationen vom Aufrufer und nicht die Anmeldung, die in msdb.dbo.MSdistpublishers gespeichert wird, um eine Verbindung mit den Verfügbarkeitsgruppenreplikaten herzustellen.

HinweisHinweis

Beim Überprüfen von sekundären Replikathosts, die keinen Lesezugriff zulassen oder die Angabe der Leseabsicht erfordern, schlägt sp_validate_replica_hosts_as_publishers mit dem folgenden Fehler fehl.

Meldung 21899, Ebene 11, Status 1, Prozedur sp_hadr_verify_subscribers_at_publisher, Zeile 109

Die Abfrage beim umgeleiteten Verleger 'MyReplicaHostName', mit der bestimmt werden sollte, ob sysserver-Einträge für die Abonnenten des ursprünglichen Verlegers 'MyOriginalPublisher' vorlagen, schlug mit Fehler '976', Fehlermeldung 'Fehler 976, Ebene 14, Status 1, Meldung fehl: Die Zieldatenbank, 'MyPublishedDB', nimmt an einer Verfügbarkeitsgruppe teil, und ist derzeit nicht für Abfragen verfügbar. Entweder wird die Datenübertragung angehalten, oder für das Verfügbarkeitsreplikat wird kein Lesezugriff aktiviert. Um schreibgeschützten Zugriff auf diese und andere Datenbanken in der Verfügbarkeitsgruppe zuzulassen, aktivieren Sie den Lesezugriff auf mindestens ein sekundäres Verfügbarkeitsreplikat in der Gruppe. Weitere Informationen finden Sie im Thema zur ALTER AVAILABILITY GROUP-Anweisung in der SQL Server-Onlinedokumentation.

Es sind ein oder mehrere Verlegerüberprüfungsfehler für Replikathost 'MyReplicaHostName' aufgetreten.

Dieses Verhalten wird erwartet. Sie müssen das Vorhandensein der Abonnentenservereinträge bei diesen sekundären Replikathosts überprüfen, indem Sie die sysserver-Einträge im Host direkt abfragen.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

7.Hinzufügen des ursprünglichen Verlegers zum Replikationsmonitor

Fügen Sie dem Replikationsmonitor bei jedem Verfügbarkeitsgruppenreplikat den ursprünglichen Verleger hinzu.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Verwandte Aufgaben

Replikation

So erstellen und konfigurieren Sie eine Verfügbarkeitsgruppe

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Siehe auch

Konzepte

Voraussetzungen, Einschränkungen und Empfehlungen für AlwaysOn-Verfügbarkeitsgruppen (SQL Server)

Übersicht über AlwaysOn-Verfügbarkeitsgruppen (SQL Server)

AlwaysOn-Verfügbarkeitsgruppen: Interoperabilität (SQL Server)

SQL Server-Replikation