Schlagwort-Archiv Tutorial

Merge Replication – Tutorial

Für mein aktuelles Projekt musste ich mich in die Merge-Replication Funktionalität des SQL Servers einarbeiten. Da das Thema für mich auch neu ist, und sicherlich da draußen der ein oder andere genau an dem selben Punkt wie ich gerade ist, will ich meine gesammelten Erkenntnisse hier in diesem Blogbeitrag festhalten. Im weltweiten Netz gibt es nicht allzu viele gute Tutorials, wie man eine Replikation auf die Beine stellen kann. Deutsche Tutorials schon gar nicht. Daher hier der Versuch alles verständlich auf Deutsch zu beschreiben.

Zunächst mal zu den Eckdaten:
Mein Projekt sieht vor, eine Merge-Replication zwischen einem Standort in China und hier in Deutschland für eine Applikation aufzubauen.
Im ersten Schritt werde ich aber zunächst einmal nur auf der „grünen Wiese“ die Replication ausprobieren und versuchen die ersten Schlüsse zu ziehen und Machbarkeitsanalysen zu erstellen.

Bevor wir beginnen werde ich im Folgenden, die neuen Begriffe, denen man beim Einrichten der Replication immer wieder begegnet, erklären.

Begriff Erklärung
Distributor Verwalter und Überwacher der Mergereplication
Publisher Der Publisher stellt die Daten in Form eines Abonnements bereit
Subscriber Der Subscriber konsumiert die bereitgetellten Abonnements von einem Publisher
Abonnement Ist die Sammlung von Inhalten (Article), die zur Verfügung gestellt werden.
Article Ist ein Objekt einer Datenbank was zur Replizierung ausgewählt wurde

Vorbereitungen

Bevor mit der eigentlichen Einrichtung der Merge-Replication begonnen werden kann, müssen diverse Vorbereitungen im Vorfeld erledigt werden.

  1. Berechtigungen und Rollen anlegen
  2. Snapshot-Share anlegen
  3. Definition der Server – Entweder Publisher und Distributor auf dem selben Server einrichten, oder auf unterschiedlichen.
  4. Einrichten und Konfigurieren des Distributors

Berechtigungen und Rollen anlegen:

In unserem Fall gehen wir davon aus, dass Distributor und Subscriber auf dem gleichen Server laufen. Das „Best-Practice“ Vorgehen sieht 4 neue lokale User für den Publisher und 2 lokale für den Subscriber vor, die für das Einrichten einer funktionierden Replication benötigt werden.

Agent Server Lokaler Benutzer
Snapshot Agent Publisher <machine_name>\repl_snapshot
Log Reader Agent Publisher <machine_name>\repl_logreader
Distribution Agent Publisher und Subscriber <machine_name>\repl_distribution
Merge Agent Publisher und Subscriber <machine_name>\repl_merge

Nun kommen wir zu dem Anlegen der lokalen Benutzer.

Einrichten der Benutzer auf dem Publisher.

Server Manager öffnen
AnlegenLokalerBenutzer

Navigieren zu Tools->Computer Management
AnlegenLokalerBenutzer2

System-Tools->Local Users and Groups
AnlegenLokalerBenutzer3

Hier muss nun aufgepasst werden. Durchaus ist es möglich, dass für das Verwenden von Passwörter von der IT Abteilung eine Gruppenrichtlinie greift.

Diesen Vorgang müssen wir dann noch für die anderen 3 User für den Publisher wiederholen.

Für den Subscriber müssen ebenfalls 2 lokale Benutzer nach o.g. Schema angelegt werden.

Snaphot-Freigabe einrichten

Microsoft empfiehlt hier, den Installationsordner des Data Verzeichnisses zu nutzen, um einen neuen Unterordner „repldata“ zu erzeugen. Nach meiner Meinung ist das aber nicht notwendig. Der Ordner kann an einem beliebigen Ort auf dem Server angelegt werden. Die zuvor angelegt Benutzer „repl_snapshot“,“repl_merge“ und „repl_distribution“ müssen nun für diesen neuen Ordner berechtigt werden. Zuvor muss der Ordner freigegeben werden:

Eigenschaften des Ordners öffnen und den Reiter „Freigabe“ aktivieren.
ShareEinrichten1

-> danach 2 mal bestätigen.

Dann Reiter „Sicherheit“ aktivieren und die zuvor angelegten User berechtigen.
ShareEinrichten2

repl_snapshot User muss Vollzugriff auf diesen Ordner bekommen.

  • repl_snapshot -> Vollzugriff
  • repl_distribution -> Lesen
  • repl_distribution -> Lesen

