So konfigurieren Sie die MS SQL Server-Replikation

Microsoft SQL Server ist eine Datenbankverwaltungssoftware, die auf Windows Server-Betriebssystemen installiert werden kann. Datenbanken werden von Unternehmen aller Branchen genutzt, und viele Softwarelösungen verwenden Datenbanken – sowohl zentralisierte als auch verteilte Datenbanken. Die Verfügbarkeit von Datenbanken und die Konsistenz der Daten sind für Unternehmen von entscheidender Bedeutung, weshalb die Sicherung und Replikation von Datenbanken unerlässlich ist.Erfahren Sie mehr über die Replikationstypen von SQL Server, die Funktionsweise der Replikation in SQL Server und die Durchführung der SQL Server-Replikation.

NAKIVO for Windows Backup

NAKIVO for Windows Backup

Fast backup of Windows servers and workstations to onsite, offiste and cloud. Recovery of full machines and objects in minutes for low RTOs and maximum uptime.

Was ist SQL Server-Replikation?

Die MS SQL Server-Replikation ist der Prozess des Kopierens von Daten aus einer Datenbank in eine andere, einschließlich bestimmter Datenbankobjekte, und der Pflege einer synchronisierten Kopie dieser Daten in der Quelle und im Ziel. Mit der Replikation in SQL Server können Sie eine identische Kopie Ihrer primären Datenbank erstellen und Änderungen zwischen den beiden Datenbanken synchronisieren, während die Datenkonsistenz und -integrität gewahrt bleibt.

Die für die MS SQL Server-Replikation verwendete Terminologie

Bevor wir uns mit der Konfiguration und Einrichtung der MS SQL Server-Replikation befassen, wollen wir zunächst kurz die wichtigsten Begriffe und Replikationsmodelle erläutern.Artikel sind die zu replizierenden Basiseinheiten, wie Tabellen, Prozeduren, Funktionen und Ansehnen. Artikel können von Filtern vertikal oder horizontal skaliert werden. Für dasselbe Objekt können mehrere Artikel erstellt werden.Eine Veröffentlichung ist eine logische Sammlung von Artikeln. Dies ist der endgültige Satz von Entitäten aus der Datenbank, die für die Replikation vorgesehen sind.Ein Filter ist eine Reihe von Bedingungen für einen Artikel. Die MS SQL Server-Replikation ermöglicht es Ihnen, Filter zu verwenden und benutzerdefinierte Entitäten für die Replikation auszuwählen, wodurch der Datenverkehr, Redundanzen und die in einem Replikat gespeicherte Datenmenge reduziert werden. Sie können beispielsweise mithilfe von Filtern nur die wichtigsten Tabellen und Felder auswählen und dann nur diese Daten replizieren.Agenten sind MS SQL Server-Komponenten, die als Hintergrunddienste für relationale Datenbankmanagementsysteme fungieren können und zum Planen der automatisierten Ausführung von Aufträgen wie MS SQL-Datenbanksicherungen und -Replikationen verwendet werden. Es gibt fünf Arten von Agenten: Snapshot-Agent, Log Reader-Agent, Distribution-Agent, Merge-Agent und Queue Reader-Agent.Metadaten sind die Daten, die zur Beschreibung von Entitäten der Datenbank verwendet werden. Es gibt einen breiten Bereich integrierter Metadatenfunktionen, mit denen Sie Informationen über die MS SQL Server-Instanz, Datenbankinstanzen und Datenbankentitäten abrufen können.

Rollen in der SQL-Datenbankreplikation

Es gibt drei Hauptrollen bei der MS SQL-Datenbankreplikation: Distributor, Publisher und Subscriber.

  • Ein Händler ist eine MS SQL-Datenbankinstanz, die für das Sammeln von Transaktionen aus Veröffentlichungen und deren Verteilung an Abonnenten konfiguriert ist. Ein Distributor fungiert als Datenbank zum Speichern replizierter Transaktionen.

    Eine Distributor-Datenbank kann gleichzeitig als Publisher und Distributor betrachtet werden. Im lokalen Distributor-Modell werden sowohl der Publisher als auch der Distributor auf einer einzigen MS SQL Server-Instanz ausgeführt. Ein Remote-Distributor-Modell kann verwendet werden, wenn Sie möchten, dass Abonnenten so konfiguriert werden, dass sie eine einzige MS SQL Server-Instanz verwenden, um verschiedene Publikationen zu erhalten (zentralisierte Verteilung). In diesem Modell werden der Publisher und der Distributor auf verschiedenen Servern ausgeführt.

  • Ein Verlag ist die Hauptdatenbankkopie, auf der die Veröffentlichung konfiguriert ist, und stellt Daten für andere MS SQL-Server bereit, die für die Verwendung im Replikationsprozess konfiguriert sind. Der Publisher kann mehr als eine Veröffentlichung haben.
  • Ein Abonnent ist eine Datenbank, die die replizierten Daten aus einer Veröffentlichung empfängt. Ein Abonnent kann Daten von mehr als einem Herausgeber und einer Veröffentlichung empfangen. Ein Einzelabonnentenmodell wird verwendet, wenn es einen Abonnenten gibt. Ein Mehrfachabonnentenmodell wird verwendet, wenn mehrere Abonnenten mit einer einzigen Veröffentlichung verbunden sind.

    Abonnement ist eine Anfrage für ein Exemplar einer Publikation, das an den Abonnenten geliefert werden muss. Das Abonnement dient dazu, die zu empfangenden Publikationsdaten sowie den Ort und Zeitpunkt des Empfangs dieser Daten festzulegen. Es gibt zwei Arten von Abonnements:

    • Push-AbonnementGeänderte Daten werden zwangsweise von einem Distributor an eine Abonnentendatenbank übertragen. Es ist keine Anfrage seitens des Abonnenten erforderlich.
    • Abonnement kündigen: Die vom Publisher vorgenommenen Datenänderungen werden vom Subscriber angefordert. Der Agent läuft auf der Seite des Subscribers.

    Eine Abonnementdatenbank ist eine Zieldatenbank im MS SQL-Replikationsmodell.

    MS SQL Server replication scheme

