Tutorial: Konfigurieren der Replikation zwischen zwei Servern mit kontinuierlicher Verbindung (transaktional)

Gilt für:SQL Server

Die Transaktionsreplikation stellt eine bewährte Lösung für das Problem des Verschiebens von Daten zwischen Servern mit kontinuierlicher Verbindung dar. Mithilfe des Replikations-Assistenten können Sie eine Replikationstopologie auf einfache Weise konfigurieren und verwalten.

In diesem Tutorial wird die Konfiguration einer Topologie für Transaktionsreplikationen für Server mit kontinuierlicher Verbindung erläutert. Weitere Informationen zur Funktionsweise der Transaktionsreplikation finden Sie unter Übersicht über die Transaktionsreplikation.

Lernziele

In diesem Tutorial erfahren Sie, wie Sie Daten aus einer Datenbank mithilfe der Transaktionsreplikation in einer anderen Datenbank veröffentlichen.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen eines Verlegers über die Transaktionsreplikation
  • Erstellen eines Abonnenten für den Verleger der Transaktion
  • Überprüfen des Abonnements und Messen der Wartezeit

Voraussetzungen

Dieses Tutorial richtet sich an Benutzer, die zwar mit grundlegenden Datenbankvorgängen vertraut sind, aber nur über begrenzte Kenntnisse in Bezug auf die Replikation verfügen. Bevor Sie mit diesem Tutorial beginnen, müssen Sie die Schritte unter Tutorial: Prepare SQL Server for replication (Tutorial: Vorbereiten von SQL Server auf die Replikation) ausführen.

Für dieses Tutorial benötigen Sie SQL Server, SQL Server Management Studio (SSMS) und eine AdventureWorks-Datenbank:

  • Installieren Sie auf dem Verlegerserver (Quelle) Folgendes:

    • Jede Edition von SQL Server, mit Ausnahme von SQL Server Express oder SQL Server Compact. Diese Editionen können nicht als Verleger für Replikationen verwendet werden.
    • Die AdventureWorks2022 -Beispieldatenbank Aus Sicherheitsgründen werden die Beispieldatenbanken standardmäßig nicht installiert.
  • Installieren Sie auf dem Abonnentserver (Ziel) eine beliebige Edition von SQL Server, mit Ausnahme von SQL Server Compact. SQL Server Compact kann kein Abonnent in der Transaktionsreplikation sein.

  • Installieren Sie SQL Server Management Studio.

  • Installieren Sie die SQL Server 2017 Developer Edition.

  • Laden Sie die AdventureWorks-Beispieldatenbank herunter. Weitere Informationen zum Wiederherstellen einer Datenbank in SSMS finden Sie unter Wiederherstellen einer Datenbank.

Hinweis

  • Die Replikation wird für SQL Server-Instanzen, zwischen denen mehr als zwei Versionen liegen, nicht unterstützt. Weitere Informationen finden Sie unter In der Replikationstopologie unterstützte SQL Server-Versionen.
  • In SQL Server Management Studio müssen Sie eine Verbindung mit dem Herausgeber und Abonnenten herstellen, indem Sie eine Anmeldung verwenden, die Mitglied der festen Serverrolle "sysadmin " ist. Weitere Informationen zu dieser Rolle finden Sie unter Rollen auf Serverebene.

Geschätzte Dauer dieses Tutorials: 60 Minuten

Konfigurieren des Verlegers für die Transaktionsreplikation

In diesem Abschnitt erstellen Sie eine Transaktionsveröffentlichung mithilfe von SQL Server Management Studio, um eine gefilterte Teilmenge der Produkttabelle in der AdventureWorks2022 Beispieldatenbank zu veröffentlichen. Außerdem fügen Sie der Veröffentlichungszugriffsliste (PAL) die vom Verteilungs-Agent verwendete SQL Server-Anmeldung hinzu.

