Database
 sql >> Datenbank >  >> RDS >> Database

So erstellen Sie eine Transaktionsreplikation

In diesem Artikel werde ich demonstrieren, wie eine Transaktionsreplikation erstellt wird.

Die Transaktionsreplikation generierte einen Snapshot der Veröffentlichungs-DB-Objekte und der darin enthaltenen Daten. Nachdem der Snapshot generiert wurde, werden alle Datenänderungen und Schemaänderungen, die in der Herausgeberdatenbank aufgetreten sind, an die Abonnentendatenbanken übermittelt. Bei der Transaktionsreplikation erfolgen Daten- und Schemaänderungen fast in Echtzeit, daher kann die Transaktionsreplikation zum Auslagern von Berichten und manchmal als DR-Site verwendet werden.

Wenn wir eine Transaktionsreplikation erstellen, erstellt SQL Server die folgenden SQL-Jobs

  1. Snapshot-Agent-Job: Der Snapshot-Agent-Job generiert einen Snapshot von Objekten der Veröffentlichungsdatenbank. Der Schnappschuss wird entweder im Netzwerkspeicherort oder auf der Festplatte gespeichert
  2. Protokolllesejob: Log Reader Job überwacht kontinuierlich Veröffentlichungen. Es erkennt Schemaänderungen und Insert-, Update- und Delete-Abfragen und markiert sie für die Replikation. Der Protokollleser verwendet „Sp_Replcmds ” um die für die Replikation markierten Befehle anzuwenden.

Demo-Setup:

Für diese Demo habe ich zwei SQL Server-Instanzen auf demselben Datenbankserver erstellt. Die Instanznamen und -details lauten wie folgt:

Beim Einrichten der Demo habe ich keinen Verteiler erstellt, sodass die Publisher-Instanz auch als Verteiler fungiert. Ich habe den „Kunde“ erstellt ”-Tabelle in der AdventureWorks2014-Datenbank. Ich werde die Daten der Kundentabelle replizieren. Daher wird es vom Herausgeber als Artikel bezeichnet.

Publisher konfigurieren

Um den Herausgeber zu konfigurieren, öffnen Sie SQL Server Management Studio, erweitern Sie die Datenbankinstanz, erweitern Sie Replikation -Knoten und klicken Sie mit der rechten Maustaste auf Lokale Veröffentlichung und wählen Sie Neue Veröffentlichung aus .

Der Assistent für neue Veröffentlichungen wird gestartet. Im Dialogfeld wird eine kurze Zusammenfassung des Assistenten bereitgestellt. Sie können das weitere Erscheinen dieses Dialogfelds überspringen, indem Sie Diese Startseite nicht mehr anzeigen aktivieren Kontrollkästchen. Klicken Sie auf Weiter um zum nächsten Dialogfeld zu wechseln.

Wählen Sie im nächsten Dialogfeld die Datenbank aus, die als Herausgeber fungiert. In dieser Demo verwende ich AdventureWorks2014 Datenbank, wählen Sie also AdventureWorks2014 aus aus der Datenbankliste und klicken Sie auf Weiter .

Wählen Sie im nächsten Dialogfeld den Veröffentlichungstyp aus der Liste der Veröffentlichungstypen aus, und ihre Beschreibungen werden auch in den Beschreibungen des Veröffentlichungstyps bereitgestellt Textfeld. Wählen Sie Transaktionsveröffentlichung aus und klicken Sie auf Weiter .

Wählen Sie im nächsten Dialogfeld den Veröffentlichungstyp aus der Liste der Veröffentlichungstypen aus, und ihre Beschreibungen werden auch in den Beschreibungen des Veröffentlichungstyps bereitgestellt Textfeld. Wählen Sie Transaktionsveröffentlichung aus und klicken Sie auf Weiter .

Wenn Sie die Daten der Tabelle filtern möchten, können Sie die Bedingung im Dialogfeld Tabellenzeilen filtern angeben. Um den Filter hinzuzufügen, klicken Sie auf Hinzufügen Taste. Ein weiteres Dialogfeld Filter hinzufügen öffnet. In diesem Dialogfeld können Sie die gewünschte Filteranweisung in der Filteranweisung angeben Textfeld.

Für diese Demo filtern wir keine Daten des Kunden überspringen Sie dieses Dialogfeld und klicken Sie auf Weiter .

