Ü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 Publikation 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 der in Microsoft SQL Server 2000 eingeführte Prüfsummenalgorithmus verwendet, um eine Prüfsumme aller Daten zu berechnen. Ergibt sich bereits bei der Überprüfung der Zeilenanzahl eine Unstimmigkeit, wird die Prüfsummenberechnung nicht mehr ausgeführt.
- Zeilenanzahl und Prüfsumme. Diese Option ist als veraltet markiert und sollte nur noch für Abonnenten verwendet werden, auf denen Microsoft SQL Server 7.0 ausgeführt wird. Der Prüfungsansatz ist mit dem Ansatz der vorherigen Option identisch, wobei aber zur Berechnung der Prüfsumme der Prüfsummenalgorithmus verfügbar in SQL Server 7.0 verwendet wird. Weitere Informationen dazu finden Sie im Abschnitt zur Funktionsweise der Datenüberprüfung in diesem Thema.
Bei der Mergereplikation kann außer der Übereinstimmung der Daten auf dem Abonnenten und dem Verleger auch überprüft werden, dass 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 Snapshot- oder Transaktionspublikation ü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:How to: Validate Data at the Subscriber (Replication Transact-SQL Programming)
- RMO-Programmierung (Replikationsverwaltungsobjekte):How to: Validate Data at the Subscriber (RMO Programming)
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 tablediff (Dienstprogramm) aktualisiert werden. Weitere Informationen zum Verwenden dieses Dienstprogramms finden Sie unter How to: Compare Replicated Tables for Differences (Replication Programming).
- 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 aber keine Tabellen mit Spaltenfiltern bzw. logische Tabellenstrukturen überprüfen, bei denen die Spaltenoffsets sich unterscheiden (Ursache dafür sind ALTER TABLE-Anweisungen, die Spalten löschen oder hinzufügen).
- Daten in text-, ntext- bzw. image-Spalten fließen nicht in die Prüfsummenberechnungen ein.
- Die Überprüfung durch binäre Prüfsummen oder Prüfsummen kann dann irrtümlicherweise einen Fehler ausgeben, wenn auf dem Abonnenten andere Datentypen vorhanden sind als auf dem Verleger. Dies kann passieren, wenn Sie ein Abonnement manuell initialisieren und auf dem Abonnenten andere Datentypen verwenden oder wenn Sie die folgenden Schemaoptionen für einen Artikel verwenden:
- Benutzerdefinierte Typen Basisdatentypen zuordnen (Schemaoption 0x20)
- xmlntext zuordnen (Schemaoption 0x10000000)
- nvarchar(max) und varbinary(max) Datentypen zuordnen, die in früheren Versionen von SQL Server unterstützt wurden (Schemaoption 0x20000000).
Weitere Informationen zu den Schemaoptionen finden Sie unter Veröffentlichen von Daten und Datenbankobjekten.
- 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 Publikationstabelle und ein Wert für die gesamte Abonnementtabelle berechnet (die Daten in den text-, ntext- bzw. image-Spalten 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 physikalischen 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 physikalischen 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 Publikation angewendet wurden. Abonnenten, auf denen SQL Server 7.0 ausgeführt wird, müssen den Prüfsummenalgorithmus von SQL Server 7.0 verwenden, bei dem andere CRC-Werte generiert werden als beim dem Prüfsummenalgorithmus in SQL Server 2000 und später. Die Prüfsummenroutinen in SQL Server 7.0 können weder Tabellen mit Spaltenfiltern noch logische Tabellenstrukturen überprüfen, bei denen die Spaltenoffsets sich unterscheiden (Ursache dafür sind ALTER TABLE-Anweisungen, die Spalten löschen oder hinzufügen).
Siehe auch
Konzepte
Bewährte Methoden für die Replikationsverwaltung