Erstellen einer Veröffentlichung und Definieren von Artikeln

  1. Verbinden zum Herausgeber in SQL Server Management Studio, und erweitern Sie dann den Serverknoten.

  2. Klicken Sie mit der rechten Maustaste auf SQL Server-Agent, und klicken Sie anschließend auf Starten. Der SQL Server-Agent muss ausgeführt werden, bevor Sie die Veröffentlichung erstellen. Wenn der Agent nicht gestartet wird, müssen Sie ihn manuell über den SQL Server-Konfigurations-Manager starten.

  3. Erweitern Sie den Ordner Replikation, und klicken Sie mit der rechten Maustaste auf den Ordner Lokale Veröffentlichungen. Klicken Sie anschließend auf Neue Veröffentlichung. Dadurch wird der Assistent für neue Veröffentlichungen gestartet:

    Selections for starting the New Publication Wizard

  4. Wählen Sie auf der Seite Veröffentlichungsdatenbank die Datenbank AdventureWorks2022 aus, und klicken Sie anschließend auf Weiter.

  5. Wählen Sie auf der Seite Veröffentlichungstyp den Eintrag Transaktionsveröffentlichung aus, und klicken Sie anschließend auf Weiter:

  6. Erweitern Sie auf der Seite Artikel den Knoten Tabellen, und aktivieren Sie das Kontrollkästchen neben Product. Erweitern Sie anschließend den Knoten Product, und deaktivieren Sie die Kontrollkästchen neben ListPrice und StandardCost. Wählen Sie Weiter aus.

  7. Klicken Sie auf der Seite Tabellenzeilen filtern auf Hinzufügen.

  8. Wählen Sie im Dialogfeld Filter hinzufügen die Spalte SafetyStockLevel aus. Klicken Sie anschließend auf den Pfeil nach rechts, um die Spalte zur WHERE-Klausel der Filteranweisung in der Filterabfrage hinzuzufügen. Geben Sie anschließend den WHERE-Klauselmodifizierer wie folgt ein:

    WHERE [SafetyStockLevel] < 500  
    

  9. Wählen Sie OK und anschließend Weiter aus.

  10. Aktivieren Sie das Kontrollkästchen Momentaufnahme sofort erstellen und zum Initialisieren von Abonnements verfügbar halten, und wählen Sie Weiter aus:

  11. Deaktivieren Sie auf der Seite Agentsicherheit das Kontrollkästchen neben Use the security settings from the Snapshot Agent (Sicherheitseinstellungen des Momentaufnahme-Agents verwenden).

    Legen Sie für den Momentaufnahmen-Agent die Sicherheitseinstellungen fest, indem Sie auf die entsprechende Schaltfläche klicken. Geben Sie im Feld "Prozesskonto" Publisher_Machine_Name>\repl_Momentaufnahme ein, geben Sie< das Kennwort für dieses Konto ein, und wählen Sie dann "OK" aus.

  12. Wiederholen Sie den vorherigen Schritt, um Publisher_Machine_Name>\repl_logreader als Prozesskonto für den Log Reader-Agent festzulegen.< Wählen Sie dann OK aus.

  13. Geben Sie auf der Seite Assistenten abschließen im Feld Veröffentlichungsname den Namen AdvWorksProductTrans ein, und klicken Sie auf Fertig stellen:

  14. Klicken Sie nach Erstellung der Veröffentlichung auf Schließen, um den Assistenten zu beenden.

Wenn Ihr SQL Server-Agent bei dem Versuch, die Veröffentlichung zu erstellen, nicht ausgeführt wird, wird möglicherweise die unten abgebildete Fehlermeldung angezeigt. Sie weist darauf hin, dass Ihre Veröffentlichung erfolgreich erstellt wurde, Ihr Momentaufnahmen-Agent jedoch nicht gestartet werden konnte. In diesem Fall müssen Sie den SQL Server-Agent starten und den Momentaufnahmen-Agent anschließend manuell starten. Die Anweisungen für diesen Vorgang finden Sie im folgenden Abschnitt.

Warning that the Snapshot Agent has failed to start

