Überprüfen von replizierten Daten
Mithilfe von Transaktions- und Mergereplikationen kann überprüft werden, ob die Daten auf dem Abonnenten mit den Daten auf dem Verleger übereinstimmen. Die Überprüfung kann für bestimmte Abonnements oder für alle Abonnements für eine Veröffentlichung ausgeführt werden. Geben Sie einen der folgenden Überprüfungstypen an. Bei der nächsten Ausführung des Verteilungs-Agents oder des Merge-Agents werden die Daten dann überprüft:
Nur Zeilenanzahl. Bei diesem Typ wird lediglich überprüft, ob die Tabelle auf dem Abonnenten dieselbe Zeilenanzahl besitzt wie die Tabelle auf dem Verleger. Der Inhalt der Zeilen wird nicht geprüft. Die Überprüfung der Zeilenanzahl ist eine einfache Form der Überprüfung und hilft herauszufinden, ob es bei Ihren Daten Probleme gibt.
Zeilenanzahl und binäre Prüfsumme. Bei dieser Form der Überprüfung wird zusätzlich zum Vergleich der Zeilenanzahl auf dem Verleger und dem Abonnenten mithilfe des Prüfsummenalgorithmus eine Prüfsumme aller Daten berechnet. Ergibt sich bereits bei der Überprüfung der Zeilenanzahl eine Unstimmigkeit, wird die Prüfsummenberechnung nicht mehr ausgeführt.
Bei der Mergereplikation kann außer der Übereinstimmung der Daten auf dem Abonnenten und dem Verleger auch überprüft werden, ob die Daten auf den einzelnen Abonnenten richtig partitioniert sind. Weitere Informationen finden Sie unter Überprüfen von Partitionsinformationen für einen Mergeabonnenten.
So überprüfen Sie Daten
Wenn alle Artikel in einem Abonnement überprüft werden sollen, verwenden Sie SQL Server Management Studio, gespeicherte Prozeduren oder Replikationsverwaltungsobjekte (RMO). Wenn nur bestimmte Artikel in einer Momentaufnahme- oder Transaktionsveröffentlichung überprüft werden sollen, müssen Sie gespeicherte Prozeduren verwenden.
Microsoft SQL Server Management Studio: Vorgehensweise: Überprüfen von Daten auf dem Abonnenten (SQL Server Management Studio)
Replikationsprogrammierung mit Transact-SQL:Vorgehensweise: Überprüfen von Daten auf dem Abonnenten (Replikationsprogrammierung mit Transact-SQL)
RMO-Programmierung (Replikationsverwaltungsobjekte):Vorgehensweise: Überprüfen von Daten auf dem Abonnenten (RMO-Programmierung)
Ergebnisse der Datenüberprüfung
Nach abgeschlossener Überprüfung protokolliert der Verteilungs-Agent bzw. der Merge-Agent Meldungen zum Erfolg bzw. Misserfolg der Überprüfung (die Replikation vermerkt nicht, bei welchen Zeilen das Ergebnis negativ war). Diese Meldungen können in SQL Server Management Studio, im Replikationsmonitor und in den Replikationssystemtabellen angezeigt werden. In den oben aufgeführten Themen zur Vorgehensweise wird erläutert, wie Sie die Überprüfung ausführen und die Ergebnisse anzeigen können.
Bei negativem Überprüfungsergebnis sollten folgende Punkte bedacht werden:
Konfigurieren Sie die Replikationswarnung Replikation: Fehler bei der Datenüberprüfung auf dem Abonnenten, damit Sie bei einem negativen Überprüfungsergebnis benachrichtigt werden. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren von vordefinierten Replikationswarnungen (SQL Server Management Studio).
Ist ein negatives Überprüfungsergebnis ein Problem für Ihre Anwendung? Falls ja, aktualisieren Sie die Daten manuell, damit sie synchronisiert sind, oder initialisieren Sie das Abonnement erneut:
Daten können mit dem Hilfsprogramm "tablediff" aktualisiert werden. Weitere Informationen zum Verwenden dieses Hilfsprogramms finden Sie unter Vorgehensweise: Überprüfen replizierter Tabellen auf Unterschiede (Replikationsprogrammierung).
Weitere Informationen zum erneuten Initialisieren finden Sie unter Erneutes Initialisieren eines Abonnements.
Überlegungen zur Datenüberprüfung
Bedenken Sie im Zusammenhang mit dem Überprüfen von Daten Folgendes:
Vor dem Überprüfen von Daten müssen Sie sämtliche Aktualisierungsaktivitäten auf den Abonnenten beenden (die Aktivitäten auf dem Verleger müssen für die Überprüfung nicht beendet werden).
Weil Prüfsummen und binäre Prüfsummen beim Überprüfen eines großen Datensatzes große Mengen der Prozessorressourcen benötigen, sollten Sie die Überprüfung so planen, dass sie zum Zeitpunkt der niedrigsten Aktivität auf den Servern ausgeführt wird, die für die Replikation verwendet werden.
Die Replikation überprüft lediglich Tabellen. Ein Abgleich reiner Schemaartikel (wie z. B. gespeicherter Prozeduren) auf dem Verleger und dem Abonnenten erfolgt nicht.
Binäre Prüfsummen können für jede veröffentlichte Tabelle verwendet werden. Die Prüfsumme kann jedoch keine Tabellen mit Spaltenfiltern bzw. logische Tabellenstrukturen überprüfen, bei denen sich die Spaltenoffsets unterscheiden (Ursache dafür sind ALTER TABLE-Anweisungen, die Spalten löschen oder hinzufügen).
Die Überprüfung der Replikation verwendet die checksum-Funktion und die binary_checksum-Funktion. Weitere Informationen zum Verhalten finden Sie unter CHECKSUM (Transact-SQL) und BINARY_CHECKSUM (Transact-SQL).
Die Überprüfung durch binäre Prüfsummen oder Prüfsummen kann dann fälschlicherweise einen Fehler ausgeben, wenn auf dem Abonnenten andere Datentypen vorhanden sind als auf dem Verleger. Dieser Fall kann eintreten, wenn Sie eine der folgenden Aufgaben ausführen:
Sie legen explizit Schemaoptionen zum Zuordnen von Datentypen für frühere Versionen von SQL Server fest. Weitere Informationen zum Zuordnen von Datentypen finden Sie unter Verwenden mehrerer Versionen von SQL Server in einer Replikationstopologie.
Sie legen den Veröffentlichungskompatibilitätsgrad für eine Mergeveröffentlichung auf eine frühere Version von SQL Server fest, und veröffentlichte Tabellen enthalten mindestens einen Datentyp, der für diese Version zugeordnet werden muss. Weitere Informationen zum Zuordnen von Datentypen und zum Veröffentlichungskompatibilitätsgrad finden Sie unter Verwenden mehrerer Versionen von SQL Server in einer Replikationstopologie.
Sie initialisieren ein Abonnement manuell und verwenden auf dem Abonnenten andere Datentypen.
Bei der Transaktionsreplikation werden Überprüfungen mithilfe der binären Prüfsumme bzw. der Prüfsumme für transformierbare Abonnements nicht unterstützt.
Bei Daten, die auf Nicht-SQL Server-Abonnenten repliziert wurden, kann keine solche Überprüfung stattfinden.
Funktionsweise der Datenüberprüfung
SQL Server überprüft Daten, indem es auf dem Verleger die Zeilenanzahl bzw. eine Prüfsumme berechnet und dann diese Werte mit der für den Abonnenten berechneten Zeilenanzahl bzw. Prüfsumme vergleicht. Bei der Berechnung der Prüfsumme wird ein Wert für die gesamte Veröffentlichungstabelle und ein Wert für die gesamte Abonnementtabelle berechnet (die Daten in der text-, ntext- bzw. image-Spalte fließen nicht mit ein).
Während diese Berechnungen ausgeführt werden, werden die Tabellen, deren Zeilenanzahl bzw. Prüfsumme berechnet wird, vorübergehend für den gemeinsamen Zugriff gesperrt. Diese Berechnungen dauern aber nicht lange, sodass die Sperren meist schon innerhalb weniger Sekunden wieder aufgehoben werden.
Bei der Überprüfung anhand von binären Prüfsummen werden nicht die physischen Zeilen auf der Datenseite, sondern die einzelnen Spalten einer 32-Bit-Redundanzüberprüfung (Redundancy Check, CRC) unterzogen. Dadurch können die Spalten mit der Tabelle in einer beliebigen physischen Reihenfolge auf der Datenseite dargestellt werden, es wird aber trotzdem dieselbe CRC für die Zeile berechnet. Die Überprüfung anhand von binären Prüfsummen kann verwendet werden, wenn Zeilen- oder Spaltenfilter auf die Veröffentlichung angewendet wurden.
Siehe auch