Articles

SQLShack

Das Volumen der Daten, die heute gespeichert, verwaltet und abgerufen werden, ist beispiellos. Unternehmen erwarten von der IT-Abteilung, dass Daten auf unbestimmte Zeit online und zugänglich bleiben, was einen starken Druck auf die Datenbanken ausübt, die zum Speichern und Verwalten erforderlich sind. Um den heutigen Anforderungen gerecht zu werden, müssen wir veraltete und ineffiziente Legacy-Prozesse durch neue, agilere Techniken ersetzen. Die SQL Server-Replikation ist eine der Techniken, um solchen Anforderungen gerecht zu werden.

  • Hinweis: Um mehr über das Replizieren von Datenbanken zu erfahren, lesen Sie bitte den Artikel Verschiedene Stakeholder, verschiedene Ansichten: Warum Datenbankmanagement einen systematischen Ansatz erfordert.

In diesem Artikel möchten wir Ihnen Ihr Verständnis der vollständigen SQL Server-Replikationstopographie einschließlich Komponenten, Interna und SQL vermitteln, um alles miteinander zu verbinden. Nachdem Sie diesen Artikel vollständig gelesen haben, werden Sie verstehen:

  • SQL Server-Replikation im Allgemeinen
  • Komponenten der transaktionalen SQL Server-Replikation im Besonderen
  • Abrufen von Verteilereigenschaften
  • So finden Sie den Herausgeber mit demselben Verteiler
  • Welche Datenbanken werden für die SQL Server-Replikation verwendet?
  • Die allgemeine Topologie einer Replikationsumgebung
  • Welche Artikel sind dem Typ des SQL Server-Replikationsmodells zugeordnet?
  • So erhalten Sie details
  • So erhalten Sie Abonnementdetails
  • SQL Server Replication Agents
  • Und mehr…

Replikation

SQL Server Replication ist eine Technologie zum Kopieren und Verteilen von Daten und Datenbankobjekten von einer Datenbank in eine andere und zum anschließenden Synchronisieren zwischen Datenbanken, um die Konsistenz und Integrität der Daten zu gewährleisten. In den meisten Fällen ist die Replikation ein Prozess der Reproduktion der Daten an den gewünschten Zielen. Die SQL Server-Replikation wird zum kontinuierlichen Kopieren und Synchronisieren von Daten verwendet oder kann auch so geplant werden, dass sie in vorgegebenen Intervallen ausgeführt wird. Es gibt verschiedene Replikationstechniken, die eine Vielzahl von Datensynchronisationsansätzen unterstützen; Einweg; eins-zu-viele; viele-zu-eins; und bidirektional, und mehrere Datensätze miteinander synchronisieren.

Transaktionale SQL Server-Replikationskomponenten

Das folgende Diagramm zeigt die Komponenten der transaktionalen SQL Server-Replikation.

Einschließlich der SQL Server-Replikation …

  • Herausgeber
  • Publikationsdatenbank
  • Veröffentlichung
  • Artikel
  • Verteiler
  • Verteilungsdatenbank
  • Abonnent
  • Abonnementdatenbank
  • Abonnement
  • Replikationsagenten

SQL Server-Replikationsdiagramm

Article

Ein Artikel ist die Grundeinheit der SQL Server-Replikation. Ein Artikel kann aus Tabellen, gespeicherten Prozeduren und Ansichten bestehen. Es ist möglich, den Artikel horizontal und vertikal mit einer Filteroption zu skalieren. Wir können auch mehrere Artikel für dasselbe Objekt mit einigen Einschränkungen und Einschränkungen erstellen.

Mit dem neuen Publikationsassistenten kann der Artikel navigiert werden. Es ermöglicht uns, die Eigenschaften eines Artikels anzuzeigen und Optionen zum Festlegen von Eigenschaften für die Artikel bereitzustellen. In einigen Fällen können die Eigenschaften während der Erstellung der Publikation festgelegt werden und es handelt sich um eine schreibgeschützte Eigenschaft.

Wenn beispielsweise nach der Erstellung einer SQL Server-Replikationspublikation eine Eigenschaft geändert werden muss, muss wiederum ein neuer Replikations-Snapshot generiert werden. Wenn die Publikation über eine oder mehrere Subskriptionen verfügt, müssen für die Änderung alle Subskriptionen neu initialisiert werden. Weitere Informationen finden Sie unter Hinzufügen/Löschen von Artikeln zu/aus einer vorhandenen Publikation in SQL Server-Artikel.

