Das Konzept der Snapshot-Replikation ist einfach. Es generiert und verteilt die Momentaufnahme des Schemas und der Daten von Artikeln, die zu einem bestimmten Zeitpunkt erschienen sind, und aktualisiert die Änderungen an Abonnements. Wenn wir eine Snapshot-Replikation erstellen, erstellt SQL Server einen Snapshot-Agent-Job die einen Snapshot von Objekten der Veröffentlichungsdatenbank generiert. Snapshot wird entweder an einem Netzwerkspeicherort oder auf der Festplatte gespeichert. Sie können das Intervall zum Generieren des Snapshots mithilfe des SQL-Jobplans definieren.
Demo-Setup
Für diese Demo habe ich zwei SQL Server-Instanzen in einem Datenbankserver erstellt. Instanznamen und Details lauten wie folgt:
[Tabellen-ID=54 /]
Im Demo-Setup habe ich keinen Verteiler erstellt, daher fungiert die Herausgeberinstanz auch als Verteiler. Ich werde Tabellen und Daten replizieren, die der Person gehören Schema der AdventureWorks2014-Datenbank.
Publisher konfigurieren
Um den Publisher zu konfigurieren, öffnen Sie das SQL Server Management Studio, erweitern Sie die Datenbankinstanz, erweitern Sie die Replikation -Knoten, klicken Sie mit der rechten Maustaste auf Llokale Veröffentlichung und wählen Sie Neue Veröffentlichung aus . Siehe folgendes Bild:
Der Assistent für neue Veröffentlichungen wird gestartet. Auf dem Bildschirm wurde eine kurze Zusammenfassung des Assistenten gegeben. Sie können diesen Bildschirm überspringen, indem Sie Diese Startseite nicht mehr anzeigen aktivieren Kontrollkästchen. Klicken Sie auf Weiter um zum nächsten Bildschirm zu gelangen. Siehe folgendes Bild:
Wählen Sie auf dem nächsten Bildschirm die Datenbank aus, die als Herausgeber fungiert. In dieser Demo verwende ich AdventureWorks2014 Datenbank, wählen Sie daher AdventureWorks2014 aus Datenbank aus der Datenbankliste und klicken Sie auf Weiter . Siehe folgendes Bild:
Wählen Sie auf dem nächsten Bildschirm einen Veröffentlichungstyp aus. Die Typen werden im Listenfeld Veröffentlichungstypen aufgeführt, und für einzelne Veröffentlichungstypen werden ihre Beschreibungen auch unter Beschreibung des Veröffentlichungstyps erläutert Textfeld. Wählen Sie Snapshot-Replikation aus n und klicken Sie auf Weiter . Siehe folgendes Bild:
Bei der Replikation werden die Datenbankobjekte als Artikel bezeichnet. Zu den Artikeln Bildschirm wird die Liste der Datenbankobjekte innerhalb der Publikationsdatenbank angezeigt. Ich werde Daten aller Tabellen replizieren, die zum Person-Schema gehören, wählen Sie daher die Tabellen, die zum Person-Schema gehören, aus der Artikelliste aus und klicken Sie auf Weiter . Siehe folgendes Bild:
Um die Replikation zu initialisieren, müssen wir einen Snapshot generieren. Auf dem Snapshot-Agent konfigurieren Sie das Snapshot-Generierungsintervall. Sie können den Snapshot sofort generieren oder einen bestimmten Zeitpunkt für die Generierung des Datenbank-Snapshots festlegen. Standardmäßig wird der Snapshot stündlich generiert, aber wir können ihn ändern. Um einen Snapshot in einem bestimmten Intervall zu erstellen, klicken Sie auf Ändern . Der Neue Jobplan Dialogfeld öffnet sich. Konfigurieren Sie den gewünschten Zeitplan und klicken Sie auf OK . Siehe folgendes Bild:
In dieser Demo erstelle ich sofort einen Snapshot, kreuzen Sie daher Snapshot erstellen und Snapshot zum Initialisieren des Abonnements verfügbar halten an Option und klicken Sie auf Weiter.
Konfigurieren Sie auf dem nächsten Bildschirm 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 der Abonnent eine Verbindung zum Herausgeber herstellt. 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 Dienstkonto des SQL Server-Agenten ausgeführt. Wählen Sie daher Unter dem Dienstkonto des SQL Server-Agenten ausführen aus Möglichkeit. Abonnenten werden über die SQL-Anmeldung mit dem Herausgeber verbunden, wählen Sie daher die Option Using the following SQL Server login option und geben Sie den SQL-Login und das Kennwort ein. Stellen Sie in dieser Demo eine Verbindung mit sa her Anmeldung. Klicken Sie auf OK um das Dialogfeld zu schließen, und klicken Sie auf Weiter t. Siehe folgendes Bild:
Auf dem nächsten Bildschirm können Sie auswählen, ob Sie eine Veröffentlichung erstellen oder die Skripts zum Erstellen der Veröffentlichung generieren möchten. Wählen Sie Skriptdatei zum Erstellen der Veröffentlichung erstellen aus Option zum Generieren der Skripte der Replikationsschritte. Wir werden eine Publikation erstellen, wählen Sie daher Publikation erstellen Option und klicken Sie auf Weiter . Siehe folgendes Bild:
Geben Sie auf dem nächsten Bildschirm den Namen der Veröffentlichung ein, überprüfen Sie die Zusammenfassung der auszuführenden Aufgaben zum Erstellen einer Replikation und klicken Sie auf Fertig stellen , um die Veröffentlichung zu erstellen und den Assistenten für neue Veröffentlichungen zu schließen. Siehe folgendes Bild:
Wie ich am Anfang des Artikels erwähnt habe, erstellt SQL beim Erstellen einer Snapshot-Replikation einen Job, der einen Snapshot erstellt und die Snapshot-Dateien im Standardverzeichnis speichert.
Um sie anzuzeigen, erweitern Sie SQL Server Agent>> Erweitern Sie Jobs . Siehe folgendes Bild:
Sobald die Veröffentlichung konfiguriert ist, konfigurieren Sie Abonnenten.
Abonnent konfigurieren
Um den Abonnenten zu konfigurieren, stellen Sie zunächst eine Verbindung zu einer anderen SQL-Instanz her. Erweitern Sie nach dem Verbinden mit der Instanz die Replikation und klicken Sie mit der rechten Maustaste auf Lokales Abonnement . Siehe folgendes Bild:
Neuer Abonnement-Assistent öffnet. Auf dem Bildschirm wurde eine kurze Zusammenfassung des Assistenten gegeben. Sie können diesen Bildschirm überspringen, indem Sie Diese Startseite nicht mehr anzeigen aktivieren Kontrollkästchen. Klicken Sie auf Weiter um zum nächsten Bildschirm zu gelangen. Siehe folgendes Bild:
Wählen Sie auf dem nächsten Bildschirm den Veröffentlichungsserver aus. Klicken Sie auf Publisher Dropdown-Feld und wählen Sie SQL Server-Publisher suchen aus von der Liste. Ein Dialogfeld zum Verbinden des Herausgebers wird geöffnet. Geben Sie im Textfeld Servername den Hostnamen des Publisher-Servers ein und klicken Sie auf Verbinden. Siehe folgendes Bild:
Sobald die Verbindung mit dem Herausgeber hergestellt ist, wird die Snapshot_Replication Veröffentlichung und die AdventureWorks2014 Datenbank wird in den Datenbanken und Veröffentlichungen angezeigt Textfeld. Wählen Sie Snapshot_Replication aus und klicken Sie auf Weiter . Siehe folgendes Bild:
Wählen Sie auf dem nächsten Bildschirm den Standort des Vertriebsagenten aus. Für diese Demo verwende ich ein Pull-Abonnement , wählen Sie daher Jeden Agenten bei seinem Abonnenten ausführen aus Option und klicken Sie auf Weiter :
Wählen Sie auf dem nächsten Bildschirm eine Abonnementdatenbank aus. Ich habe eine Datenbank mit dem Namen Personen erstellt die als Abonnentendatenbank fungiert. In der Abonnementdatenbank Wählen Sie im Dropdown-Feld Personen aus Datenbank aus der Liste. Klicken Sie nach Auswahl einer Abonnementdatenbank auf Weiter . Siehe folgendes Bild:
Konfigurieren Sie auf dem nächsten Bildschirm die Sicherheit des Verteilungs-Agents. Um die Sicherheit zu konfigurieren, klicken Sie auf […] Taste. 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 Verteilungsagent wird unter dem SQL Server-Agentdienst ausgeführt, wählen Sie daher Unter dem SQL Server-Agentdienstkonto ausführen aus Option.
Hier habe ich den Verteilungsserver nicht konfiguriert, daher fungiert der Herausgeber als Verteiler. Der Abonnent stellt über die SQL-Anmeldung eine Verbindung zum Herausgeber/Verteiler her. Verwenden Sie zum Anschließen des Verteilers die sa Login und Passwort. Siehe folgendes Bild:
Klicken Sie auf OK um das Dialogfeld zu schließen. Und auf der Distribution Agent Security klicken Sie auf Weiter . Siehe folgendes Bild:
Konfigurieren Sie auf dem nächsten Bildschirm 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 . Siehe folgendes Bild:
Wählen Sie auf dem nächsten Bildschirm aus, ob Sie das Abonnement sofort mit dem Snapshot der Veröffentlichungsdaten und des Schemas oder nach der ersten Synchronisierung initialisieren möchten. Wir werden das Abonnement sofort initialisieren, wählen Sie daher Sofort aus dem Initialisieren, wenn Dropdown-Feld. Klicken Sie auf Weiter . Siehe folgendes Bild:
Auf dem nächsten Bildschirm 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, wählen Sie daher die Option Abonnement erstellen und klicken Sie auf Weiter t. Siehe folgendes Bild:
Auf dem nächsten Bildschirm wird eine Liste von Aufgaben angezeigt, die zum Erstellen eines Abonnements durchgeführt werden. Sie können sie überprüfen und auf Fertig stellen klicken . Siehe folgendes Bild:
Sobald das Abonnement erstellt wurde, können Sie das Abonnement unter Lokales Abonnement sehen Knoten. Siehe folgendes Bild:
Snapshot-Zeitplan ändern
Wie ich bereits erwähnt habe, können wir beim Erstellen einer Veröffentlichung ein Snapshot-Intervall vom Snapshot-Agent konfigurieren Bildschirm. Wir können das Snapshot-Intervall ändern, indem wir den Zeitplan eines SQL-Jobs für die Snapshot-Replikation ändern. Erweitern Sie dazu auf dem Publisher-Server SQL Server Agent>> Erweitern Sie Jobs Klicken Sie mit der rechten Maustaste auf den Snapshot-Replikationsjob (TTI412-VM\SQL2017-AdventureWorks2014-Snapshot_Replication-4) und wählen Sie Eigenschaften aus . Siehe folgendes Bild:
Das Dialogfeld Auftragseigenschaften wird geöffnet. Wählen Sie die Zeitpläne aus Seite, wählen Sie den Zeitplan aus und klicken Sie auf Bearbeiten . Siehe folgendes Bild:
Der Jobplan Dialogfeld öffnet sich. Konfigurieren Sie den entsprechenden Zeitplan und klicken Sie auf OK .
Die obige Konfiguration generiert jede Stunde einen Snapshot.
Speicherort der Snapshot-Dateien ändern
Wir können die Snapshot-Dateien auch in einem anderen Ordner ablegen. Für diese Demo werden die Snapshot-Dateien im Standardordner gespeichert, der E:\ReplicationSnapshot ist . Ich werde die Standort-Snapshot-Dateien ändern. Der neue Speicherort ist E:\Snapshot\PersonsSchema .
Wir können den Snapshot-Speicherort in den Veröffentlichungseigenschaften ändern. Klicken Sie zum Öffnen der Veröffentlichungseigenschaften mit der rechten Maustaste auf Lokale Veröffentlichung auf dem Publisher-Server und wählen Sie Eigenschaften. aus Siehe folgendes Bild:
Die Publikationseigenschaften Dialogfeld öffnet sich. Wählen Sie im Dialogfeld Schnappschuss aus . Auf dem Schnappschuss Deaktivieren Sie auf dem Bildschirm Dateien im Standardordner ablegen Option und wählen Sie Dateien in folgendem Ordner ablegen Möglichkeit. Geben Sie einen neuen Pfad in das Textfeld ein und klicken Sie auf OK . Siehe folgendes Bild:
Wenn wir diese Änderung vornehmen, wird der aktuelle Snapshot ungültig. Daher erhalten Sie nach dem Ändern dieser Einstellung eine Warnung, wie im folgenden Bild gezeigt:
Klicken Sie auf Ja. Es erstellt einen neuen Snapshot und speichert Snapshot-Dateien unter E:\Snapshots\PersonsSchema\unc . Siehe folgendes Bild:
Anzeigen des Replikationsstatus
Sie können den Replikationsmonitor verwenden um den Replikationsstatus anzuzeigen. Erweitern Sie zum Öffnen des Replikationsmonitors die Replikation n-Knoten>> Erweitern Sie Lokale Veröffentlichungen>> Klicken Sie mit der rechten Maustaste auf Snapshot_Replication und wählen Sie Replikationsmonitor starten aus . Siehe folgendes Bild.
Mit dem Replikationsmonitor können Sie Folgendes anzeigen:
- Status der Replikation
- Liste der Abonnements
- Datum und Uhrzeit der letzten Synchronisierung.
Mit dem Replikationsmonitor können Sie den Status von Agenten und Jobs im Zusammenhang mit dem Job anzeigen. Wählen Sie zum Anzeigen Agent aus auf dem Replikationsmonitor Dialogbox. Siehe folgendes Bild:
Unter dem Agenten Registerkarte können Sie die folgenden Details anzeigen:
- Status des Veröffentlichungsauftrags.
- Name des Veröffentlichungsauftrags.
- Datum und Uhrzeit des letzten Starts des Veröffentlichungsauftrags.
- Dauer bis zum Abschluss des Veröffentlichungsauftrags.
- Die letzte Aktion wurde vom Veröffentlichungsjob ausgeführt.
Zusammenfassung
In diesem Artikel hatte ich erklärt:
- Hohe Ebene ist eine Zusammenfassung der Snapshot-Replikation.
- So konfigurieren Sie Herausgeber und Abonnenten.
- Replikationsmonitor und seine Verwendung.
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.