Freigeben über


Mergereplikation

Gilt für:SQL Server

Die Mergereplikation beginnt in der Regel, wie die Transaktionsreplikation auch, mit einer Momentaufnahme der Veröffentlichungsdatenbankobjekte und -daten. Spätere Daten- und Schemaänderungen, die am Publisher und den Abonnenten vorgenommen werden, werden mit Triggern nachverfolgt. Ist eine Verbindung mit dem Netzwerk vorhanden, nimmt der Abonnent eine Synchronisierung mit dem Publisher vor und tauscht alle Zeilen aus, die sich seit der letzten Synchronisierung auf dem Publisher und dem Abonnenten geändert haben.

Die Mergereplikation wird typischerweise in Server-und-Client-Umgebungen verwendet. Ihre Verwendung empfiehlt sich in den folgenden Situationen:

  • Mehrere Abonnenten aktualisieren dieselben Daten zu verschiedenen Zeitpunkten und geben diese Änderungen an den Publisher und an andere Abonnenten weiter.

  • Abonnenten müssen Daten empfangen, Änderungen offline vornehmen und Änderungen später mit dem Publisher und anderen Abonnenten synchronisieren.

  • Jeder Abonnent benötigt eine andere Datenpartition.

  • Es kann zu Konflikten kommen, und Sie müssen in der Lage sein, die Konflikte zu erkennen und zu lösen.

  • Die Anwendung muss nicht auf die einzelnen Zwischenstufen von Datenänderungen, sondern nur auf das endgültige Ergebnis der Datenänderung zugreifen können. Wenn sich eine Zeile auf dem Abonnenten z. B. fünfmal ändert, bevor sie mit einem Publisher synchronisiert wird, ändert sich die Zeile auf dem Publisher lediglich einmal und übernimmt so nur die endgültige Änderung (in diesem Fall also den fünften Wert).

Die Mergereplikation ermöglicht es verschiedenen Standorten, autonom zu arbeiten und die Updates zu einem späteren Zeitpunkt zu einem einzelnen, einheitlichen Ergebnis zusammenzuführen. Da Aktualisierungen an mehreren Knoten vorgenommen werden, wurden möglicherweise dieselben Daten vom Publisher und von mehr als einem Abonnenten aktualisiert. Daher kann es beim Zusammenführen von Updates zu Konflikten kommen, für deren Lösung die Mergereplikation eine Reihe von Lösungsmöglichkeiten bietet.

Die Mergereplikation wird vom SQL Server-Momentaufnahme-Agent und dem Merge-Agent implementiert. Wenn die Veröffentlichung ungefiltert ist oder statische Filter verwendet, erstellt der Momentaufnahme-Agent eine einzelne Momentaufnahme. Wenn die Veröffentlichung parametrisierte Filter verwendet, erstellt der Momentaufnahme-Agent eine Momentaufnahme für jede Datenpartition. Der Merge-Agent weist die Anfangsmomentaufnahmen den Abonnenten zu. Er führt außerdem inkrementelle Datenänderungen zusammen, die beim Publisher oder bei den Abonnenten ausgeführt wurden, nachdem die Anfangsmomentaufnahme erstellt wurde, und erkennt und löst Konflikte entsprechend den von Ihnen konfigurierten Regeln.

Damit Änderungen nachverfolgt werden können, müssen Mergereplikationen (und Transaktionsreplikationen) mit Abonnements mit verzögertem Update jede Zeile in jeder veröffentlichten Tabelle eindeutig identifizieren können. Dazu fügt die Mergereplikation jeder Tabelle die Spalte rowguid hinzu, sofern die Tabelle nicht bereits eine Spalte mit dem Datentyp uniqueidentifier mit dem Eigenschaftensatz ROWGUIDCOL enthält (in welchem Fall diese Spalte verwendet wird). Wenn die Tabelle aus der Publikation gelöscht wird, wird die rowguid Spalte entfernt. Wenn eine vorhandene Spalte für die Nachverfolgung verwendet wurde, wird die Spalte nicht entfernt. Ein Filter muss die von der Replikation verwendete rowguidcol nicht einschließen, um Zeilen zu identifizieren. Die Funktion newid() wird als der Standard für die Spalte rowguid bereitgestellt, Kunden können jedoch für jede Zeile nach Bedarf einen guid-Wert verwenden. Geben Sie jedoch keinen Wert 00000000-0000-0000-0000-000000000000an.

Im folgenden Diagramm werden die in der Mergereplikation verwendeten Komponenten dargestellt.

Diagramm der Zusammenführungsreplikationskomponenten und des Datenflusses.

Konfigurieren der TLS 1.3-Verschlüsselung

SQL Server 2025 (17.x) unterstützt TDS 8.0 für die Zusammenführungsreplikation und umfasst Folgendes:

  • Konfigurieren von Replikations-Agents für die Verwendung der TLS 1.3-Verschlüsselung zwischen Instanzen von SQL Server 2025 (17.x) und zwischen SQL Server 2025 (17.x) und azure SQL Managed Instance.
  • Standardverschlüsselung für die Kommunikation zwischen Instanzen von verknüpften Servern in einer SQL Server 2025 (17.x)-Replikationstopologie. Verknüpfte Server in SQL Server 2025 (17.x) verwenden den OLE DB v19-Treiber, der standardmäßig auf Verschlüsselung festgelegt Encrypt=Mandatory ist.

In diesem Abschnitt