Nun sind die Vorbereitung erledigt und wir können uns an das Einrichten im Management-Studio machen.

Einrichten und Konfigurieren des Distributors

In unserem Fall sind Publisher und Distributor auf dem selben Server. Wir fangen nun damit an, den Distributor zu konfigurieren.

Rechtsklick auf Replication und dann „Distributor Properties“ auswählen.
DistributionEinrichten

Im nächsten Fenster den ersten Punkt ausgewählt lassen.
DistributionEinrichten2

An dieser Stelle muß man die Freigabe eintragen, die wir weiter oben im Punkt „Snapshot-Freigabe“ eingerichtet hatten.
DistributionEinrichten3

Bestätigen mit „Next“ und dann „Finish“ klicken. (Alle weiteren Fenster belassen wir auf den Standardwerten)

Der Distributor ist nun fertig eingrichtet.

Jetzt geht es an die Konfiguration des Publishers.

Einrichten und Konfigurieren des Publishers

Auf dem SQL Server auf dem der Publisher eingerichtet werden soll navigiert man nun zu „Replication“->Rechtsklick „New Publication“

In dem sich nun öffnenden Wizard müssen wir zunächst einmal die Datenbank auswählen, welche Voll oder Teilweise repliziert werden soll. In unserem Fall ist es die AdventureWorks2014 Datenbank.

PublisherEinrichten

Auf der nächsten Seite des Wizard wählen wir „Merge Publication“

PublisherEinrichten2

  • Next, Next

PublisherEinrichten3

In diesem Tutorial nehmen wir 3 Tabellen, die wir replizieren wollen.

  • Next

An dieser Stelle kann man nun auch noch Filterkriterien auf die Daten setzen, die in die Replizierung mit einbezogen werden sollen. Für diese Demo wollen wir keine Filterung vornehmen und gehen mit „Next“ weiter zur nächsten Seite.

Hier wählen wir nur „Create a snapshot immediately“.

Auf der „Agent Security“ Seite müssen folgende Einstellungen vorgenommen werden.

PublisherEinrichten4

–> Als Process Account wählen wir hier den neu Erstellen User „repl_snapshot“.

  • OK, Next, Next

Abschließend müssen wir einen Namen für die Publication wählen. Wir nennen die Publication „AdvWorksSalesOrdersMerge„.

Jetzt ist die Einrichtung des Publishers fast abgeschlossen. Es fehlt nur noch das initiale Erstellen des Snapshots.

  • Rechtsklick auf die gerade erstellte Publication
  • Klick auf „View Snapshot Agent Status“
  • „Start“ klicken

Der Snapshot wird nun erstellt.

 

Einrichten eines Subscribers

Als letztes müssen wir noch einen Subscriber einrichten.

Öffnen des Management-Studios

-Replication –> Local Subscriptions –> Rechts Klick –> New Subscription

-Publisher – Server auswählen
SubscriberEinrichten

Auf der nächsten Seite wird gefragt, ob die Agents auf dem Subscriber selbst, oder auf dem Distributor laufen sollen.
Wir wählen hier die 2.Option „Run each agent at ist Subscriber (pull subscriptions)

Anschließend „Next“ für weiter.

Auf der folgenden Seite müssen wir festlegen, in welches Ziel repliziert werden soll.

1.Möglichkeit: Neue Datenbank

2.Möglichkeit: Bestehende Datenbank

In unserem Beispiel wählen wir eine neue Datenbank aus und nennen sie „AdventureWorksMergeReplicationTest
SubscriberEinrichten2
WICHTIG!: Wenn eine neue Datenbank ausgewählt wird, dann müssen noch die Berechtigungen für den neu angelegten User repl_merge dort eingerichtet werden.

Next

In dem nächsten Dialog wird der Account abgefragt, den der Merge-Agent verwenden soll.

Hier kommt nun unser repl_merge – User zum Einsatz.
SubscriberEinrichten4
SubscriberEinrichten3

Weiter geht es mit der Auswahl, ob die Initialisierung direkt nach dem Wizard vorgenommen werden soll, oder aber erst mit dem ersten Initialisierungslauf.
SubscriberEinrichten5

Gleich ist es geschafft 🙂 . Nur noch 2 oder 3 Dialogfenster …

Im nächsten wird nun angegeben, ob Client oder Server Subscription Type. Wir wählen „Client“.
SubscriberEinrichten6

Next, Next

Juhuu es ist geschafft. Wir haben unsere Subscription fertig eingerichtet.