Überprüfen von replizierten DatenValidate Replicated Data

Bei der Transaktions- und der Mergereplikation können Sie überprüfen, ob die Daten auf dem Abonnenten mit denen auf dem Verleger übereinstimmen.Transactional and merge replication allow you to validate that data at the Subscriber matches data at the Publisher. Die Überprüfung kann für bestimmte Abonnements oder für alle Abonnements für eine Veröffentlichung ausgeführt werden.Validation can be performed for specific subscriptions or for all subscriptions to a publication. 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:Specify one of the following validation types and the Distribution Agent or Merge Agent will validate data the next time it runs:

  • Nur Zeilenanzahl.Row count only. 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.This validates whether the table at the Subscriber has the same number of rows as the table at the Publisher, but does not validate that the content of the rows matches. Die Überprüfung der Zeilenanzahl bietet einen Überprüfungsansatz, der kaum Ressourcen beansprucht und Sie Probleme bei den Daten erkennen lässt.Row count validation provides a lightweight approach to validation that can make you aware of issues with your data.

  • Zeilenanzahl und binäre Prüfsumme.Row count and binary checksum. 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.In addition to taking a count of rows at the Publisher and Subscriber, a checksum of all the data is calculated using the checksum algorithm. Ist die Zeilenanzahl fehlerhaft, wird die Berechnung der Prüfsumme nicht ausgeführt.If the row count fails, the checksum is not performed.

    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.In addition to validating that data at the Subscriber and Publisher match, merge replication provides the ability to validate that data is partitioned correctly for each Subscriber. Weitere Informationen finden Sie unter Überprüfen von Partitionsinformationen für einen Mergeabonnenten.For more information, see Validate Partition Information for a Merge Subscriber.

    So überprüfen Sie DatenTo validate data

    Wenn alle Artikel in einem Abonnement überprüft werden sollen, verwenden Sie SQL Server Management StudioSQL Server Management Studio, gespeicherte Prozeduren oder Replikationsverwaltungsobjekte (RMO).To validate all articles in a subscription, use SQL Server Management StudioSQL Server Management Studio, stored procedures or Replication Management Objects (RMO). Weitere Informationen finden Sie unter Validate Data at the Subscriber.For more information, see Validate Data at the Subscriber. Wenn nur bestimmte Artikel in einer Momentaufnahme- oder Transaktionsveröffentlichung überprüft werden sollen, müssen Sie gespeicherte Prozeduren verwenden.To validate individual articles in snapshot and transactional publications, you must use stored procedures.

Ergebnisse der DatenüberprüfungData Validation Results

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).When validation is complete, the Distribution Agent or Merge Agent logs messages regarding success or failure (replication does not report which rows failed). Diese Meldungen können in SQL Server Management StudioSQL Server Management Studio, im Replikationsmonitor und in den Replikationssystemtabellen angezeigt werden.These messages can be viewed in SQL Server Management StudioSQL Server Management Studio, Replication Monitor, and replication system tables. Im oben aufgeführten Themen zur Vorgehensweise wird erläutert, wie Sie die Überprüfung ausführen und die Ergebnisse anzeigen können.The how-to topic listed above demonstrates how to run validation and view the results.

Bei negativem Überprüfungsergebnis sollten folgende Punkte bedacht werden:To handle validation failures, consider the following:

Überlegungen zur DatenüberprüfungConsiderations for Data Validation

Bedenken Sie im Zusammenhang mit dem Überprüfen von Daten Folgendes:Take the following issues into consideration when validating data:

  • Vor dem Überprüfen von Daten müssen Sie sämtliche Updateaktivitäten auf den Abonnenten beenden (die Aktivitäten auf dem Verleger müssen für die Überprüfung nicht beendet werden).You must stop all update activity at Subscribers before validating data (it is not necessary to stop activity at the Publisher when validation is occurring).

  • 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.Because checksums and binary checksums can require large amounts of processor resources when validating a large data set, you should schedule validation to occur when there is the least activity on the servers used in replication.

  • Die Replikation überprüft lediglich Tabellen. Ein Abgleich reiner Schemaartikel (wie z. B. gespeicherter Prozeduren) auf dem Verleger und dem Abonnenten erfolgt nicht.Replication validates tables only; it does not validate whether schema only articles (such as stored procedures) are the same at the Publisher and Subscriber.

  • Binäre Prüfsummen können für jede veröffentlichte Tabelle verwendet werden.Binary checksum can be used with any published table. 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).Checksum cannot validate tables with column filters, or logical table structures where column offsets differ (due to ALTER TABLE statements that drop or add columns).

  • Die Überprüfung der Replikation verwendet die checksum -Funktion und die binary_checksum -Funktion.Replication validation uses the checksum and binary_checksum functions. Informationen zum Verhalten finden Sie unter CHECKSUM (Transact-SQL) und BINARY_CHECKSUM (Transact-SQL).For information about their behavior, see CHECKSUM (Transact-SQL) and 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.Validation by using binary checksum or checksum can incorrectly report a failure if data types are different at the Subscriber than they are at the Publisher. Dieser Fall kann eintreten, wenn Sie eine der folgenden Aufgaben ausführen:This can occur if you do any one of the following:

    • Sie legen explizit Schemaoptionen zum Zuordnen von Datentypen für frühere Versionen von SQL ServerSQL Serverfest.Explicitly set schema options to map data types for earlier versions of SQL ServerSQL Server.

    • Sie legen den Veröffentlichungskompatibilitätsgrad für eine Mergeveröffentlichung auf eine frühere Version von SQL ServerSQL Serverfest, und veröffentlichte Tabellen enthalten mindestens einen Datentyp, der für diese Version zugeordnet werden muss.Set the publication compatibility level for a merge publication to an earlier version of SQL ServerSQL Server, and published tables contain one or more data types that must be mapped for this version.

    • Sie initialisieren ein Abonnement manuell und verwenden auf dem Abonnenten andere Datentypen.Manually initialize a subscription and are using different data types at the Subscriber.

  • Bei der Transaktionsreplikation werden Überprüfungen mithilfe der binären Prüfsumme bzw. der Prüfsumme für transformierbare Abonnements nicht unterstützt.Binary checksum and checksum validations are not supported for transformable subscriptions for transactional replication.

  • Bei Daten, die auf Nicht- SQL ServerSQL Server -Abonnenten repliziert wurden, kann keine solche Überprüfung stattfinden.Validation is not supported for data replicated to non- SQL ServerSQL Server Subscribers.

Funktionsweise der DatenüberprüfungHow Data Validation Works

SQL ServerSQL 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. validates data by calculating a row count or a checksum at the Publisher and then comparing those values to the row count or checksum calculated at the Subscriber. 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).One value is calculated for the entire publication table and one value is calculated for the entire subscription table, but data in text, ntext, or image columns is not included in the calculations.

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.While the calculations are performed, shared locks are placed temporarily on tables for which row counts or checksums are being run, but the calculations are completed quickly and the shared locks removed, usually in a matter of seconds.

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.When binary checksums are used, 32-bit redundancy check (CRC) occurs on a column-by-column basis rather than a CRC on the physical row on the data page. 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.This allows the columns with the table to be in any order physically on the data page, but still compute to the same CRC for the row. Die Überprüfung anhand von binären Prüfsummen kann verwendet werden, wenn Zeilen- oder Spaltenfilter auf die Veröffentlichung angewendet wurden.Binary checksum validation can be used when there are row or column filters on the publication.

Siehe auchSee Also

Best Practices for Replication AdministrationBest Practices for Replication Administration