In der mehrere Verlage – mehrere Abonnenten Modell kann der Publisher als Subscriber auf einem der MS SQL-Server fungieren. Achten Sie darauf, mögliche Aktualisierungskonflikte zu vermeiden, wenn Sie dieses MS SQL Server-Replikationsmodell verwenden.

MS SQL Server-Replikationstypen

Die MS SQL Server-Replikation ist eine Technologie zum kontinuierlichen oder regelmäßigen Kopieren und Synchronisieren von Daten zwischen Datenbanken im Rahmen eines Plans. Was die Replikationsrichtung betrifft, kann die MS SQL Server-Replikation einseitig, eins-zu-viele, bidirektional und viele-zu-eins erfolgen. Es gibt vier Arten der MS SQL Server-Replikation: Schnappschuss-Replikation, Transaktionsreplikation, Peer-to-Peer-Replikation und Merge-Replikation.

Schnappschuss-Replikation

Schnappschuss-Replikation wird verwendet, um Daten genau so zu replizieren, wie sie zum Zeitpunkt der Erstellung des Datenbank-Schnappschusses vorliegen. Diese Art der Replikation eignet sich für Daten, die sich nicht häufig ändern, wenn eine Datenbankreplik, die älter als die Master-Datenbank ist, kein kritisches Problem darstellt, oder wenn innerhalb kurzer Zeit eine große Anzahl von Änderungen vorgenommen wird. Die Verfolgung der Änderungen wird bei der Snapshot-Replikation nicht verwendet.Die Snapshot-Replikation kann beispielsweise verwendet werden, wenn Wechselkurse oder Preislisten einmal täglich aktualisiert werden und vom Hauptserver an die Server in den Zweigstellen verteilt werden müssen.How snapshot replication works

Transaktionsreplikation

Transaktionsreplikation ist eine periodische automatisierte Replikation, bei der die Daten in Echtzeit (oder nahezu in Echtzeit) von einer Master-Datenbank an ein Replikat verteilt werden. Die Transaktionsreplikation ist komplexer als der Schnappschuss. Alle durchgeführten Transaktionen sowie der Endzustand der Datenbank werden repliziert, wodurch es möglich ist, den gesamten Transaktionsverlauf auf der Replik zu überwachen.Zu Beginn des Transaktionsreplikationsprozesses wird ein Schnappschuss auf den Abonnenten angewendet, und dann werden die Daten kontinuierlich von der Master-Datenbank auf ein Replikat übertragen, sobald Änderungen an diesen Daten vorgenommen werden. Die Transaktionsreplikation wird häufig als Einwegreplikation verwendet.How transactional replication worksVerwendungsfälle für die Transaktionsreplikation:

  • Erstellen eines Datenbankservers mit einem Replikat der Datenbank, das bei einem Ausfall des Hauptdatenbankservers für den Failover verwendet werden kann.
  • Empfang von Berichten über Vorgänge, die in Zweigstellen durchgeführt wurden, unter Verwendung mehrerer Publisher in den Zweigstellen und eines Subscribers in der Hauptniederlassung.
  • Änderungen werden sofort nach ihrer Durchführung repliziert.
  • Die Daten aus der Quelle ändern sich häufig.

Peer-to-Peer-Replikation

Peer-to-Peer-Replikation wird verwendet, um Datenbankdaten gleichzeitig an mehrere Abonnenten zu replizieren. Dieser MS SQL Server-Replikationstyp kann verwendet werden, wenn Ihre Datenbankserver über den ganzen Globus verteilt sind. Änderungen können auf jedem der Datenbankserver vorgenommen werden. Die Änderungen werden an alle Datenbankserver weitergegeben. Die Peer-to-Peer-Replikation kann dabei helfen, eine Anwendung, die eine Datenbank verwendet, zu skalieren. Das Hauptarbeitsprinzip basiert auf der transaktionalen Replikation.Peer-to-peer replicationNachfolgend sehen Sie, wie die Peer-to-Peer-Replikation von MS SQL Server zwischen weltweit verteilten Datenbankservern eingesetzt werden kann.Peer-to-peer replication in a distributed environment

Merge-Replikation

Merge-Replikation ist eine Art der bidirektionalen Replikation, die in der Regel in Server-zu-Client-Umgebungen zur Synchronisierung von Daten zwischen Datenbankservern verwendet wird, wenn diese nicht kontinuierlich verbunden sein können. Wenn die Netzwerkverbindung zwischen beiden Datenbankservern hergestellt ist, erkennen Merge-Replikationsagenten Änderungen an beiden Datenbanken und modifizieren die Datenbanken, um ihren Status zu synchronisieren und zu aktualisieren. Die Merge-Replikation ähnelt der Transaktionsreplikation, jedoch werden die Daten vom Publisher zum Subscriber und umgekehrt repliziert.Merge replicationDiese Art der Datenbankreplikation ist die komplexeste aller MS SQL Server-Replikationstypen und wird nur selten verwendet. Beispielsweise kann die Merge-Replikation von mehreren Peer-Speichern verwendet werden, die mit einem gemeinsamen Lager arbeiten. Jeder Speicher darf die Informationen in der Lagerdatenbank ändern, und gleichzeitig müssen alle Speicher nach dem Versand von Waren oder der Lieferung von Vorräten an das Lager über den aktualisierten Status ihrer Datenbanken verfügen. Die Merge-Replikation kann in Fällen verwendet werden, in denen die aktualisierten Informationen gleichzeitig für die Hauptdatenbank (oder zentrale Datenbank) und die Zweigstellen-Datenbanken verfügbar sein müssen.

Anforderungen für die MS SQL Server-Replikation

Die folgenden Ports müssen für eingehenden Datenverkehr geöffnet sein:

  • TCP 1433, 1434, 2383, 2382, 135, 80, 443
  • UDP 1434