Um alle veröffentlichten Artikel aufzulisten, führen Sie folgendes T-SQL aus

1
2
3
4
5
6
7
8
9
10
11
12

Kneipe.
,Art.
,Art.
,Art.
,Art.
AUS dem
.. Art
INNERE VERKNÜPFUNG .. Pub
AUF Kunst. = Pub.
ORDER BY
Pub., Art.

To get the details of articles in transactional or merge SQL Server replication in a published database, run the following T-SQL.

1
2
3
4
5
6
7
8

SELECT st.name , st.schema_id, st.is_published , st.is_merge_published, is_schema_published
VON sys.tabellen st WOBEI st.is_published = 1 oder st.is_merge_published = 1 oder st.is_schema_published = 1
UNION
SELECT sp.name , sp.schema_id, 0, 0, sp.is_schema_published
VON sys.prozeduren sp WHERE sp.is_schema_published = 1
UNION
SELECT sv.name , sv.schema_id, 0, 0, sv.is_schema_published
VON sys.ansichten sv WHERE sv.is_schema_published = 1;

To get detailed information about an article in the listed publisher, run the following T-SQL

1
2
3
4
5
6
7

DECLARE @publication AS sysname;
SET @publication = N’PROD_HIST_Pub‘;
USE MES_PROD_AP
EXEC sp_helparticle
@publication = @publication;
GO

To get column level details, run the following T-SQL

1
2
3

USE MES_PROD_AP
GO
sp_helparticlecolumns @publication = N’PROD_HIST_Pub‘ , @article = ‚tb_Branch_Plant‘

Um die Spalten aufzulisten, die in der Transaktionsreplikation in der Publikationsdatenbank veröffentlicht werden, führen Sie folgendes T-SQL aus

1
WÄHLEN SIE object_name(object_id) , Name AUS sys.spalten sc WHERE sc.is_replicated = 1;

Publikationen

Eine Publikation ist eine logische Sammlung von Artikeln aus einer Datenbank. Mit der Entität können wir Artikeleigenschaften auf der höheren Ebene definieren und konfigurieren, sodass die Eigenschaften an alle Artikel in dieser Gruppe vererbt werden.

1
EXEC sp_helppublication;

Publisher-Datenbank

Der Publisher ist eine Datenbank, die eine Liste von Objekten enthält, die als SQL Server-Replikationsartikel bezeichnet werden, die als Publikationsdatenbank bezeichnet werden. Der Verlag kann über eine oder mehrere Publikationen verfügen. Jeder Publisher definiert einen Datenausbreitungsmechanismus, indem er mehrere interne gespeicherte Replikationsprozeduren erstellt.

1
2
3

USE Distribution
GO
select * from MSpublications

Publisher

The Publisher is a database instance that makes data available to other locations through SQL Server replication. Der Herausgeber kann über eine oder mehrere Publikationen verfügen, die jeweils einen logisch verwandten Satz von Objekten und Daten definieren, die repliziert werden sollen.

Distributor

Der Distributor ist eine Datenbank, die als Speicher für replikationsspezifische Daten dient, die einem oder mehreren Publishern zugeordnet sind. In vielen Fällen ist der Verteiler eine einzelne Datenbank, die sowohl als Herausgeber als auch als Verteiler fungiert. Im Zusammenhang mit der SQL Server-Replikation wird dies allgemein als „lokaler Verteiler“ bezeichnet. Wenn es andererseits auf einem separaten Server konfiguriert ist, wird es als „Remote Distributor“ bezeichnet. Jeder Publisher ist einer einzigen Datenbank zugeordnet, die als „Distributionsdatenbank“ (auch bekannt als „Distributor“) bezeichnet wird.

Die Verteilungsdatenbank identifiziert und speichert SQL Server-Replikationsstatusdaten, Metadaten zur Veröffentlichung und fungiert in einigen Fällen als Warteschlange für Daten, die vom Herausgeber zu den Abonnenten verschoben werden.

