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:
- Eine Edition von SQL Server (mit Ausnahme von SQL Server Express und 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 Abonnentenserver (Ziel) eine Edition von SQL Server (mit Ausnahme von SQL Server Compact). SQL Server Compact kann nicht als Abonnent einer Transaktionsreplikation verwendet werden.
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.
Sie müssen in SQL Server Management Studio eine Verbindung mit dem Herausgeber und dem Abonnenten herstellen. Dazu verwenden Sie den Anmeldenamen eines Mitglieds der festen Serverrolle sysadmin. 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 mithilfe von SQL Server Management Studio eine Transaktionsveröffentlichung, um eine gefilterte Teilmenge der Tabelle Product in der Beispieldatenbank AdventureWorks2022
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
Stellen Sie mit dem Herausgeber in SQL Server Management Studio eine Verbindung her, und erweitern Sie dann den Serverknoten.
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.
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:
Wählen Sie auf der Seite Veröffentlichungsdatenbank die Datenbank
AdventureWorks2022
aus, und klicken Sie anschließend auf Weiter.Wählen Sie auf der Seite Veröffentlichungstyp den Eintrag Transaktionsveröffentlichung aus, und klicken Sie anschließend auf Weiter:
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.
Klicken Sie auf der Seite Tabellenzeilen filtern auf Hinzufügen.
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
Wählen Sie OK und anschließend Weiter aus.
Aktivieren Sie das Kontrollkästchen Momentaufnahme sofort erstellen und zum Initialisieren von Abonnements verfügbar halten, und wählen Sie Weiter aus:
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 zuerst <Publisher_Machine_Name>\repl_snapshot in das Feld Prozesskonto und anschließend das Kennwort für dieses Konto ein. Wählen Sie anschließend OK aus.
Wiederholen Sie den vorherigen Schritt, um <Publisher_Machine_Name>\repl_logreader als Prozesskonto für den Protokolllese-Agent festzulegen. Wählen Sie dann OK aus.
Geben Sie auf der Seite Assistenten abschließen im Feld Veröffentlichungsname den Namen AdvWorksProductTrans ein, und klicken Sie auf Fertig stellen:
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.
Anzeigen des Status der Momentaufnahmeerstellung
Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Herausgeber her, und erweitern Sie dann den Serverknoten und den Ordner Replikation.
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:
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
Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Herausgeber her, und erweitern Sie dann den Serverknoten und den Ordner Replikation.
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 Veröffentlichungszugriff hinzufügen zuerst <Publisher_Machine_Name>\repl_distribution und anschließend OK aus.
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
Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Herausgeber her, und erweitern Sie dann den Serverknoten und den Ordner Replikation.
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:
Wählen Sie auf der Seite Veröffentlichung die Veröffentlichung AdvWorksProductTrans aus, und klicken Sie anschließend auf Weiter:
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.
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.
Das Dialogfeld Neue Datenbank wird angezeigt. Geben Sie ProductReplica in das Feld Datenbankname ein, und wählen Sie OK und anschließend Weiter aus:
Klicken Sie auf der Seite Distribution Agent Security (Verteilungs-Agent-Sicherheit) auf die Schaltfläche mit den Auslassungspunkten (…). Geben Sie <Publisher_Machine_Name>\repl_distribution in das Feld Prozesskonto und anschließend das Kennwort für dieses Konto ein. Wählen Sie erst OK und anschließend Weiter aus.
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
Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Abonnenten her. 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.
Wählen Sie OK aus, um das Dialogfeld Neue Anmeldung zu schließen.
Anzeigen des Synchronisierungsstatus des Abonnements
Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Verleger her. Erweitern Sie zuerst den Serverknoten und anschließend den Ordner Replikation.
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:
Wenn das Abonnement unter AdvWorksProductTrans nicht angezeigt wird, drücken Sie F5, um die Liste zu aktualisieren.
Weitere Informationen finden Sie unter:
- Initialisieren eines Abonnements mit einer Momentaufnahme
- Erstellen eines Pushabonnements
- Abonnieren von Veröffentlichungen
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.
Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Verleger her. Erweitern Sie den Serverknoten, klicken Sie mit der rechten Maustaste auf den Ordner Replikation, und klicken Sie anschließend auf Replikationsmonitor starten:
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.
Weitere Informationen finden Sie unter:
- Messen der Wartezeit und Überprüfen der Verbindungen bei Transaktionsreplikationen
- Suchen nach Fehlern bei Transaktionsreplikation-Agents