Stellen Sie sicher, dass Sie die Windows-Firewall konfigurieren und die entsprechenden Ports für eingehenden Datenverkehr auf jedem Host aktivieren, bevor Sie MS SQL Server installieren. Hosts, die an der MS SQL-Replikation beteiligt sind, müssen sich gegenseitig über einen Hostnamen auflösen.Bevor Sie die MS SQL Server-Replikation konfigurieren, muss die folgende Software für MS SQL Server installiert sein:

  • .NET Framework – eine Reihe von Bibliotheken
  • MS SQL Server – die Datenbank-Server-Software
  • MS SQL Server Management Studio (SSMS) – Software zum Verwalten von MS SQL-Datenbanken mit grafischer Benutzeroberfläche (GUI).

HINWEIS: In diesem Beitrag wird MS SQL Server 2016 für die Konfiguration verwendet. Sie können dasselbe Prinzip verwenden, um die Replikation in SQL Server neuerer Versionen zu konfigurieren.Beachten Sie, dass Sie, wenn Sie MS SQL Server 2016 auf dem ersten Rechner installieren, auf dem sich die Quelle befindet, MS SQL Server 2016 auch auf dem zweiten Rechner installieren müssen, damit die Datenbank ordnungsgemäß funktioniert.Wenn Sie beispielsweise die MS SQL-Transaktionsreplikation konfigurieren möchten, können Sie den zweiten Datenbankserver (auf dem der Abonnent konfiguriert ist) einer Version verwenden, die innerhalb von zwei Versionen des Quelldatenbankservers liegt, auf dem der Herausgeber konfiguriert ist. Wenn die Publisher-Version auf MS SQL Server 2016 ist, kann der Distributor auf den Versionen 2016, 2017, 2019 und 2022 konfiguriert werden, und der Subscriber kann auf MS SQL Server 2012, 2014, 2016, 2017 und 2019 konfiguriert werden. Die Version des Distributors darf nicht niedriger sein als die Version des Publishers. Die Replikation funktioniert beispielsweise nicht, wenn Sie MS SQL Server 2008 auf dem zweiten Rechner installieren.

Grundlegende Empfehlungen für die MS SQL-Datenbankreplikation

Bevor Sie die Umgebung für MS SQL Server konfigurieren, sollten Sie folgende Faktoren berücksichtigen:

  • Identitätsfelder und Trigger unterliegen Einschränkungen.
  • Veröffentlichungen können nur Tabellen mit dem Primärschlüssel enthalten.
  • Es wird empfohlen, das Planen der Erstellung von Schnappschüssen für große Datenbanken zu vermeiden, um einen hohen Verbrauch an Rechenressourcen zu verhindern.
  • Seien Sie vorsichtig, wenn Sie Daten in den Replikaten der Datenbank ändern, die sich auf dem Abonnenten befinden. Wenn eine Transaktion, die Daten ändert, ansteht und diese Daten bearbeitet oder gelöscht wurden, kann die Replikation unterbrochen werden, bis dieses Problem behoben ist.

Konfigurieren der Umgebung

Wenn Sie die MS SQL-Replikation zum ersten Mal konfigurieren, empfiehlt es sich, dies zunächst in einer Testumgebung zu tun. Wir konfigurieren die Replikation beispielsweise in SQL-Servern, die auf Virtuellen Maschinen laufen. In diesem Tutorial werden zwei Hosts mit Windows Server 2016 und MS SQL Server 2016 verwendet, um die MS SQL Server-Replikation zu erläutern.Werfen wir einen Blick auf die Konfiguration der Testumgebung, die für das Verfassen dieses Blogbeitrags verwendet wurde, um die Konfiguration der MS SQL Server-Replikation besser zu verstehen.Host 1

  • IP-Adresse: 192.168.101.101
  • Hostname: MSSQL01
  • MS SQL Server-Instanz-ID: MSSQLSERVER1

Host 2

  • IP-Adresse: 192.168.101.102
  • Hostname: MSSQL02
  • MS SQL Server-Instanz-ID: MSSQLSERVER2

Beide Maschinen verfügen über die Festplatten C: und D: in ihrer Festplattenkonfiguration.Sie können die Windows-Firewall vorübergehend deaktivieren, wenn Sie MS SQL Server installieren, um die Konfiguration der MS SQL Server-Replikation zu üben.In diesem Blogbeitrag wird nicht auf die Installation von MS SQL Server eingegangen, da sich dieses Tutorial auf die Konfiguration der MS SQL Server-Replikation konzentriert. In diesem Beispiel werden beide MS SQL-Server ohne PolyBase installiert.Überprüfen Sie nach Abschluss der MS SQL Server-Installation, ob Sie die für die MS SQL Server-Replikation erforderlichen Funktionen installiert haben. Beachten Sie, dass Datenbank-Engine-Dienste wie SQL Server-Replikation und R-Services während der Installation von MS SQL Server ausgewählt werden müssen. In diesem Beispiel wird der Standardinstallationspfad verwendet (C:Program FilesMicrosoft SQL Server).The components that must be installed with SQL ServerWeitere Einstellungen:

  • Gemischter Authentifizierungsmodus (Windows-Authentifizierung und MS SQL Server-Authentifizierung)
  • Daten-Stammverzeichnis: D:MSSQL_Server
  • Systemdatenbankverzeichnis: D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLData
  • Benutzerdatenbankverzeichnis: D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLData
  • Benutzerdatenbank-Protokollverzeichnis: D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLData
  • Sicherungsverzeichnis: D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLBackup

Sobald MS SQL Server 2016 und SQL Server Management Studio auf den Rechnern installiert sind, können Sie Ihre MS SQL-Server für die Datenbankreplikation vorbereiten.

Vorbereitung für die MS SQL Server-Replikation

Sie müssen die Server konfigurieren, bevor Sie mit der Datenbankreplikation beginnen können. In unserem Beispiel wird ein Windows-Konto für MS SQL Server-Replikationsagenten verwendet.

  1. Erstellen Sie die mssql Benutzer auf beiden Servern und dasselbe Passwort festlegen.
  2. Das mssql Der Benutzer ist in diesem Beispiel Mitglied der folgenden Gruppen:
    • Administratoren (lokale Administratoren auf lokalen Computern, keine Domain-Administratoren)
    • SQL-Benutzergruppe MSSQLSERVER1
    • SQLServer2005SQLBrowserBenutzer$MSSQL01
  3. Sie können Benutzer und Gruppen bearbeiten, indem Sie auf Win+R, Eröffnung CMDund das Ausführen des lusrmgr.msc Befehl.