Je nach Replikationsmodell kann der Verteiler auch dafür verantwortlich sein, die Abonnenten, die eine Publikation abonniert haben, darüber zu informieren, dass sich ein Artikel geändert hat. Außerdem behält die Verteilungsdatenbank die Integrität der Daten bei.

Verteilungsdatenbanken

Jeder Verteiler muss über mindestens eine Verteilungsdatenbank verfügen. Die Verteilungsdatenbank besteht aus Artikeldetails, Replikationsmetadaten und Daten. Ein Verteiler kann mehr als eine Verteilungsdatenbank enthalten; Alle Veröffentlichungen, die in einem einzelnen Verlag definiert sind, müssen jedoch dieselbe Verteilungsdatenbank verwenden.

Um herauszufinden, ob …

  • ein Server ein Distributor ist oder nicht?

    1
    SELECT @@ServerName Servername, case when is_distributor=1 then ‚Yes‘ else ‚No‘ end status FROM sys.servers WHERE name=’repl_distributor‘ AND data_source=@@servername;

  • a distribution database installed or not?

    1
    SELECT name FROM sys.databases WHERE is_distributor = 1
  • a Publisher is using this Distributor or not?

    1
    EXEC sp_get_distributor

  • or just to interrogate various Distributor and Distribution database properties?

    1
    2
    3

    EXEC sp_helpdistributor;
    EXEC sp_helpdistributiondb;
    EXEC sp_helpdistpublisher;

Subscriber

A database instance that consumes SQL Server replication data from a publication is called a Subscriber. Der Abonnent kann Daten von einem oder mehreren Verlagen und Publikationen empfangen. Der Abonnent kann auch Datenänderungen an den Herausgeber zurückgeben oder die Daten je nach Art des Replikationsdesigns und -modells an andere Abonnenten erneut veröffentlichen.

1
EXEC sp_helpsubscriberinfo;

Abonnements

Ein Abonnement ist eine Anforderung für eine Kopie einer Publikation an einen Abonnenten geliefert werden. Die Subskription legt fest, welche Publikationsdaten wann und wo empfangen werden.

Es gibt zwei Arten von Abonnements: Push-Abonnements und Pull-Abonnements

  • Push-Abonnement: Distributor aktualisiert die Daten direkt in der Abonnentendatenbank
  • Pull-Abonnement: der Abonnent soll regelmäßig beim Verteiler prüfen, ob neue Änderungen verfügbar sind, und dann die Daten in der Abonnementdatenbank selbst aktualisieren.
1
EXEC sp_helpsubscription;

Subskriptionsdatenbanken

Eine Zieldatenbank eines Replikationsmodells wird als Subskriptionsdatenbank bezeichnet.

Replikationsagenten

SQL Server Replication verwendet einen vordefinierten Satz eigenständiger Programme und Ereignisse, die als Agenten bezeichnet werden, um die mit Daten verbundenen Aufgaben auszuführen. Standardmäßig werden SQL Server-Replikationsagenten als geplante Aufträge unter SQL Server Agent ausgeführt. Replikationsagenten können auch über die Befehlszeile und von Anwendungen ausgeführt werden, die Replication Management Objects (RMO) verwenden. SQL Server Replication Agents können mit Replication Monitor und SQL Server Management Studio überwacht und verwaltet werden.

Replikations-Snapshot-Agent

Der Replikations-Snapshot-Agent wird mit allen Arten von SQL Server-Replikationstechnologien verwendet, da er den erforderlichen Datensatz bereitstellt, um die anfängliche Datensynchronisation der Publikationsdatenbank mit der Abonnementdatenbank durchzuführen. Es bereitet Schema- und Anfangsdaten veröffentlichter Artikel und Snapshot-Dateien vor und zeichnet Informationen zum Synchronisationstyp in der Verteilungsdatenbank auf.

Log Reader Agent

Der Log Reader Agent wird nur bei der Transaktionsreplikation verwendet. Es verschiebt Replikationstransaktionen aus dem Online-Transaktionslog der Publikationsdatenbank in die Verteilungsdatenbank.

Verteilungsagent

Der Verteilungsagent wird nur mit Replikations-Snapshot und transaktionaler SQL Server-Replikation verwendet. Dieser Agent wendet den anfänglichen Replikations-Snapshot auf die Abonnementdatenbank an, und später werden die Datenänderungen verfolgt und in der Verteilungsdatenbank aufgezeichnet und auf die Abonnementdatenbank angewendet.