Um die Transaktionsreplikation zu initialisieren, müssen wir den Snapshot generieren. Konfigurieren Sie im Dialogfeld „Snapshot-Agent“ das Snapshot-Erzeugungsintervall. Sie können den Snapshot sofort generieren oder einen bestimmten Zeitpunkt zum Generieren des Datenbank-Snapshots planen. Standardmäßig wird der Snapshot stündlich generiert, aber wir können ihn ändern. Um den Snapshot in einem bestimmten Intervall zu erstellen, klicken Sie auf Ändern. Das Dialogfeld „Neuer Jobplan“ wird geöffnet. Konfigurieren Sie den gewünschten Zeitplan und klicken Sie auf OK .

In dieser Demo erstelle ich den Snapshot sofort, also aktivieren Sie die Option Snapshot erstellen und Snapshot zum Initialisieren des Abonnements verfügbar halten Option und klicken Sie auf Weiter .

Konfigurieren Sie im nächsten Dialogfeld die SQL Agent-Sicherheit. Um die Agent-Sicherheit zu konfigurieren, klicken Sie auf die Sicherheitseinstellungen Taste. Die Snapshot-Agent-Sicherheit “-Dialogfeld öffnet sich. Geben Sie im Dialogfeld das Konto an, unter dem sich der Abonnent mit dem Herausgeber verbindet. Geben Sie außerdem die Kontoinformationen an, unter denen der SQL Server-Agent-Job ausgeführt wird. Für diese Demo werden SQL Server-Jobs unter dem SQL Server-Agent-Dienstkonto ausgeführt, wählen Sie also Unter dem SQL Server-Agent-Dienstkonto ausführen aus Möglichkeit. Abonnenten werden über die SQL-Anmeldung mit dem Herausgeber verbunden. Wählen Sie daher Using the following SQL Server login aus Option und geben Sie die SQL-Anmeldung und das Kennwort an. Stellen Sie in dieser Demo eine Verbindung mit dem „sa " Anmeldung. Klicken Sie auf OK um das Dialogfeld zu schließen, und klicken Sie auf Weiter .

Im nächsten Dialogfeld können Sie wählen, ob Sie eine Veröffentlichung erstellen oder Skripts generieren möchten, um die Veröffentlichung zu erstellen. Wählen Sie Skriptdatei generieren, um die Veröffentlichung zu erstellen Option zum Generieren der Skripte der Replikationsschritte. Wir werden die Veröffentlichung erstellen, also wählen Sie Veröffentlichung erstellen Option und klicken Sie auf Weiter .

Geben Sie im nächsten Dialogfeld den Namen der Veröffentlichung an, überprüfen Sie die Zusammenfassung der Aufgaben, die zum Erstellen der Replikation durchgeführt werden müssen, und klicken Sie auf Fertig stellen um die Publikation zu erstellen und Neue Publikation zu schließen Assistent .

Wie ich am Anfang des Artikels erwähnt habe, werden bei der Erstellung einer Transaktionsreplikation der Logreader-Agent-Job, der Snapshot-Agent-Job und der Bereinigungsjob für abgelaufene Abonnements erstellt.

Um sie anzuzeigen, erweitern Sie SQL Server Agent , und erweitern Sie dann Jobs .

Sobald die Veröffentlichung konfiguriert ist, konfigurieren Sie die Abonnenten.

Konfigurieren Sie den Abonnenten

Um den Abonnenten zu konfigurieren, stellen Sie zunächst eine Verbindung zu einer anderen SQL-Instanz her. Nachdem Sie sich mit der Instanz verbunden haben, erweitern Sie Replikation und klicken Sie mit der rechten Maustaste auf Lokales Abonnement .

Der Assistent für neue Abonnements öffnet. Im Dialogfeld wird eine kurze Zusammenfassung des Assistenten bereitgestellt. Sie können das weitere Erscheinen dieses Bildschirms überspringen, indem Sie Diese Startseite nicht mehr anzeigen aktivieren Kontrollkästchen. Klicken Sie auf Weiter um zum nächsten Dialogfeld zu wechseln.

Wählen Sie im nächsten Dialogfeld den Veröffentlichungsserver aus. Klicken Sie auf Publisher Dropdown-Feld und klicken Sie auf SQL Server-Herausgeber suchen . Ein Dialogfeld zum Herstellen einer Verbindung mit dem Herausgeber wird geöffnet. Im Servernamen Geben Sie im Textfeld den Hostnamen des Publisher-Servers an und klicken Sie auf Verbinden .