Die beiden in diesem Beispiel verwendeten Windows Server-Computer befinden sich nicht in Active Directory. Wenn Sie Active Directory verwenden, können Sie die mssql Benutzer auf dem Domänencontroller.

Verbinden mit MS SQL Server

  1. Starten Sie SQL Server Management Studio.
  2. Anmelden (siehe Screenshot) als sa von der SQL Server-Authentifizierung.
    • MSSQL01MSSQLSERVER1 ist der Hostname und der Instanzname der MS SQL-Instanz auf dem ersten Server.
    • MSSQL02MSSQLSERVER2 ist der Hostname und der Instanzname der MS SQL-Instanz auf dem zweiten Server.

    Log into MS SQL Server instance by using SQL Server authentication

Ebenso können Sie sich auf dem zweiten Server (MSSQL02) mit der zweiten MS SQL Server-Instanz (MSSQLSERVER2) verbinden. Sie können auch vom ersten MS SQL Server (MSSQL01) aus eine Verbindung zur zweiten MS SQL Server-Instanz (MSSQLSERVER2) herstellen, indem Sie die Anmeldeinformationen in SQL Server Management Studio eingeben. Sie können in einer einzigen Instanz von SQL Server Management Studio beide MS SQL Server-Instanzen (MSSQL01 und MSSQL02) verbinden.Klicken Sie dazu im Objekt-Explorer auf Verbinden > Datenbank-EngineIn diesem Tutorial verbinden wir uns zu MSSQLSERVER1 von MSSQL01 und zu MSSQLSERVER2 von MSSQL02, indem wir die MS SQL-Server mit SQL Server Management Studio konfigurieren.

Agent starten

Sobald Sie sich bei der MS SQL Server-Instanz angemeldet haben, werden Sie feststellen, dass der Agent nicht ausgeführt wird. Standardmäßig wird der SQL Server Agent nicht automatisch gestartet. Sie können diesen Dienst manuell starten, es ist jedoch besser, ihn so zu konfigurieren, dass er nach dem Boot von Windows automatisch gestartet wird.Starting SQL Server agentSo konfigurieren Sie den Agent-Dienst für den automatischen Start:

  1. Presse Win+R, laufen cmd, und führen Sie die services.msc Befehl.
  2. Öffnen Sie die Einstellungen des SQL Server Agent-Dienstes und legen Sie S fest.tartup Typieren Sie Automatisch.

    SQL Server Agent is running and starts automatically after Windows boot

Benutzer für MS SQL Server konfigurieren

Nach dem Verbinden mit der Instanz MSSQLSERVER1 in SQL Server Management Studio müssen wir die Benutzer konfigurieren:

  1. Gehen Sie zu Objekt-Explorer und öffnen Sicherheit > Anmeldungen.
  2. Rechtsklick Anmeldungen und wählen Sie Neues Login. Auswählen Windows-Authentifizierung.
  3. Geben Sie den Anmeldenamen ein. mssql im Allgemein Abschnitt.
  4. Klicken Suchen, dann drücken Sie Namen überprüfen zur Bestätigung und klicken Sie auf OK zweimal, um die Einstellungen zu speichern.

    Configuring users and permissions

  5. Jetzt ist die MSSQL01mssql Der Windows-Benutzer wird zur Liste der Benutzer hinzugefügt, die sich bei der Datenbank anmelden können (fügen Sie analog dazu den mssql Benutzer zu Anmeldungen auf dem zweiten Rechner MSSQL02 im SQL Server Management Studio).
  6. Fügen Sie das mssql Benutzer zum Systemadministratoren Serverrollen in der Sicherheit Konfiguration der Datenbank im SQL Server Management Studio.
  7. Gehen Sie zu MSSQL01MSSQLSERVER1 > ServerrollenRechtsklick Systemadministratorund öffnen Eigenschaften.
  8. In der Mitglieder Seite, klicken Sie HinzufügenGeben Sie den Namen Ihres Benutzers ein. mssql, und klicken Sie Namen überprüfen.
  9. Aktivieren Sie das Kontrollkästchen für den Benutzernamen. MSSQL01mssql und klicken Sie OK.

    Adding a user to server roles on MS SQL Server

  10. Führen Sie die gleiche Konfiguration auf Ihrem zweiten Rechner durch (in diesem Fall MSSQL02).
  11. Starten Sie beide Maschinen neu.

    Jetzt können Sie sich von beiden Servern mit der Windows-Authentifizierung anmelden.

    Log in to MS SQL Server instance by using Windows authentication

Importieren einer Datenbank aus einem Backup

Importieren wir eine Beispieldatenbank aus einem Backup und replizieren wir dann die Datenbank vom ersten Rechner auf den zweiten Rechner. Die AbenteuerWerke2016 Die Datenbank wird in diesem Beispiel als Beispieldatenbank verwendet.

  1. Kopieren Sie die AbenteuerWerke2016.bak Datenbank-Sicherungsdatei zum Backup in Ihr MSSQL-Sicherungsverzeichnis. In unserem Fall ist dieses Verzeichnis auf dem ersten Server D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLBackup.
  2. Importieren Sie eine Beispieldatenbank. Gehen Sie auf dem ersten Rechner in SQL Server Management Studio zu MSSQL01MSSQLSERVER1Rechtsklick Datenbanken, und wählen Sie Datenbank wiederherstellen im Kontextmenü.

    Restoring a sample database to reveal MS SQL Server replication configuration

  3. In der Datenbank wiederherstellen Fenster, wählen Sie die erforderlichen Parameter aus:
    • Quelle: Gerät .
    • Klicken Sie auf die drei Punkte die Datenbank-Backup-Datei durchsuchen.
      • In der Backup-Geräte auswählen Fenster, Backup-Medientyp auswählen: datei.
      • Klicken Hinzufügen.
    • Wählen Sie das benötigte aus. .bak Datei – D:MSSQL_ServerMSSQL13.MSSQLSERVER1MSSQLBackupAdventureWorks2016.bak
    • Treffer OKund dann drücken Sie OK noch einmal.
  4. Das AbenteuerWerke2016 Die Datenbank wurde erfolgreich wiederhergestellt.

    Restoring a sample database in MS SQL Server

