Freigeben über


Funktionsweise der Replikation

Die Mergereplikation mit Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) wird folgendermaßen ausgeführt:

  1. Daten werden auf einem Computer mit SQL Server veröffentlicht.
  2. Abonnements für die Veröffentlichungen werden erstellt.
  3. Daten auf dem Abonnenten werden aktualisiert.
  4. Daten werden synchronisiert.

Die folgende Tabelle definiert einige der in diesem Abschnitt verwendeten Begriffe.

Begriff Definition

Artikel

Eine Datenbanktabelle, die für die Replikation aktiviert ist.

Veröffentlichung

Eine Auflistung von Artikeln.

Partition

Ein bestimmter Zeilen- oder Spaltensatz in einer Veröffentlichung.

Verleger

Eine Datenbank, die eine Veröffentlichung durch Replikation verfügbar macht.

Abonnent

Eine Datenbank, die replizierte Daten empfängt und Datenänderungen an den Verleger zurückgeben kann.

Abonnement

Eine Anforderung, eine Kopie der Veröffentlichung an den Abonnenten zu übermitteln.

Abonnementdatenbank

Eine Datenbank, die von einem Verleger veröffentlichte Artikel empfängt.

Veröffentlichen von Daten

Veröffentlichungen geben an, welche Daten veröffentlicht werden. Veröffentlichungen sind normalerweise an verschiedene Benutzer oder Gruppen von Benutzern angepasst. Es kann vorkommen, dass alle Benutzer die gleichen Daten benötigen. Beispielsweise benötigt möglicherweise jeder Mitarbeiter eine Kopie des Mitarbeiterverzeichnisses des Unternehmens. In anderen Fällen benötigen unterschiedliche Gruppen verschiedene Partitionen von Daten. Verkaufsmitarbeiter brauchen beispielsweise einen anderen Datensatz als Kundendiensttechniker. Einzelne Benutzer benötigen möglicherweise auch speziell für sie gefilterte Daten. Das Personal der Verkaufsabteilung braucht zum Beispiel möglicherweise nur die Daten für die eigenen Kundenkonten.

Wenn Sie die Veröffentlichung erstellen, geben Sie an, welche Artikel sie enthalten soll. SQL Server-Veröffentlichungen können zwar andere Datenbankobjekte enthalten, z. B. gespeicherte Prozeduren, Sichten und benutzerdefinierte Funktionen, die SQL Server Compact 3.5-Replikation ignoriert diese Objekte jedoch und schließt nur Tabellen in das SQL Server Compact 3.5-Abonnement ein. Durch Filtern können Sie angeben, welche Zeilen und Spalten im Artikel enthalten sein sollen. Weitere Informationen finden Sie unter "Replikation" in der SQL Server-Onlinedokumentation.

Abonnieren von Veröffentlichungen

Nachdem Sie die Veröffentlichungen definiert haben, kann sie von einer Anwendung abonniert werden. Dies erfolgt programmgesteuert auf dem Gerät, durch Aufrufen der vom Replication-Objekt von SQL Server Compact 3.5 bzw. der SqlCeReplication-Klasse offen gelegten Methoden oder mithilfe des Assistenten für neue Abonnements in SQL Server Management Studio. Wenn das Abonnement erstellt ist, wird der Anfangssnapshot vom Verteiler in der Abonnementdatenbank auf dem Abonnenten angewendet.

Aktualisieren von Daten auf dem Abonnenten

Die Anwendung aktualisiert wahrscheinlich die Abonnementdatenbank. Mergereplikation ermöglicht das autonome Aktualisieren jeder Abonnementdatenbank. Aktualisierungen können unabhängig davon stattfinden, ob das Gerät mit dem Netzwerk verbunden ist. Jede SQL Server Compact 3.5-Datenbank verwendet Änderungsnachverfolgung, um auf dem SQL Server Compact 3.5-Abonnenten ausgeführte INSERT-, UPDATE- und DELETE-Anweisungen zu verfolgen. Es kann sowohl Nachverfolgung auf Zeilenebene als auch Nachverfolgung auf Spaltenebene verwendet werden.

Synchronisieren von Daten