Sobald die Verbindung mit dem Publisher hergestellt ist, Customer_Publication und AdventureWorks2014 werden in den Datenbanken und Veröffentlichungen angezeigt Textfeld. Wählen Sie Kundenpublikation aus und klicken Sie auf Weiter .

Wählen Sie im nächsten Dialogfeld den Standort des Verteilungsagenten aus. Für diese Demo verwende ich ein Pull-Abonnement , wählen Sie also Jeden Agenten bei seinem Abonnenten ausführen aus Option und klicken Sie auf Weiter :

Wählen Sie im nächsten Dialogfeld eine Abonnementdatenbank aus. Ich habe eine Datenbank namens Customer_DB erstellt , die als Abonnentendatenbank fungiert. In der Abonnementdatenbank Wählen Sie im Dropdown-Feld Customer_DB aus Datenbank aus der Liste. Klicken Sie nach Auswahl der Abonnementdatenbank auf Weiter .

Konfigurieren Sie im nächsten Dialogfeld die Sicherheit des Verteilungs-Agents. Um die Sicherheit zu konfigurieren, klicken Sie auf die Schaltfläche […]. Die Distribution Agent-Sicherheit Dialogfeld öffnet sich. Geben Sie im ersten Abschnitt das Domänenkonto an, unter dem der Verteilungs-Agent-Prozess ausgeführt wird. Der Verteilungs-Agent wird unter dem SQL Server-Agent-Dienst ausgeführt, wählen Sie also Unter dem SQL Server-Agent-Dienstkonto ausführen aus Option.

Hier habe ich den Distributionsserver nicht konfiguriert, der Publisher fungiert also als Distributor. Der Abonnent stellt über eine SQL-Anmeldung eine Verbindung zum Verleger/Verteiler her. Verwenden Sie zum Verbinden des Verteilers das „sa“ Login und Passwort.

Klicken Sie auf OK um das Dialogfeld zu schließen. Klicken Sie im Dialogfeld Sicherheit des Verteilungs-Agents auf Weiter .

Konfigurieren Sie im nächsten Dialogfeld den Zeitplan für die Abonnementsynchronisierung. Sie können die kontinuierliche Ausführung auswählen oder die geplante Ausführung konfigurieren. Wählen Sie Kontinuierlich ausführen aus im Zeitplan für Agenten Dropdown-Feld. Klicken Sie auf Weiter .

Wählen Sie im nächsten Dialogfeld aus, ob das Abonnement sofort mit dem Snapshot der Veröffentlichungsdaten und des Schemas oder nach der ersten Synchronisierung initialisiert werden soll. Wir werden das Abonnement sofort initialisieren, also wählen Sie Sofort aus dem Initialisieren, wenn Dropdown-Feld. Klicken Sie auf Weiter .

Im nächsten Dialogfeld können Sie wählen, ob Sie ein Abonnement sofort erstellen oder die Skripts zum Erstellen eines Abonnements generieren möchten. Wählen Sie Skriptdatei generieren, um das Abonnement zu erstellen Option zum Generieren der Skripte der Replikationsschritte. Wir werden eine Veröffentlichung erstellen, also wählen Sie Abonnement erstellen Option und klicken Sie auf Weiter .

Im nächsten Dialogfeld wird eine Liste der Aufgaben angezeigt, die zum Erstellen des Abonnements durchgeführt wurden. Sie können sie überprüfen und auf Fertig stellen klicken .

Sobald das Abonnement erstellt wurde, können Sie das Abonnement unter Lokales Abonnement sehen Knoten.

Replikationsstatus anzeigen

Sie können den Replikationsmonitor verwenden, um den Replikationsstatus anzuzeigen. Um den Replikationsmonitor zu öffnen, erweitern Sie Replikation , und erweitern Sie dann Lokale Veröffentlichungen. Klicken Sie mit der rechten Maustaste auf Kundenpublikation und wählen Sie Replikationsmonitor starten. aus

Zusammenfassung:

In diesem Artikel habe ich erklärt:

  1. Eine allgemeine Zusammenfassung der Transaktionsreplikation.
  2. Demo-Setup.
  3. So konfigurieren Sie die Replikationsveröffentlichung.
  4. So konfigurieren Sie Replikationsabonnenten.

Nützliche Tools:

dbForge Data Compare for SQL Server – leistungsstarkes SQL-Vergleichstool, das mit großen Datenmengen arbeiten kann.

dbForge Schema Compare für SQL Server – zuverlässiges Tool, das Ihnen Zeit und Mühe beim Vergleichen und Synchronisieren von Datenbanken auf SQL Server spart.