Merge-Agent

Der Merge-Agent wird mit dem Merge-Replikationsmodell verwendet. Standardmäßig lädt der Merge-Agent Änderungen vom Abonnenten zum Herausgeber hoch und lädt sie dann vom Herausgeber zum Abonnenten herunter. Jedes Abonnement verfügt über einen eigenen Merge-Agent, der sowohl mit dem Herausgeber als auch mit dem Abonnenten eine Verbindung herstellt und beide aktualisiert. Der Merge-Agent wird entweder beim Verteiler für Push-Abonnements oder beim Abonnenten für Pull-Abonnements ausgeführt. Hier erfolgt die Synchronisation bidirektional. Die Datenkonflikte werden durch eine Reihe von Triggern behandelt, die den gesamten Prozess unterstützen

Zusammenfassung

Bisher haben wir eine exemplarische Darstellung einiger wichtiger Konzepte der SQL Server-Replikation gesehen. Außerdem werden T-SQL-Skripte zum Abfragen von Systemtabellen und gespeicherten Replikationsprozeduren angezeigt, um die meisten häufig gestellten Fragen zur SQL Server-Replikation zu beantworten.

Ich werde mehr über SQL Server-Replikation in den kommenden Artikeln diskutieren. Wenn Sie der Meinung sind, dass in diesem Artikel etwas verbessert werden kann, können Sie Ihren Kommentar unten hinterlassen …

Inhaltsverzeichnis

SQL Server Replication: Übersicht über Komponenten und Topographie

SQL Replication: Grundlegende Einrichtung und Konfiguration

Hinzufügen / Löschen von Artikeln aus vorhandenen Veröffentlichungen in SQL Server

So führen Sie einen schnellen geschätzten Vergleich von Daten in zwei großen SQL Server-Datenbanken durch, um festzustellen, ob sie gleich sind

SQL Server-Transaktionsreplikation: So initialisieren Sie ein Abonnement mithilfe einer SQL Server-Datenbanksicherung neu

So richten Sie ein benutzerdefiniertes SQL Server-Transaktionsreplikationsmodell mit einem zentralen Abonnenten und mehreren Publisher-Datenbanken ein

So richten Sie eine benutzerdefinierte SQL Server-Transaktionsreplikation mit einem zentralen Herausgeber und mehreren Subscriber-Datenbanken ein

So richten Sie eine DDL- und DML-SQL Server-Datenbank-Transaktionsreplikationslösung ein

So richten Sie eine plattformübergreifende transaktionale SQL Server-Replikation für die Datenbankberichterstattung unter Linux ein

SQL Server-Datenbankmigrationen ohne Datenverlust und keine Ausfallzeiten

Verwenden der Transaktionsdatenreplikation zum Wiedergeben und Testen von Produktionslasten auf einem Staging-Server

Einrichten der SQL Server-Datenbankreplikation für einen Berichtsserver

SQL Server-Transaktionsreplikation: So initialisieren Sie ein Abonnement mithilfe eines „Nur Replikationsunterstützung“ –TBA

SQL Server–Replikationsüberwachung und Festlegen von Warnungen mithilfe von PowerShell -TBA

  • Autor
  • Neueste Beiträge
Prashanth Jayaram
Ich bin ein Datenbanktechnologe mit mehr als 11 Jahren praktischer Erfahrung in Datenbanktechnologien. Ich bin Microsoft Certified Professional und mit einem Abschluss in Master of Computer Application gesichert.
Meine Spezialität liegt im Design & Implementierung von Hochverfügbarkeitslösungen und plattformübergreifender DB-Migration. Die Technologien, an denen derzeit gearbeitet wird, sind SQL Server, PowerShell, Oracle und MongoDB.
Alle Beiträge von Prashanth Jayaram anzeigen

Prashanth Jayaram
Neueste Beiträge von Prashanth Jayaram (alle anzeigen)
  • Ein kurzer Überblick über die Datenbanküberwachung in SQL – 28. Januar 2021
  • Einrichten der Azure-Datensynchronisierung zwischen Azure SQL-Datenbanken und lokaler SQL Server – 20. Januar 2021
  • Ausführen von Import-/Exportvorgängen für Azure SQL-Datenbanken mit PowerShell – 14. Januar 2021