Normalerweise verbinden Benutzer das Gerät periodisch mit dem Netzwerk. Diese Verbindungen ermöglichen es der Anwendung, auf dem Abonnenten vorgenommene Änderungen mit auf dem Verleger vorgenommenen Änderungen zu synchronisieren. Die Synchronisierung wird von der Anwendung durch Aufrufen einer Synchronisierungsmethoden gestartet. Die Methoden werden vom Replication-Objekt oder von der SqlCeReplication-Klasse offen gelegt. Der Synchronisierungsprozess besteht aus vier Schritten.

  1. Extrahieren von Änderungen und Erstellen der Eingabenachrichtendatei.
    Der Client-Agent für SQL Server Compact 3.5 extrahiert alle eingefügten, aktualisierten und gelöschten Datensätze aus der Abonnementdatenbank auf dem SQL Server Compact 3.5-Abonnenten und gibt sie über HTTP an den Server-Agent für SQL Server Compact 3.5 weiter. Der Server-Agent für SQL Server Compact 3.5 erstellt eine neue Eingabenachrichtendatei und schreibt die vom Client-Agent für SQL Server Compact 3.5 gesendeten Einfüge-, Aktualisierungs- und Löschänderungen in diese Datei.

  2. Ausführen des SQL Server-Synchronisierungsprozesses und Anwenden der Änderungen auf die Veröffentlichungsdatenbank.
    Wenn alle Anforderungen in die Eingabenachrichtendatei geschrieben wurden, startet der Server-Agent für SQL Server Compact 3.5 die SQL Server-Synchronisierung. Die SQL Server-Synchronisierung lädt den SQL Server Compact 3.5-Replikationsanbieter, der die Eingabenachrichtendatei liest und die SQL Server-Synchronisierung über an der SQL Server Compact 3.5-Abonnementdatenbank vorgenommene Änderungen informiert, die auf die Veröffentlichungsdatenbank auf dem Verleger angewendet werden müssen. Während des Verarbeitens erkennt die SQL Server-Synchronisierung Konflikte und löst diese auf. Ein Konflikt tritt auf, wenn mehr als ein Abonnent oder Verleger denselben Datensatz aktualisiert.

    Hinweis

    Die SQL Server-Synchronisierung löst Konflikte mithilfe von Konfliktlösern.Sie können die mit SQL Server bereitgestellten Konfliktlöser verwenden, um einfache Konfliktlösung für SQL Server Compact 3.5-Replikationsanwendungen zu implementieren. Es können aber auch benutzerdefinierte Konfliktlöser erstellt werden, um ausgefeiltere Lösungen zu implementieren. Weitere Informationen finden Sie unter Erkennung und Lösung von Replikationskonflikten.

  3. Erstellen der Ausgabenachrichtendatei.
    Die SQL Server-Synchronisierung informiert den SQL Server Compact 3.5-Replikationsanbieter über auf dem Verleger vorgenommene Änderungen, die auf die Abonnementdatenbank auf dem Gerät angewendet werden müssen. Der SQL Server Compact 3.5-Replikationsanbieter schreibt diese Änderungen in eine Ausgabenachrichtendatei auf dem Server, auf dem IIS ausgeführt wird.

  4. Lesen der Ausgabenachrichtendatei und Anwenden von Änderungen auf die SQL Server Compact 3.5-Abonnementdatenbank.
    Wenn der SQL Server-Synchronisierungsprozess abgeschlossen ist, sucht der Server-Agent für SQL Server Compact 3.5 die Ausgabenachrichtendatei, die vom SQL Server Compact 3.5-Replikationsanbieter erstellt wurde. Diese Datei enthält die Änderungen, die auf dem Verleger vorgenommen wurden und auf die Abonnementdatenbank auf dem Gerät angewendet werden müssen. Der Server-Agent für SQL Server Compact 3.5 liest die Ausgabenachrichtendatei und überträgt sie an den Client-Agent für SQL Server Compact 3.5 auf dem Gerät. Der Client-Agent für SQL Server Compact 3.5 wendet die Änderungen aus der Ausgabenachrichtendatei auf die SQL Server Compact 3.5-Abonnementdatenbank an.

    Hinweis

    Der Client-Agent für SQL Server Compact 3.5 verarbeitet sowohl die Eingabe- als auch die Ausgabenachrichtendatei in logischen Blöcken, während er aus der Abonnementdatenbank auf dem Gerät liest oder Änderungen auf sie anwendet.Da jede Nachrichtendatei auf diese Weise verarbeitet wird, muss der Client-Agent für SQL Server Compact 3.5 nicht die gesamte Nachrichtendatei auf dem Gerät schreiben und spart so Speicherplatz auf dem Gerät.

Nachdem der Client-Agent für SQL Server Compact 3.5 alle Änderungen in die Abonnementdatenbank auf dem Gerät eingefügt hat und sämtliche Konflikte aufgelöst wurden, sind Veröffentlichungs- und Abonnementdatenbank synchronisiert und die Daten zusammengeführt. Da jedoch ständig Aktualisierungen vorgenommen werden können, sind die Datenwerte auf dem Verleger und den Abonnenten möglicherweise nicht identisch.

Wichtig

Sie können nicht zwei Mergereplikationsprozesse gleichzeitig auf derselben Datenbank starten.