Anzeigen des Status der Momentaufnahmeerstellung

  1. Verbinden zum Herausgeber in SQL Server Management Studio, erweitern Sie den Serverknoten, und erweitern Sie dann die Replikationsordner.

  2. Klicken Sie im Ordner Lokale Veröffentlichungen mit der rechten Maustaste auf AdvWorksProductTrans, und wählen Sie anschließend Status des Momentaufnahmen-Agents anzeigen aus:
    Command on the shortcut menu for viewing the Snapshot Agent status

  3. Der aktuelle Status des Auftrags des Momentaufnahmen-Agents für die Veröffentlichung wird angezeigt. Überprüfen Sie, ob der Auftrag für die Momentaufnahme erfolgreich war, bevor Sie mit dem nächsten Abschnitt fortfahren.

Anhand des Status des Momentaufnahmen-Agents für Ihre Veröffentlichung können Sie nachvollziehen, ob Ihr SQL Server-Agent beim Erstellen der Veröffentlichung ausgeführt wurde. Wurde er niemals ausgeführt, wählen Sie zum Starten Ihres Momentaufnahmen-Agents die Option Starten aus:

Wenn Ihnen hier ein Fehler angezeigt wird, finden Sie unter Troubleshooting Snapshot Agent errors (Problembehandlung für den Momentaufnahmen-Agent) weitere Informationen.

Hinzufügen der Verteilungs-Agent-Anmeldung zur PAL

  1. Verbinden zum Herausgeber in SQL Server Management Studio, erweitern Sie den Serverknoten, und erweitern Sie dann die Replikationsordner.

  2. Klicken Sie im Ordner Lokale Veröffentlichungen mit der rechten Maustaste auf AdvWorksProductTrans, und wählen Sie anschließend Eigenschaften aus. Das Dialogfeld Veröffentlichungseigenschaften wird angezeigt.

    a. Wählen Sie die Seite Veröffentlichungszugriffsliste und anschließend Hinzufügen aus.
    b. Wählen Sie< im Dialogfeld "Publikationszugriff hinzufügen" Publisher_Machine_Name>\repl_distribution und dann "OK" aus.

    Selections for adding a login to the publication access list

Weitere Informationen finden Sie unter Konzepte für die Replikationsprogrammierung.

Erstellen eines Abonnements für die Transaktionsveröffentlichung

In diesem Abschnitt fügen Sie der zuvor erstellten Veröffentlichung einen Abonnenten hinzu. In diesem Tutorial wird ein Remote-Abonnent (NODE2\SQL2016) verwendet. Sie können ein Abonnement jedoch auch lokal zum Verleger hinzufügen.

Erstellen des Abonnements

  1. Verbinden zum Herausgeber in SQL Server Management Studio, erweitern Sie den Serverknoten, und erweitern Sie dann die Replikationsordner.

  2. Klicken Sie im Ordner Lokale Veröffentlichungen mit der rechten Maustaste auf die Veröffentlichung AdvWorksProductTrans, und wählen Sie anschließend Neue Abonnements aus. Der Assistent für neue Abonnements wird gestartet:

    Selections to start the New Subscription Wizard

  3. Wählen Sie auf der Seite Veröffentlichung die Veröffentlichung AdvWorksProductTrans aus, und klicken Sie anschließend auf Weiter:

  4. Aktivieren Sie auf der Seite Speicherort des Verteilungs-Agents das Optionsfeld neben Alle Agents auf dem Verteiler ausführen, und klicken Sie anschließend auf Weiter. Weitere Informationen zu Push- und Pullabonnements finden Sie unter Abonnieren von Veröffentlichungen.

  5. Klicken Sie auf der Seite Abonnenten auf die Schaltfläche Abonnent hinzufügen und anschließend in der Dropdownliste auf SQL Server-Abonnent hinzufügen, wenn der Name der Abonnenteninstanz nicht angezeigt wird. Dadurch wird das Dialogfeld Verbindung mit Server herstellen geöffnet. Geben Sie den Namen der Abonnenteninstanz ein, und klicken Sie anschließend auf Verbinden.

    Aktivieren Sie das Kontrollkästchen neben dem Namen Ihrer Abonnenteninstanz, nachdem der Abonnent hinzugefügt wurde. Wählen Sie anschließend unter Abonnementdatenbank die Option Neue Datenbank aus.

  6. Das Dialogfeld Neue Datenbank wird angezeigt. Geben Sie ProductReplica in das Feld Datenbankname ein, und wählen Sie OK und anschließend Weiter aus:

    Entering a name for the subscription database

  7. Klicken Sie auf der Seite Distribution Agent Security (Verteilungs-Agent-Sicherheit) auf die Schaltfläche mit den Auslassungspunkten (). Geben Sie <im Feld "Prozesskonto" Publisher_Machine_Name>\repl_distribution ein, geben Sie das Kennwort für dieses Konto ein, wählen Sie "OK" und dann "Weiter" aus.

    Distribution account information in the

  8. Wählen Sie Fertig stellen aus, um auf den verbleibenden Seiten die Standardwerte zu übernehmen und den Assistenten abzuschließen.