Sie können die Datenbank aus einer Sicherung auf dem zweiten Rechner importieren, auf dem die Datenbankreplik ausgeführt wird. Mit diesem Ansatz können Sie den Netzwerkverkehr reduzieren, da die Replikation mit dem Kopieren der Änderungen seit der Erstellung der Sicherung beginnt, ohne die gesamten Datenbankdaten in eine leere Datenbank zu kopieren.Stellen Sie die Datenbank aus einer Sicherung auf dem zweiten Server wieder her und benennen Sie die Datenbank um in AbenteuerWerke2016r, wobei „r“ für „Replikat“ steht.Schließlich haben wir:

HostnameMSSQL-Instanzname Datenbankname
MSSQL01MSSQLSERVER1 AbenteuerWerke2016
MSSQL02MSSQLSERVER2 AbenteuerWerke2016r

Nach dem Importieren der Datenbank müssen Sie einige Anpassungen vornehmen, um Ihre MS SQL-Server vorzubereiten.

  1. Auf der MSSQL01 Maschine, gehen Sie zu MSSQL01MSSQLSERVER1 > Sicherheit > Anmeldungen, wählen MSSQL01mssqlRechtsklick (oder Doppelklick) mssql Benutzer und auswählen Eigenschaften.
  2. In Serverrollen, aktivieren Sie das Kontrollkästchen weiter neben dem dbcreator rolle.

    Enabling the dbcreator role for mssql user

  3. Auf der Benutzerzuordnung Seite, wählen Sie die diesem Login zugeordneten Benutzer aus und setzen Sie ein Häkchen bei AbenteuerWerke2016 Datenbank-Kontrollkästchen (auswählen) AbenteuerWerke2016r auf dem zweiten Server entsprechend).
  4. In der Datenbankrollenmitgliedschaft Abschnitt, markieren Sie das db_owner Kontrollkästchen.

    Configuring user mapping on MS SQL Server

  5. Klicken OK um die Einstellungen zu speichern.

Führen Sie die gleiche Konfiguration auf dem Rechner MSSQL02 durch. Anschließend können Sie die für die Datenbankreplikation erforderlichen MS SQL Server-Komponenten konfigurieren.

Konfigurieren der Datenbankreplikation

Die Konfiguration der Replikation im grafischen Modus ist die bequemste Methode. Die weitere Konfiguration wird in SQL Server Management Studio durchgeführt. In diesem Beispiel wird die transaktionale Datenbankreplikation erläutert, da dies einer der am häufigsten verwendeten Replikationstypen in MS SQL Server ist.Das Ansehen auf dem Hauptdatenbankserver (MSSQL01MSSQLSERVER1) und das Ansehen auf dem zweiten Server (MSSQL02MSSQLSERVER2) in SQL Server Management Studio sind in der folgenden Abbildung dargestellt.The view of two MS SQL Server instances in MS SQL Server Management Studio

Konfiguration der Verteilung

Die Verteilung kann für mehrere Publisher und Subscriber verwendet werden. In diesem Beispiel wird die Verteilung auf dem Hauptserver konfiguriert, auf dem die Quelle gespeichert ist. Klicken Sie auf dem Hauptserver (MSSQL01MSSQLSERVER1) mit der rechten Maustaste auf Replikation und wählen Sie im Kontextmenü Verteilung konfigurieren.Configuring DistributionDas Verteilungsassistent konfigurieren öffnet sich.

  1. VertriebshändlerWählen Sie die aktuelle Datenbankinstanz aus, die auf dem Hauptserver (MSSQL01MSSQLSERVER1) ausgeführt wird, um in diesem Beispiel als Verteiler zu fungieren. Klicken Sie auf Weiter jedes Mal, um zum nächsten Schritt im Assistenten zu gelangen.
  2. SQL Server Agent startenWenn Sie MS SQL Server Agent nicht wie oben beschrieben für den automatischen Start konfiguriert haben, wird die folgende Meldung angezeigt. Wählen Sie Ja, konfigurieren Sie den SQL Server Agent-Dienst so, dass er automatisch gestartet wird..

    Configuring the Distributor and MS SQL Server Agent service startup options

  3. Schnappschuss-OrdnerSie können hier den Standardpfad beibehalten. Für die Initialisierung der Replikation ist ein Schnappschuss erforderlich. Stellen Sie sicher, dass auf der Festplatte, auf der sich Ihr Schnappschuss-Verzeichnis befindet, genügend freier Speicherplatz vorhanden ist. Der freie Speicherplatz muss mindestens der Größe der replizierten Datenbank entsprechen.
  4. VertriebsdatenbankGeben Sie den Datenbanknamen der Verteilung ein. Sie können den Standardnamen (vertrieb) und Ordner für die Verteilungsdatenbankdatei und die Protokolldatei.

    Configuring snapshot folder and distribution database folders

  5. Verlage. Definieren Sie die MS SQL Server-Replikationsverleger, die auf den Verteiler zugreifen können. Aktivieren Sie das Kontrollkästchen neben dem Datenbanknamen der Verteilungsdatenbank auf der primären MS SQL Server-Instanz (die eine zu replizierende Quelle hostet). In diesem Beispiel ist dies die Instanz MSSQL01MSSQLSERVER1, und der Datenbankname der Verteilungsdatenbank lautet vertrieb.
  6. Zauberer-Aktionen. Wählen Verteilung konfigurieren Konfigurieren Sie die Verteilung im letzten Schritt des Assistenten. In diesem Beispiel wird keine Skriptdatei erstellt, die später ausgeführt werden soll.

    Selecting the Publisher and the distribution database

  7. Den Assistenten abschließenÜberprüfen Sie die Zusammenfassung der Verteilungskonfiguration und klicken Sie auf Fertigstellen um den Distributor zu erstellen.

    Finishing configuring distribution

  8. Das Erfolg Der Status sollte angezeigt werden, wenn der Distributor erfolgreich erstellt und konfiguriert wurde.

    Configuring the Distributor

Wenn Sie feststellen, dass beim Konfigurieren des automatischen Starts von SQL Server Agent ein Fehler aufgetreten ist, gehen Sie zur Dienstkonfiguration und überprüfen Sie den Startmodus von SQL Server Agent (siehe oben in diesem Blogbeitrag, wie Sie den Start von Agent konfigurieren).Sie können auch die Eigenschaften von SQL Server Agent in SQL Server Management Studio öffnen und den Dienststatus sowie die Neustart-Optionen überprüfen. Klicken Sie mit der rechten Maustaste SQL Server-Agent am Ende der Liste in Objekt-Explorer und getroffen Eigenschaften um die Agenteigenschaften anzusehen oder zu bearbeiten.Checking MS SQL Server Agent startup options

Konfigurieren des Publishers

Sobald die Verteilung konfiguriert ist, können Sie den Publisher konfigurieren. Der Publisher sollte auf dem Hauptserver (MSSQL01MSSQLSERVER1) konfiguriert werden, auf dem die zu replizierende Master-Datenbank gespeichert ist. Wählen Sie ReplikationRechtsklick Lokale Publikationen und wählen Sie im Kontextmenü Neue Veröffentlichung.Creating a new publicationDas Assistent für neue Publikationen öffnet sich.

  1. VeröffentlichungsdatenbankWählen Sie die Datenbank aus, die Sie replizieren möchten (AbenteuerWerke2016 in diesem Fall). Drücken Sie Weiter bei jedem Schritt im Assistenten, um fortzufahren.

    Selecting a publication database

  2. Art der VeröffentlichungIn diesem Schritt können Sie MS SQL Server-Replikationstypen für eine Datenbank auswählen. Wählen wir eine Transaktionsveröffentlichung aus, einen weit verbreiteten Replikationstyp.
  3. ArtikelWählen Sie die gewünschten Objekte aus, z. B. Tabellen, Prozeduren, Ansichten, indizierte Ansichten und benutzerdefinierte Funktionen, die als Artikel veröffentlicht werden sollen. Bei Bedarf können Sie die Replikation der benutzerdefinierten Felder in den Tabellen auswählen und Artikel-Eigenschaften festlegen. In diesem Beispiel werden einige Tabellen ausgewählt.

    Selecting the transactional publication type and articles

  4. Tabellenzeilen filternIn diesem Beispiel werden keine Filter hinzugefügt (dies ist die Standardkonfiguration für Filter). Bei Bedarf können Sie Filter hinzufügen.
  5. Snapshot-AgentGeben Sie an, wann der Snapshot-Agent ausgeführt werden soll. Konfigurieren wir den Agent so, dass er sofort ausgeführt wird. Wählen Sie Erstellen Sie sofort einen Schnappschuss und behalten Sie diesen Schnappschuss, um Abonnements zu initialisieren..

    Filter options and Snapshot Agent options

  6. Agentensicherheit. Wählen Verwenden Sie die Einstellungen für die Sicherheit des Snapshot-Agenten.Klicken Sie auf die Sicherheitseinstellungen Schaltfläche, um das Konto auszuwählen, unter dem der Agent ausgeführt werden soll.

    In der Snapshot-Agent-Sicherheit Geben Sie in dem sich öffnenden Fenster die Anmeldeinformationen des mssql Windows-Benutzer, den Sie zuvor erstellt haben. Wählen Sie „Mit dem Publisher verbinden“ aus. Von dem Ausgeben als ProzesskontoKlicken Sie auf „OK“, um die Einstellungen zu speichern und zum Assistenten zurückzukehren.

    Configuring agent security options

    Nach der Definition des benötigten Benutzers können Sie diesen Benutzer in der Snapshot-Agent und Protokoll-Leser-Agent Abschnitte.

    Agent security options are configured

  7. Zauberer-AktionenAktivieren Sie das obere Kontrollkästchen, um die Veröffentlichung im letzten Schritt des Assistenten zu erstellen.
  8. Den Assistenten abschließenÜberprüfen Sie Ihre Veröffentlichungskonfiguration und klicken Sie auf Fertigstellen eine neue Publikation erstellen.

    Selecting wizard actions and completing the wizard

In der Erstellen einer Veröffentlichung Fenster können Sie den Fortschritt der Erstellung einer neuen Publikation überwachen. Warten Sie einen Moment, und wenn alles korrekt ausgeführt wurde, sollte der Status „Erfolgreich“ angezeigt werden.Creating the publicationDie Publikation wurde nun erstellt und Sie können sie im Objekt-Explorer anzeigen, indem Sie zu Replikation > Lokale Publikationen.The publication is created

Konfigurieren des Teilnehmers

Wie Sie sich erinnern, kann die MS SQL Server-Replikation entweder eine Pull- oder eine Push-Replikation sein. Wenn Sie eine Push-Replikation konfigurieren, sollten Sie den Abonnenten so konfigurieren, dass die Agenten auf dem Hauptdatenbankserver (in diesem Fall MSSQL01) ausgeführt werden. Wenn Sie eine Pull-Replikation konfigurieren, muss der Abonnent so konfiguriert werden, dass die Agenten auf dem zweiten Rechner (MSSQL02) ausgeführt werden, d. h. auf dem Rechner, auf dem das Replikat der Datenbank erstellt wird.Konfigurieren wir die Push-Replikation und erstellen wir ein neues Abonnement auf dem ersten MS SQL Server (MSSQL01MSSQLSERVER1), auf dem sich die Master-Datenbank befindet.Gehen Sie im Objekt-Explorer zu ReplikationRechtsklick Lokale Abonnements und wählen Sie im Kontextmenü Neue Abonnements.Creating a new subscriptionDas Assistent für neue Abonnements öffnet sich.

  1. VeröffentlichungWählen Sie die Publikation aus, für die Sie ein neues Abonnement erstellen möchten. In unserem Beispiel lautet der Name des Herausgebers MSSQL01MSSQLSERVER1 und der Name der Publikation (die zuvor erstellt wurde) lautet AdvWorks_PubKlicken Sie auf Weiter bei jedem Schritt im Assistenten, um fortzufahren.
  2. Standort des VertriebsagentenWählen Sie den Replikationstyp aus, indem Sie entweder „Push-Abonnement“ oder „Pull-Abonnement“ auswählen. In unserem Beispiel möchten wir, dass alle Agenten auf der Quelle ausgeführt werden, daher wird die erste Option ausgewählt, um ein Push-Abonnement zu erstellen. Auf diese Weise können Sie die MS SQL Server-Replikation zentral verwalten.

    Selecting the publisher and distribution agent location

  3. AbonnentenStandardmäßig wird der Server, auf dem Sie den Assistenten ausführen (in diesem Fall MSSQL01MSSQLSERVER1), als Abonnent angezeigt, und die Abonnementdatenbank ist nicht definiert. Fügen wir einen neuen Abonnenten hinzu und wählen eine Abonnementdatenbank aus, die sich auf dem zweiten Datenbankserver (MSSQL01MSSQLSERVER2) befindet. Klicken Sie auf Abonnenten hinzufügen und wählen Sie im Kontextmenü SQL Server-Abonnent hinzufügen.
    • Geben Sie im Popup-Fenster die Anmeldeinformationen für die zweite MSSQL Server-Instanz ein (in unserem Fall MSSQL01MSSQLSERVER2) und klicken Sie auf Verbinden .

      Adding MS SQL Server subscriber

    • Aktivieren Sie das Kontrollkästchen Ihres zweiten Servers, auf dem Ihre Replikate gespeichert werden sollen (MSSQL02MSSQLSERVER2), und geben Sie im Feld Abonnement-Datenbank Wählen Sie im Dropdown-Menü eine neue Datenbank oder eine vorhandene Datenbank aus, die aus einem Backup wiederhergestellt wurde, um sie als Datenbankreplikat zu verwenden.

      In unserem Beispiel ist die AbenteuerWerke2016r wurde auf dem zweiten Server von der Wiederherstellung des Hauptservers (Quelle) erstellt. AbenteuerWerke2016 Datenbank aus einem Backup, um die Replikation zu starten. Die Replikation wird gestartet, indem nur neue Daten repliziert werden, nicht jedoch von einer kompletten Kopie der Datenbank nach dem Start des Replikationsprozesses. Somit AbenteuerWerke2016r wird im aktuellen Beispiel als Abonnementdatenbank ausgewählt.

      Selecting a subscriber and a subscription database

  4. Sicherheit für VertriebsagentenKlicken Sie auf die Schaltfläche mit den drei Punkten () und wählen Sie den Benutzer und andere Optionen für die Sicherheit des Verteilungsagenten aus.

    In der Sicherheit für Vertriebsagenten Fenster, das sich öffnet, stellen Sie den Verteilungsagenten so ein, dass er auf dem MSSQL01 Host under the mssql Benutzerkonto. Geben Sie das Passwort für das mssql Windows-Benutzer. Auswählen Verbinden Sie sich mit dem Distributor, indem Sie sich als Prozesskonto ausgeben. und wählen Sie Verbinden Sie sich mit dem Abonnenten, indem Sie sich von dem Prozesskonto ausgeben.. Treffer OK Einstellungen speichern.

    Distribution Agent security settings

    Jetzt sind Ihre Abonnement-Eigenschaften festgelegt.

    Distribution Agent security settings are configured

  5. SynchronisationsplanWählen Sie den Agenten aus, der sich auf dem Distributor befindet, um Kontinuierlich laufen für den aktuellen Abonnenten.
  6. Abonnements initialisieren. Wählen Sie die Initialisieren Aktivieren Sie das Kontrollkästchen und wählen Sie im Dropdown-Menü Sofort für den Zeitpunkt der Initialisierung des Abonnements. Sie können auch die Option Speicheroptimiert Optionen, falls erforderlich.

    Synchronization schedule options and initialize subscription options

  7. Zauberer-AktionenAktivieren Sie das obere Kontrollkästchen, um am Ende des Assistenten das/die Abonnement(s) zu erstellen.
  8. Den Assistenten abschließenSie können Ihre Abonnement-Einstellungen überprüfen und klicken Sie auf Fertigstellen um das Abonnement zu erstellen.

    Selecting subscription wizard actions and completing the wizard

  9. Warten Sie, bis das Abonnement erstellt wurde. Wenn Sie das Symbol Erfolg Status bedeutet, dass das Abonnement erfolgreich erstellt wurde.

    The progress of creating subscriptions and the action status

  10. Nach der Konfiguration der Replikation in SQL Server werden drei Aufträge im Objekt-Explorer angezeigt, die Sie von folgendem Pfad einsehen können: SQL Server-Agent > Aufträge .

    MS SQL Server Agent jobs are created for MS SQL Server replication

Replikationskonfiguration abschließen

Nachdem Sie den Distributor, den Publisher und den Subscriber konfiguriert haben, können Sie den Status der Replikation des MS SQL Servers überprüfen.

  1. Starten Sie auf dem ersten Server (MSSQL01MSSQLSERVER1) den Replikationsmonitor, um den Replikationsstatus von MS SQL Server anzuzeigen. Wählen Sie in SQL Server Management Studio Ihre MS SQL Server-Instanz (MSSQLSERVER1) aus und gehen Sie zu ReplikationRechtsklick Lokale Publikationen und wählen Sie im Kontextmenü Replikationsmonitor starten.

    Launching the Replication Monitor to check MS SQL Server replication status

  2. Es gibt eine Protokoll-Leser-Agent Fehler in unserem Fall. Um die Details des Fehlers anzuzeigen, wählen Sie die Quelle (den Publisher) im linken Fensterbereich aus und wählen Sie die Agenten Registerkarte im rechten Fensterbereich und doppelklicken Sie auf den Namen des Fehlers.

    The error status of the Log Reader Agent

  3. In dem sich öffnenden Fenster können Sie den Verlauf des Agenten und Fehlermeldungen sehen. Die Fehlermeldungen lauten:
    • Der Prozess konnte sp_replcmds auf MSSQL01MSSQLSERVER1 nicht ausführen. Quelle: MSSQl_REPL. Fehlernummer: MSSQL_REPL20011).
    • Kann nicht als Datenbankprinzipal ausgeführt werden, da der Prinzipal „dbo” nicht existiert, dieser Prinzipaltyp nicht imitiert werden kann oder Sie nicht über die erforderlichen Berechtigungen verfügen. (Quelle: MSSQLServer, Fehlernummer: 15517).

    Viewing the Log Reader Agent history to fix errors

    Die zweite Fehlermeldung deutet darauf hin, dass eine bestimmte Berechtigung fehlt. Beheben wir diesen Fehler.

  4. Erstellen Sie eine neue Abfrage in MS SQL Management Studio und führen Sie diese Abfrage aus. Klicken Sie im Hauptfenster auf die Schaltfläche Neue Abfrage Schaltfläche.
  5. Geben Sie im Abschnitt „SQL-Abfrage“ des Hauptfensters die folgende Abfrage ein:

    USE AdventureWorks2016

    GO

    EXEC sp_changedbowner 'sa'

    GO

    Klicken Sie auf die Ausführen Schaltfläche.

    Viewing Snapshot Agent Status to run database replication in SQL Server

    Befehl(e) erfolgreich ausgeführt.

  6. Weiter gehen Sie zu MSSQL01MSSQLSERVER1 > Replikation > Lokale Publikationen > [AdventureWorks2016]AdvWorks_PubKlicken Sie mit der rechten Maustaste auf den Namen der Publikation und wählen Sie im Kontextmenü Agent-Status ansehen. Sie können klicken Aktion > Aktualisieren den Status aktualisieren und Alle Abonnements neu initialisieren Einen Schnappschuss auf jeden Abonnenten anwenden.

    Jetzt ist alles gelöst, es gibt keine Fehler-Anzeigen und die MS SQL Server-Replikation sollte arbeiten.

    The running status of the subscription

Überprüfen der Funktionsweise der Replikation

Sehen wir uns die MS SQL Server-Replikation in Aktion an. Sehen wir uns den Inhalt einer Tabelle der an. AbenteuerWerke2016 Datenbank, die auf dem ersten MS SQL-Server gespeichert ist (MSSQL01MSQLSERVER1). In unserem Beispiel wählen wir alle Daten aus der Person.Adressart Tabelle. Führen Sie dazu die folgende Abfrage aus:USE AdventureWorks2016;GOSELECT *FROM Person.AddressType;Die Anzeige des Ergebnisses der Ausführung der Abfrage erfolgt im folgenden Screenshot:Viewing the content of the table of the master databaseFühren Sie eine ähnliche Abfrage auf dem zweiten Server aus, um eine Anzeige aller Daten des Person.Adressart des AbenteuerWerke2016r Datenbank gespeichert auf MSSQL02MSSQLSERVER2.USE AdventureWorks2016r;GOSELECT *FROM Person.AddressType;Wenn Sie die Screenshots oben und unten vergleichen, sehen Sie, dass der Inhalt der Person.Adressart sind in beiden Datenbanken identisch (eine Quelle auf dem ersten Server und die Zieldatenbank, die ein Replikat auf dem zweiten Server ist).Viewing the content of the table of the second database that will be used as a database replicaLöschen wir eine Zeile in der PersonAdressTyp Tabelle aus der AbenteuerWerke2016 Datenbank (Quelle) auf dem ersten Server (MSSQL01MSSQLSERVER1). Führen Sie die Abfrage aus, um eine Zeile zu löschen, die enthält „Abrechnung“ im Namen und um nach der Anzeige den Inhalt der Tabelle anzuzeigen:DELETE FROM Person.AddressType WHERE Name='Billing';SELECT * FROM Person.AddressType;Deleting the line in the table of the master databaseWie Sie sehen können, ist die erste Zeile mit dem Adressart-ID 1 und Name „Abrechnung“ wurde aus dem Person.Adressart Tabelle in der AbenteuerWerke2016 Datenbank auf dem MSSQL01 Maschine.Die Transaktionsreplikation läuft. Überprüfen wir den Inhalt der Person.Adressart Tabelle in der AbenteuerWerke2016r Datenbank auf dem MSSQL02 Maschine. Führen Sie erneut eine ähnliche Abfrage wie oben durch, um den Inhalt der Tabelle anzuzeigen:USE AdventureWorks2016r;GOSELECT *FROM Person.AddressType;Infolge der Replikation wurde auch die erste Zeile gelöscht. Person.Adressart Tabelle in der sekundären Datenbank, die als Datenbankreplik fungiert (AbenteuerWerke2016r). Die Ergebnisse sehen Sie im folgenden Screenshot.The first line is deleted from the table in the database replicaDie Datenbankreplikation in SQL Server arbeitet ordnungsgemäß.

Schlussfolgerung

Es gibt vier Arten der MS SQL Server-Replikation: Schnappschuss-, Transaktions-, Peer-to-Peer- und Merge-Replikation. Da die Transaktionsreplikation weit verbreitet ist, haben wir diesen MS SQL Server-Replikationstyp in diesem Blogbeitrag konfiguriert. Der Distributor, der Publisher und der Subscriber müssen konfiguriert werden, damit die Datenbankreplikation funktioniert. Der Subscriber kann auf einem Server der Quelle (Push-Replikation) und auf einem Server des Ziels (Pull-Replikation) konfiguriert werden.Sie sollten jedoch in Betracht ziehen, sowohl die Replikation als auch die Backup von MS SQL-Datenbanken die Chancen auf Erfolg zu erhöhen Datenbank-Datenwiederherstellung.

Try NAKIVO Backup & Replication

Try NAKIVO Backup & Replication

Get a free trial to explore all the solution’s data protection capabilities. 15 days for free. Zero feature or capacity limitations. No credit card required.

Empfohlene Artikel