Festlegen der Datenbankberechtigungen auf dem Abonnenten

  1. Verbinden an den Abonnenten in SQL Server Management Studio. Erweitern Sie den Knoten Sicherheit, klicken Sie mit der rechten Maustaste auf Anmeldungen, und klicken Sie anschließend auf Neue Anmeldung.

    a. Wählen Sie auf der Seite "Allgemein" unter "Anmeldename" die Option "Suchen" aus, und fügen Sie die Anmeldung für< Subscriber_Machine_Name>\repl_distribution hinzu.

    b. Weisen Sie auf der Seite Benutzerzuordnungen die db_owner-Anmeldungsmitgliedschaft der Datenbank ProductReplica zu.

    Selections for configuring the login on the subscriber

  2. Wählen Sie OK aus, um das Dialogfeld Neue Anmeldung zu schließen.

Anzeigen des Synchronisierungsstatus des Abonnements

  1. Verbinden zum Herausgeber in SQL Server Management Studio. Erweitern Sie zuerst den Serverknoten und anschließend den Ordner Replikation.

  2. Erweitern Sie im Ordner Lokale Veröffentlichungen die Veröffentlichung AdvWorksProductTrans, klicken Sie mit der rechten Maustaste auf das Abonnement in der Datenbank ProductReplica, und wählen Sie anschließend Synchronisierungsstatus anzeigen aus. Der aktuelle Synchronisierungsstatus des Abonnements wird angezeigt:

    Selections for opening the

  3. Wenn das Abonnement unter AdvWorksProductTrans nicht angezeigt wird, drücken Sie F5, um die Liste zu aktualisieren.

Weitere Informationen finden Sie unter:

Messen der Wartezeit

In diesem Abschnitt verwenden Sie Überwachungstoken, um zu überprüfen, ob die Änderungen auf dem Abonnenten repliziert werden, und um die Wartezeit zu ermitteln. Die Wartezeit ist die Zeit, die dafür benötigt wird, dem Abonnenten eine am Verleger vorgenommene Änderung anzuzeigen.

  1. Verbinden zum Herausgeber in SQL Server Management Studio. Erweitern Sie den Serverknoten, klicken Sie mit der rechten Maustaste auf den Ordner Replikation, und klicken Sie anschließend auf Replikationsmonitor starten:

  2. Erweitern Sie im linken Bereich zuerst eine Verlegergruppe und dann die Verlegerinstanz. Klicken Sie anschließend auf die Veröffentlichung AdvWorksProductTrans.

    a. Wählen Sie die Registerkarte Überwachungstoken aus.
    b. Wählen Sie Überwachung einfügen aus.
    c. In den folgenden Spalten sehen Sie die für das Überwachungstoken benötigte Zeit: Verleger zu Verteiler, Verteiler zu Abonnent, Gesamtlatenzzeit. Der Wert Ausstehend gibt an, dass das Token einen bestimmten Punkt noch nicht erreicht hat.

    Information for the tracer token

Weitere Informationen finden Sie unter:

Nächste Schritte

Sie haben Ihren Verleger und Ihren Abonnenten erfolgreich für die Transaktionsreplikation konfiguriert. Nun können Sie in der Product-Tabelle auf dem Verleger Daten einfügen, aktualisieren oder löschen. Anschließend können Sie die Product-Tabelle auf dem Abonnenten abfragen, um die replizierten Änderungen anzuzeigen.

Im nächsten Artikel lernen Sie, wie eine Mergereplikation konfiguriert wird: