Überprüfen von replizierten DatenValidate Replicated Data

Anwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL DatabaseAnwendungsbereich:Applies to: JaSQL ServerSQL Server (alle unterstützten Versionen) yesSQL ServerSQL Server (all supported versions) JaAzure SQL-DatenbankAzure SQL DatabaseYesAzure SQL-DatenbankAzure SQL Database

In diesem Thema wird beschrieben, wie Daten beim Abonnenten in SQL Server 2019 (15.x)SQL Server 2019 (15.x) mit SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLoder Replikationsverwaltungsobjekten (RMO) überprüft werden.This topic describes how to validate data at the Subscriber in SQL Server 2019 (15.x)SQL Server 2019 (15.x) by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or Replication Management Objects (RMO).

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.

Hinweis

Azure SQL Managed Instance kann als Herausgeber, Verleger und Abonnent der Momentaufnahmen- und Transaktionsreplikation fungieren.Azure SQL Managed Instance can be a publisher, distributor, and subscriber for snapshot and transactional replication. Datenbanken in Azure SQL-Datenbank können nun Pushabonnenten der Momentaufnahmen- und Transaktionsreplikation sein.Databases in Azure SQL Database can only be push subscribers for snapshot and transactional replication. Weitere Informationen finden Sie unter Transaktionsreplikation mit Azure SQL-Datenbank.For more information, see Transactional replication with Azure SQL Database.

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.

Der Prozess der Datenüberprüfung besteht aus drei Teilen:Validating data is a three-part process:

  1. Zunächst müssen die Abonnements für eine Veröffentlichung, die überprüft werden sollen, gekennzeichnet werden.A single subscription or all subscriptions to a publication are marked for validation. Die Abonnements, die überprüft werden sollen, können Sie in den Dialogfeldern Abonnement überprüfen, Abonnements überprüfenund Alle Abonnements überprüfen , die über den Ordner Lokale Veröffentlichungen und Lokale Abonnements in MicrosoftMicrosoftSQL Server Management StudioSQL Server Management Studioverfügbar sind.Mark subscriptions for validation in the Validate Subscription, Validate Subscriptions, and Validate All Subscriptions dialog boxes, which are available from the Local Publications folder and the Local Subscriptions folder in MicrosoftMicrosoftSQL Server Management StudioSQL Server Management Studio. Abonnements können darüber hinaus auch auf der Registerkarte Alle Abonnements , auf der Registerkarte Überwachungsliste für Abonnements und über den Veröffentlichungsknoten im Replikationsmonitor gekennzeichnet werden.You can also mark subscriptions from the All Subscriptions tab, the Subscription Watch List tab, and the publications node in Replication Monitor. Informationen zum Starten des Replikationsmonitors finden Sie unter Starten des Replikationsmonitors.For information about starting Replication Monitor, see Start the Replication Monitor.

  2. Ein Abonnement wird bei der nächsten Synchronisierung durch den Verteilungs-Agent (für Transaktionsreplikationen) oder durch den Merge-Agent (für Mergereplikationen) überprüft.A subscription is validated the next time it is synchronized by the Distribution Agent (for transactional replication) or the Merge Agent (for merge replication). Der Verteilungs-Agent wird in der Regel kontinuierlich ausgeführt. In diesem Fall erfolgt die Überprüfung sofort. Der Merge-Agent wird in der Regel bei Bedarf ausgeführt, und die Überprüfung erfolgt nach der Ausführung des Agents.The Distribution Agent typically runs continuously, in which case validation occurs immediately; the Merge Agent typically runs on demand, in which case validation occurs after you run the agent.

  3. Anzeigen der Überprüfungsergebnisse:View the validation results:

    • In den Detailfenstern im Replikationsmonitor auf der Registerkarte Verlauf Verteiler zu Abonnent für die Transaktionsreplikation und auf der Registerkarte Synchronisierungsverlauf für die Mergereplikation.In the detail windows in Replication Monitor: on the Distributor to Subscriber History tab for transactional replication and the Synchronization History tab for merge replication.
    • Im Dialogfeld Synchronisierungsstatus anzeigen in Management StudioManagement Studio.In the View Synchronization Status dialog box in Management StudioManagement Studio.

Überlegungen und EinschränkungenConsiderations and restrictions

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.
  • Die Prozeduren für den Replikationsmonitor sind nur für Pushabonnements geeignet, da Pullabonnements im Replikationsmonitor nicht synchronisiert werden können.The procedures for Replication Monitor are for push subscriptions only because pull subscriptions cannot be synchronized in Replication Monitor. Sie können ein Abonnement jedoch für die Überprüfung markieren und die Überprüfungsergebnisse für Pullabonnements im Replikationsmonitor anzeigen.However, you can mark a subscription for validation and view validation results for pull subscriptions in Replication Monitor.
  • In den Überprüfungsergebnissen wird angezeigt, ob die Überprüfung erfolgreich war oder fehlgeschlagen ist, es wird jedoch nicht angegeben, in welchen Zeilen die Überprüfung beim Auftreten eines Fehlers fehlgeschlagen ist.The validation results indicate whether validation succeeded or failed, but do not specify which rows failed validation if a failure occurred. Verwenden Sie das Hilfsprogramm tablediff Utility, um die Daten auf dem Verleger und auf dem Abonnenten zu vergleichen.To compare data at the Publisher and Subscriber, use the tablediff Utility. Informationen zum Verwenden dieses Hilfsprogramms finden Sie unter Überprüfen replizierter Tabellen auf Unterschiede (Replikationsprogrammierung).For more information about using this utility with replicated data, see Compare Replicated Tables for Differences (Replication Programming).

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:

Artikel in der TransaktionsreplikationArticles in Transactional Replication

Verwendung von SQL Server Management StudioUsing SQL Server Management Studio

  1. Stellen Sie in SQL Server Management StudioSQL Server Management Studioeine Verbindung mit dem Verleger her, und erweitern Sie dann den Serverknoten.Connect to the Publisher in SQL Server Management StudioSQL Server Management Studio, and then expand the server node.
  2. Erweitern Sie den Ordner Replikation , und erweitern Sie dann den Ordner Lokale Veröffentlichungen .Expand the Replication folder, and then expand the Local Publications folder.
  3. Klicken Sie mit der rechten Maustaste auf die Veröffentlichung, deren Abonnements Sie überprüfen möchten, und klicken Sie dann auf Abonnements überprüfen.Right-click the publication for which you want to validate subscriptions, and then click Validate Subscriptions.
  4. Wählen Sie im Dialogfeld Abonnements überprüfen die zu überprüfenden Abonnements aus:In the Validate Subscriptions dialog box, select which subscriptions to validate:
    • Wählen Sie Alle SQL Server-Abonnements überprüfenaus.Select Validate all SQL Server subscriptions.
    • Wählen Sie Folgende Abonnements überprüfenaus, und wählen Sie dann ein oder mehrere Abonnements aus.Select Validate the following subscriptions, and then select one or more subscriptions.
  5. Um den Typ der durchzuführenden Überprüfung (Zeilenanzahl oder Zeilenanzahl und Prüfsumme) anzugeben, klicken Sie auf Überprüfungsoptionen, und geben Sie dann im Dialogfeld Optionen für die Abonnementüberprüfung die gewünschten Optionen an.To specify the type of validation to perform (row count, or row count and checksum) click Validation Options, and then specify options in the Subscription Validation Options dialog box.
  6. Klicken Sie auf OK.Click OK.
  7. Zeigen Sie die Überprüfungsergebnisse Im Replikationsmonitor oder im Dialogfeld Synchronisierungsstatus anzeigen an:View validation results in Replication Monitor or the View Synchronization Status dialog box. Führen Sie für jedes Abonnement folgende Vorgänge aus:For each subscription:
    1. Erweitern Sie die Veröffentlichung, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierungsstatus anzeigen.Expand the publication, right-click the subscription, and then click View Synchronization Status.
    2. Wenn der Agent nicht ausgeführt wird, klicken Sie im Dialogfeld Synchronisierungsstatus anzeigen auf Start .If the agent is not running click Start in the View Synchronization Status dialog box. Im Dialogfeld werden Meldungen mit Informationen zur Überprüfung angezeigt.The dialog box will display informational messages regarding validation.
      Wenn keine Meldungen bezüglich der Überprüfung angezeigt werden, hat der Agent bereits eine nachfolgende Meldung protokolliert.If you do not see any messages regarding validation, the agent has already logged a subsequent message. Zeigen Sie die Überprüfungsergebnisse in diesem Fall im Replikationsmonitor an.In this case, view the validation results in Replication Monitor. Weitere Informationen finden Sie in den Prozeduren zu den Verfahrensweisen im Replikationsmonitor in diesem Thema.For more information, see the Replication Monitor how to procedures in this topic.

Verwenden von Transact-SQLUsing Transact-SQL

Alle ArtikelAll articles

  1. Führen Sie beim Verleger für die Veröffentlichungsdatenbank sp_publication_validation (Transact-SQL) aus.At the Publisher on the publication database, execute sp_publication_validation (Transact-SQL). Geben Sie @publication und einen der folgenden Werte für @rowcount_only an:Specify @publication and one of the following values for @rowcount_only:

    • 1 - nur Überprüfung der Zeilenanzahl (Standardeinstellung)1 - rowcount check only (the default)
    • 2 - Zeilenanzahl und binäre Prüfsumme2 - rowcount and binary checksum.

    Hinweis

    Beim Ausführen von sp_publication_validation (Transact-SQL), wird sp_article_validation (Transact-SQL) für jeden Artikel in der Publikation ausgeführt.When you execute sp_publication_validation (Transact-SQL), sp_article_validation (Transact-SQL) is executed for each article in the publication. Um sp_publication_validation (Transact-SQL) erfolgreich auszuführen, benötigen Sie SELECT-Berechtigungen für alle Spalten in den veröffentlichten Basistabellen.To successfully execute sp_publication_validation (Transact-SQL), you must have SELECT permissions on all columns in the published base tables.

  2. (Optional) Starten Sie den Verteilungs-Agent für jedes Abonnement, wenn er nicht bereits ausgeführt wird.(Optional) Start the Distribution Agent for each subscription if it is not already running. Weitere Informationen finden Sie unter Synchronize a Pull Subscription und Synchronize a Push Subscription.For more information, see Synchronize a Pull Subscription and Synchronize a Push Subscription.

  3. Überprüfen Sie die Agentausgabe für das Ergebnis der Überprüfung.Check the agent output for the result of the validation.

Einzelner ArtikelSingle article

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_article_validation (Transact-SQL) aus.At the Publisher on the publication database, execute sp_article_validation (Transact-SQL). Geben Sie @publication, den Namen des Artikels für @article und einen der folgenden Werte für @rowcount_only an:Specify @publication, the name of the article for @article, and one of the following values for @rowcount_only:

    • 1 - nur Überprüfung der Zeilenanzahl (Standardeinstellung)1 - Rowcount check only (the default)
    • 2 - Zeilenanzahl und binäre Prüfsumme2 - Rowcount and binary checksum.

    Hinweis

    Um sp_article_validation (Transact-SQL) erfolgreich auszuführen, benötigen Sie SELECT-Berechtigungen für alle Spalten in den veröffentlichten Basistabellen.To successfully execute sp_article_validation (Transact-SQL), you must have SELECT permissions on all columns in the published base table.

  2. (Optional) Starten Sie den Verteilungs-Agent für jedes Abonnement, wenn er nicht bereits ausgeführt wird.(Optional) Start the Distribution Agent for each subscription if it is not already running. Weitere Informationen finden Sie unter Synchronize a Pull Subscription und Synchronize a Push Subscription.For more information, see Synchronize a Pull Subscription and Synchronize a Push Subscription.

  3. Überprüfen Sie die Agentausgabe für das Ergebnis der Überprüfung.Check the agent output for the result of the validation.

Einzelner AbonnentSingle subscriber

  1. Öffnen Sie auf dem Verleger für die Veröffentlichungsdatenbank eine explizite Transaktion mit BEGIN TRANSACTION (Transact-SQL).At the Publisher on the publication database, open an explicit transaction using BEGIN TRANSACTION (Transact-SQL).

  2. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_marksubscriptionvalidation (Transact-SQL) aus.At the Publisher on the publication database, execute sp_marksubscriptionvalidation (Transact-SQL). Geben Sie die Veröffentlichung für @publication, den Namen des Abonnenten für @subscriber und den Namen der Abonnementdatenbank für @destination_db an.Specify the publication for @publication, the name of the Subscriber for @subscriber, and the name of the subscription database for @destination_db.

  3. (Optional) Wiederholen Sie Schritt 2 für jedes zu überprüfende Abonnement.(Optional) Repeat step 2 for each subscription being validated.

  4. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_article_validation (Transact-SQL) aus.At the Publisher on the publication database, execute sp_article_validation (Transact-SQL). Geben Sie @publication, den Namen des Artikels für @article und einen der folgenden Werte für @rowcount_only an:Specify @publication, the name of the article for @article, and one of the following values for @rowcount_only:

    • 1 - nur Überprüfung der Zeilenanzahl (Standardeinstellung)1 - Rowcount check only (the default)
    • 2 - Zeilenanzahl und binäre Prüfsumme2 - Rowcount and binary checksum.

    Hinweis

    Um sp_article_validation (Transact-SQL) erfolgreich auszuführen, benötigen Sie SELECT-Berechtigungen für alle Spalten in den veröffentlichten Basistabellen.To successfully execute sp_article_validation (Transact-SQL), you must have SELECT permissions on all columns in the published base table.

  5. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank mit COMMIT TRANSACTION (Transact-SQL) einen Commit für die Transaktion aus.At the Publisher on the publication database, commit the transaction using COMMIT TRANSACTION (Transact-SQL).

  6. (Optional) Wiederholen Sie die Schritte 1 bis 5 für jeden zu überprüfenden Artikel.(Optional) Repeat steps 1 through 5 for each article being validated.

  7. (Optional) Starten Sie den Verteilungs-Agent, wenn er nicht bereits ausgeführt wird.(Optional) Start the Distribution Agent if it is not already running. Weitere Informationen finden Sie unter Synchronize a Pull Subscription und Synchronize a Push Subscription.For more information, see Synchronize a Pull Subscription and Synchronize a Push Subscription.

  8. Überprüfen Sie die Agentausgabe für das Ergebnis der Überprüfung.Check the agent output for the result of the validation. Weitere Informationen finden Sie unter Validate Data at the Subscriber.For more information, see Validate Data at the Subscriber.

Aller Pushabonnements an TransaktionsveröffentlichungAll push subscriptions to a transactional publication

Verwenden des ReplikationsmonitorsUsing Replication Monitor

  1. Erweitern Sie im Replikationsmonitor im linken Bereich eine Verlegergruppe, und erweitern Sie dann einen Verleger.In Replication Monitor, expand a Publisher group in the left pane, and then expand a Publisher.

  2. Klicken Sie mit der rechten Maustaste auf die Veröffentlichung, deren Abonnements Sie überprüfen möchten, und klicken Sie dann auf Abonnements überprüfen.Right-click the publication for which you want to validate subscriptions, and then click Validate Subscriptions.

  3. Wählen Sie im Dialogfeld Abonnements überprüfen die zu überprüfenden Abonnements aus:In the Validate Subscriptions dialog box, select which subscriptions to validate:

    • Wählen Sie Alle SQL Server-Abonnements überprüfenaus.Select Validate all SQL Server subscriptions.
    • Wählen Sie Folgende Abonnements überprüfenaus, und wählen Sie dann ein oder mehrere Abonnements aus.Select Validate the following subscriptions, and then select one or more subscriptions.
  4. Um den Typ der durchzuführenden Überprüfung (Zeilenanzahl oder Zeilenanzahl und Prüfsumme) anzugeben, klicken Sie auf Überprüfungsoptionen, und geben Sie dann im Dialogfeld Optionen für die Abonnementüberprüfung die gewünschten Optionen an.To specify the type of validation to perform (row count, or row count and checksum) click Validation Options, and then specify options in the Subscription Validation Options dialog box.

  5. Klicken Sie auf OK.Click OK.

  6. Klicken Sie auf die Registerkarte Alle Abonnements .Click the All Subscriptions tab.

  7. Zeigen Sie die Überprüfungsergebnisse an.View validation results. Führen Sie für jedes Pushabonnement folgende Vorgänge aus:For each push subscription:

    1. Wenn der Agent nicht ausgeführt wird, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierung starten.If the agent is not running, right-click the subscription, and then click Start Synchronizing.
    2. Klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Details anzeigen.Right-click the subscription, and then click View Details.
    3. Zeigen Sie die Informationen auf der Registerkarte Verlauf Verteiler zu Abonnent im Textbereich Aktionen in der ausgewählten Sitzung an.View information on the Distributor to Subscriber History tab in the Actions in the selected session text area.

Einzelabonnement an MergeveröffentlichungFor a single subscription to a Merge Publication

Verwendung von SQL Server Management StudioUsing SQL Server Management Studio

  1. Stellen Sie in SQL Server Management StudioSQL Server Management Studioeine Verbindung mit dem Verleger her, und erweitern Sie dann den Serverknoten.Connect to the Publisher in SQL Server Management StudioSQL Server Management Studio, and then expand the server node.

  2. Erweitern Sie den Ordner Replikation , und erweitern Sie dann den Ordner Lokale Veröffentlichungen .Expand the Replication folder, and then expand the Local Publications folder.

  3. Erweitern Sie die Veröffentlichung, für die Sie Abonnements überprüfen möchten, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Abonnement überprüfen.Expand the publication for which you want to validate subscriptions, right-click the subscription, and then click Validate Subscription.

  4. Wählen Sie im Dialogfeld Abonnement überprüfen die Option Dieses Abonnement überprüfenaus.In the Validate Subscription dialog box, select Validate this subscription.

  5. Um den Typ der durchzuführenden Überprüfung (Zeilenanzahl oder Zeilenanzahl und Prüfsumme) anzugeben, klicken Sie auf Optionen, und geben Sie dann im Dialogfeld Optionen für die Abonnementüberprüfung die gewünschten Optionen an.To specify the type of validation to perform (row count, or row count and checksum) click Options, and then specify options in the Subscription Validation Options dialog box.

  6. Klicken Sie auf OK.Click OK.

  7. Zeigen Sie die Überprüfungsergebnisse Im Replikationsmonitor oder im Dialogfeld Synchronisierungsstatus anzeigen an:View validation results in Replication Monitor or the View Synchronization Status dialog box:

    1. Erweitern Sie die Veröffentlichung, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierungsstatus anzeigen.Expand the publication, right-click the subscription, and then click View Synchronization Status.
    2. Wenn der Agent nicht ausgeführt wird, klicken Sie im Dialogfeld Synchronisierungsstatus anzeigen auf Start .If the agent is not running, click Start in the View Synchronization Status dialog box. Im Dialogfeld werden Meldungen mit Informationen zur Überprüfung angezeigt.The dialog box will display informational messages regarding validation.

    Wenn keine Meldungen bezüglich der Überprüfung angezeigt werden, hat der Agent bereits eine nachfolgende Meldung protokolliert.If you do not see any messages regarding validation, the agent has already logged a subsequent message. Zeigen Sie die Überprüfungsergebnisse in diesem Fall im Replikationsmonitor an.In this case, view the validation results in Replication Monitor. Weitere Informationen finden Sie in den Prozeduren zu den Verfahrensweisen im Replikationsmonitor in diesem Thema.For more information, see the Replication Monitor how to procedures in this topic.

Alle Abonnements an MergeveröffentlichungFor all subscriptions to a Merge Publication

Verwendung von SQL Server Management StudioUsing SQL Server Management Studio

  1. Stellen Sie in SQL Server Management StudioSQL Server Management Studioeine Verbindung mit dem Verleger her, und erweitern Sie dann den Serverknoten.Connect to the Publisher in SQL Server Management StudioSQL Server Management Studio, and then expand the server node.

  2. Erweitern Sie den Ordner Replikation , und erweitern Sie dann den Ordner Lokale Veröffentlichungen .Expand the Replication folder, and then expand the Local Publications folder.

  3. Klicken Sie mit der rechten Maustaste auf die Veröffentlichung, deren Abonnements Sie überprüfen möchten, und klicken Sie dann auf Alle Abonnements überprüfen.Right-click the publication for which you want to validate subscriptions, and then click Validate All Subscriptions.

  4. Geben Sie im Dialogfeld Alle Abonnements überprüfen den Typ der durchzuführenden Überprüfung (Zeilenanzahl oder Zeilenanzahl und Prüfsumme) an.In the Validate All Subscriptions dialog box, specify the type of validation to perform (row count, or row count and checksum).

  5. Klicken Sie auf OK.Click OK.

  6. Zeigen Sie die Überprüfungsergebnisse Im Replikationsmonitor oder im Dialogfeld Synchronisierungsstatus anzeigen an:View validation results in Replication Monitor or the View Synchronization Status dialog box. Führen Sie für jedes Abonnement folgende Vorgänge aus:For each subscription:

    1. Erweitern Sie die Veröffentlichung, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierungsstatus anzeigen.Expand the publication, right-click the subscription, and then click View Synchronization Status.
    2. Wenn der Agent nicht ausgeführt wird, klicken Sie im Dialogfeld Synchronisierungsstatus anzeigen auf Start .If the agent is not running, click Start in the View Synchronization Status dialog box. Im Dialogfeld werden Meldungen mit Informationen zur Überprüfung angezeigt.The dialog box will display informational messages regarding validation.

    Wenn keine Meldungen bezüglich der Überprüfung angezeigt werden, hat der Agent bereits eine nachfolgende Meldung protokolliert.If you do not see any messages regarding validation, the agent has already logged a subsequent message. Zeigen Sie die Überprüfungsergebnisse in diesem Fall im Replikationsmonitor an.In this case, view the validation results in Replication Monitor. Weitere Informationen finden Sie in den Prozeduren zu den Verfahrensweisen im Replikationsmonitor in diesem Thema.For more information, see the Replication Monitor how to procedures in this topic.

Einzelpushabonnement an MergeveröffentlichungFor a single push subscription to a Merge Publication

Verwenden des ReplikationsmonitorsUsing Replication Monitor

  1. Erweitern Sie im Replikationsmonitor im linken Bereich eine Verlegergruppe, erweitern Sie einen Verleger, und klicken Sie dann auf eine Veröffentlichung.In Replication Monitor, expand a Publisher group in the left pane, expand a Publisher, and then click a publication.
  2. Klicken Sie auf die Registerkarte Alle Abonnements .Click the All Subscriptions tab.
  3. Klicken Sie mit der rechten Maustaste auf das Abonnement, das Sie überprüfen möchten, und klicken Sie dann auf Abonnement überprüfen.Right-click the subscription you want to validate, and then click Validate Subscription.
  4. Wählen Sie im Dialogfeld Abonnement überprüfen die Option Dieses Abonnement überprüfenaus.In the Validate Subscription dialog box, select Validate this subscription.
  5. Um den Typ der durchzuführenden Überprüfung (Zeilenanzahl oder Zeilenanzahl und Prüfsumme) anzugeben, klicken Sie auf Optionen, und geben Sie dann im Dialogfeld Optionen für die Abonnementüberprüfung die gewünschten Optionen an.To specify the type of validation to perform (row count, or row count and checksum) click Options, and then specify options in the Subscription Validation Options dialog box.
  6. Klicken Sie auf OK.Click OK.
  7. Klicken Sie auf die Registerkarte Alle Abonnements .Click the All Subscriptions tab.
  8. Zeigen Sie die Überprüfungsergebnisse an:View validation results:
    1. Wenn der Agent nicht ausgeführt wird, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierung starten.If the agent is not running, right-click the subscription, and then click Start Synchronizing.
    2. Klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Details anzeigen.Right-click the subscription, and then click View Details.
    3. Zeigen Sie die Informationen auf der Registerkarte Synchronisierungsverlauf im Textbereich Letzte Meldung der ausgewählten Sitzung an.View information on the Synchronization History tab in the Last message of the selected session text area.

Verwenden von Transact-SQLUsing Transact-SQL

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_validatemergesubscription (Transact-SQL) aus.At the Publisher on the publication database, execute sp_validatemergesubscription (Transact-SQL). Geben Sie @publication, den Namen des Abonnenten für @subscriber, den Namen der Abonnementdatenbank für @subscriber_db und einen der folgenden Werte für @level an:Specify @publication, the name of the Subscriber for @subscriber, the name of the subscription database for @subscriber_db, and one of the following values for @level:

    • 1 - Nur Überprüfung der Zeilenzählung1 - Rowcount-only validation.
    • 3 - Überprüfung der Zeilenzählung und binären Prüfsumme3 - Rowcount binary checksum validation.

    Dadurch wird das ausgewählte Abonnement zur Überprüfung gekennzeichnet.This marks the selected subscription for validation.

  2. Starten Sie den Merge-Agent für jedes Abonnement.Start the merge agent for each subscription. Weitere Informationen finden Sie unter Synchronize a Pull Subscription und Synchronize a Push Subscription.For more information, see Synchronize a Pull Subscription and Synchronize a Push Subscription.

  3. Überprüfen Sie die Agentausgabe für das Ergebnis der Überprüfung.Check the agent output for the result of the validation.

  4. Wiederholen Sie die Schritte 1 bis 3 für jedes zu überprüfende Abonnement.Repeat steps 1 through 3 for each subscription being validated.

Hinweis

Ein Abonnement für eine Mergeveröffentlichung kann auch am Ende einer Synchronisierung überprüft werden. Dazu geben Sie den -Validate -Parameter an, wenn der Replication Merge Agentausgeführt wird.A subscription to a merge publication can also be validated at the end of a synchronization by specifying the -Validate parameter when running the Replication Merge Agent.

Alle Pushabonnements an MergeveröffentlichungFor all push subscriptions to a Merge Publication

Verwenden des ReplikationsmonitorsUsing Replication Monitor

  1. Erweitern Sie im Replikationsmonitor im linken Bereich eine Verlegergruppe, und erweitern Sie dann einen Verleger.In Replication Monitor, expand a Publisher group in the left pane, and then expand a Publisher.
  2. Klicken Sie mit der rechten Maustaste auf die Veröffentlichung, deren Abonnements Sie überprüfen möchten, und klicken Sie dann auf Alle Abonnements überprüfen.Right-click the publication for which you want to validate subscriptions, and then click Validate All Subscriptions.
  3. Geben Sie im Dialogfeld Alle Abonnements überprüfen den Typ der durchzuführenden Überprüfung (Zeilenanzahl oder Zeilenanzahl und Prüfsumme) an.In the Validate All Subscriptions dialog box, specify the type of validation to perform (row count, or row count and checksum).
  4. Klicken Sie auf OK.Click OK.
  5. Klicken Sie auf die Registerkarte Alle Abonnements .Click the All Subscriptions tab.
  6. Zeigen Sie die Überprüfungsergebnisse an.View validation results. Führen Sie für jedes Pushabonnement folgende Vorgänge aus:For each push subscription:
    1. Wenn der Agent nicht ausgeführt wird, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierung starten.If the agent is not running, right-click the subscription, and then click Start Synchronizing.
    2. Klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Details anzeigen.Right-click the subscription, and then click View Details.
    3. Zeigen Sie die Informationen auf der Registerkarte Synchronisierungsverlauf im Textbereich Letzte Meldung der ausgewählten Sitzung an.View information on the Synchronization History tab in the Last message of the selected session text area.

Verwenden von Transact-SQLUsing Transact-SQL

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_validatemergepublication (Transact-SQL) aus.At the Publisher on the publication database, execute sp_validatemergepublication (Transact-SQL). Geben Sie @publication und einen der folgenden Werte für @level an:Specify @publication and one of the following values for @level:

    • 1 - Nur Überprüfung der Zeilenzählung1 - Rowcount-only validation.
    • 3 - Überprüfung der Zeilenzählung und binären Prüfsumme3 - Rowcount binary checksum validation.

    Dadurch werden alle Abonnements zur Überprüfung gekennzeichnet.This marks all subscriptions for validation.

  2. Starten Sie den Merge-Agent für jedes Abonnement.Start the merge agent for each subscription. Weitere Informationen finden Sie unter Synchronize a Pull Subscription und Synchronize a Push Subscription.For more information, see Synchronize a Pull Subscription and Synchronize a Push Subscription.

  3. Überprüfen Sie die Agentausgabe für das Ergebnis der Überprüfung.Check the agent output for the result of the validation. Weitere Informationen finden Sie unter Validate Data at the Subscriber.For more information, see Validate Data at the Subscriber.

Überprüfen von Daten mithilfe von Merge-Agent-ParameternValidate data using Merge Agent parameters

  1. Starten Sie auf eine der folgenden Arten den Merge-Agent auf dem Abonnenten (Pullabonnement) oder auf dem Verteiler (Pushabonnement) von der Befehlszeile.Start the Merge Agent at the Subscriber (pull subscription) or at the Distributor (push subscription) from the command prompt in one of the following ways.

    • Durch Angeben eines Werts von 1 (Zeilenanzahl) oder 3 (Zeilenanzahl und binäre Prüfsumme) für den -Validate -Parameter.Specifying a value of 1 (rowcount) or 3 (rowcount and binary checksum) for the -Validate parameter.
    • Durch Angeben von Zeilenanzahlüberprüfung oder Überprüfung der Zeilenanzahl und Prüfsumme für den -ProfileName -Parameter.Specifying rowcount validation or rowcount and checksum validation for the -ProfileName parameter.

    Weitere Informationen finden Sie unter Synchronize a Pull Subscription oder Synchronize a Push Subscription.For more information, see Synchronize a Pull Subscription or Synchronize a Push Subscription.

Verwenden von Replikationsverwaltungsobjekten (RMO)Using Replication Management Objects (RMO)

Die Replikation ermöglicht Ihnen mithilfe von Replikationsverwaltungsobjekten (RMO), programmgesteuert zu überprüfen, ob die Daten auf dem Abonnenten mit den Daten auf dem Verleger übereinstimmen.Replication enables you to use Replication Management Objects (RMO) to programmatically validate that data at the Subscriber matches data at the Publisher. Welche Objekte Sie verwenden, hängt vom Typ der Replikationstopologie ab.The objects you use depend on the type of replication topology. Für die Transaktionsreplikation ist eine Überprüfung aller Abonnements für eine Veröffentlichung erforderlich.Transactional replication requires validation of all subscriptions to a publication.

Hinweis

Ein Beispiel hierzu finden Sie unter Beispiel (RMO)weiter unten in diesem Abschnitt.For an example, see Example (RMO), later in this section.

So überprüfen Sie die Daten für alle Artikel in einer TransaktionsveröffentlichungTo validate data for all articles in a transactional publication

  1. Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection -Klasse verwenden.Create a connection to the Publisher by using the ServerConnection class.

  2. Erstellen Sie eine Instanz der TransPublication-Klasse.Create an instance of the TransPublication class. Legen Sie die Name -Eigenschaft und die DatabaseName -Eigenschaft für die Veröffentlichung fest.Set the Name and DatabaseName properties for the publication. Legen Sie die ConnectionContext -Eigenschaft auf die in Schritt 1 erstellte Verbindung fest.Set the ConnectionContext property to the connection created in step 1.

  3. Rufen Sie die LoadProperties -Methode auf, um die restlichen Objekteigenschaften abzurufen.Call the LoadProperties method to get the remaining properties of the object. Wenn diese Methode falsezurückgibt, sind die Veröffentlichungseigenschaften in Schritt 2 falsch definiert, oder die Veröffentlichung ist nicht vorhanden.If this method returns false, either the publication properties in step 2 were defined incorrectly or the publication does not exist.

  4. Rufen Sie die ValidatePublication -Methode auf.Call the ValidatePublication method. Übergeben Sie die folgenden Werte:Pass the following:

    • ValidationOption

    • ValidationMethod

    • Ein boolescher Wert, der angibt, ob der Verteilungs-Agent nach Abschluss der Überprüfung beendet werden soll.A Boolean that indicates whether to stop the Distribution Agent after validation is completed.

    Dadurch werden die Artikel zur Überprüfung gekennzeichnet.This marks the articles for validation.

  5. Starten Sie den Verteilungs-Agent, falls er noch nicht ausgeführt wird, um alle Abonnements zu synchronisieren.If not already running, start the Distribution Agent to synchronize each subscription. Weitere Informationen finden Sie unter Synchronize a Push Subscription oder Synchronize a Pull Subscription.For more information, see Synchronize a Push Subscription or Synchronize a Pull Subscription. Das Ergebnis der Überprüfung wird in den Agentverlauf geschrieben.The result of the validation operation is written to the agent history. Weitere Informationen finden Sie unter Monitoring Replication.For more information, see Monitoring Replication.

So überprüfen Sie die Daten in allen Abonnements für eine MergeveröffentlichungTo validate data in all subscriptions to a merge publication

  1. Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection -Klasse verwenden.Create a connection to the Publisher by using the ServerConnection class.

  2. Erstellen Sie eine Instanz der MergePublication-Klasse.Create an instance of the MergePublication class. Legen Sie die Name -Eigenschaft und die DatabaseName -Eigenschaft für die Veröffentlichung fest.Set the Name and DatabaseName properties for the publication. Legen Sie die ConnectionContext -Eigenschaft auf die in Schritt 1 erstellte Verbindung fest.Set the ConnectionContext property to the connection created in step 1.

  3. Rufen Sie die LoadProperties -Methode auf, um die restlichen Objekteigenschaften abzurufen.Call the LoadProperties method to get the remaining properties of the object. Wenn diese Methode falsezurückgibt, sind die Veröffentlichungseigenschaften in Schritt 2 falsch definiert, oder die Veröffentlichung ist nicht vorhanden.If this method returns false, either the publication properties in step 2 were defined incorrectly or the publication does not exist.

  4. Rufen Sie die ValidatePublication -Methode auf.Call the ValidatePublication method. Übergeben Sie die gewünschte ValidationOption.Pass the desired ValidationOption.

  5. Führen Sie für jedes Abonnement den Merge-Agent aus, um die Überprüfung zu starten, oder warten Sie die nächste geplante Ausführung des Agents ab.Run the Merge Agent for each subscription to start validation, or wait for the next scheduled agent run. Weitere Informationen finden Sie unter Synchronize a Pull Subscription und Synchronize a Push Subscription.For more information, see Synchronize a Pull Subscription and Synchronize a Push Subscription. Das Ergebnis der Überprüfung wird in den Agentverlauf geschrieben. Diesen können Sie mithilfe des Replikationsmonitors anzeigen.The result of the validation operation is written to the agent history, which you view by using Replication Monitor. Weitere Informationen finden Sie unter Monitoring Replication.For more information, see Monitoring Replication.

So überprüfen Sie die Daten in einem einzelnen Abonnement für eine MergeveröffentlichungTo validate data in a single subscription to a merge publication

  1. Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection -Klasse verwenden.Create a connection to the Publisher by using the ServerConnection class.

  2. Erstellen Sie eine Instanz der MergePublication-Klasse.Create an instance of the MergePublication class. Legen Sie die Name -Eigenschaft und die DatabaseName -Eigenschaft für die Veröffentlichung fest.Set the Name and DatabaseName properties for the publication. Legen Sie die ConnectionContext -Eigenschaft auf die in Schritt 1 erstellte Verbindung fest.Set the ConnectionContext property to the connection created in step 1.

  3. Rufen Sie die LoadProperties -Methode auf, um die restlichen Objekteigenschaften abzurufen.Call the LoadProperties method to get the remaining properties of the object. Wenn diese Methode falsezurückgibt, sind die Veröffentlichungseigenschaften in Schritt 2 falsch definiert, oder die Veröffentlichung ist nicht vorhanden.If this method returns false, either the publication properties in step 2 were defined incorrectly or the publication does not exist.

  4. Rufen Sie die ValidateSubscription -Methode auf.Call the ValidateSubscription method. Übergeben Sie den Namen des Abonnenten und der Abonnementdatenbank, der bzw. die überprüft wird, und die gewünschte ValidationOption.Pass the name of the Subscriber and subscription database being validated and the desired ValidationOption.

  5. Führen Sie für das Abonnement den Merge-Agent aus, um die Überprüfung zu starten, oder warten Sie die nächste geplante Ausführung des Agents ab.Run the Merge Agent for the subscription to start validation, or wait for the next scheduled agent run. Weitere Informationen finden Sie unter Synchronize a Pull Subscription und Synchronize a Push Subscription.For more information, see Synchronize a Pull Subscription and Synchronize a Push Subscription. Das Ergebnis der Überprüfung wird in den Agentverlauf geschrieben. Diesen können Sie mithilfe des Replikationsmonitors anzeigen.The result of the validation operation is written to the agent history, which you view by using Replication Monitor. Weitere Informationen finden Sie unter Monitoring Replication.For more information, see Monitoring Replication.

Beispiel (RMO)Example (RMO)

In diesem Beispiel werden alle Abonnements für eine Transaktionsveröffentlichung für die Zeilenanzahlüberprüfung gekennzeichnet.This example marks all subscriptions to a transactional publication for rowcount validation.

// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2012";

TransPublication publication;

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Set the required properties for the publication.
    publication = new TransPublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;

    // If we can't get the properties for this publication, 
    // throw an application exception.
    if (publication.LoadProperties())
    {
        // Initiate validataion for all subscriptions to this publication.
        publication.ValidatePublication(ValidationOption.RowCountOnly,
            ValidationMethod.ConditionalFast, false);

        // If not already running, start the Distribution Agent at each 
        // Subscriber to synchronize and validate the subscriptions.
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Settings could not be retrieved for the publication. " +
            "Ensure that the publication {0} exists on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Do error handling here.
    throw new ApplicationException(
        "Subscription validation could not be initiated.", ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publication As TransPublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this publication, 
    ' throw an application exception.
    If publication.LoadProperties() Then

        ' Initiate validataion for all subscriptions to this publication.
        publication.ValidatePublication(ValidationOption.RowCountOnly, _
         ValidationMethod.ConditionalFast, False)

        ' If not already running, start the Distribution Agent at each 
        ' Subscriber to synchronize and validate the subscriptions.
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException( _
     "Subscription validation could not be initiated.", ex)
Finally
    conn.Disconnect()
End Try

In diesem Beispiel wird ein bestimmtes Abonnement für eine Mergeveröffentlichung für die Zeilenanzahlüberprüfung gekennzeichnet.This example marks a specific subscription to a merge publication for rowcount validation.

// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2012";
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";

MergePublication publication;

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Set the required properties for the publication.
    publication = new MergePublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;


    // If we can't get the properties for this merge publication, then throw an application exception.
    if (publication.LoadProperties())
    {
        // Initiate validation of the specified subscription.
        publication.ValidateSubscription(subscriberName,
            subscriptionDbName, ValidationOption.RowCountOnly);
        
        // Start the Merge Agent to synchronize and validate the subscription.
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Settings could not be retrieved for the publication. " +
            "Ensure that the publication {0} exists on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Do error handling here.
    throw new ApplicationException(String.Format(
        "The subscription at {0} to the {1} publication could not " +
        "be validated.", subscriberName, publicationName), ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"

Dim publication As MergePublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the publication.
    publication = New MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this merge publication, then throw an application exception.
    If publication.LoadProperties() Then
        ' Initiate validation of the specified subscription.
        publication.ValidateSubscription(subscriberName, _
         subscriptionDbName, ValidationOption.RowCountOnly)

        ' Start the Merge Agent to synchronize and validate the subscription.
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException(String.Format( _
     "The subscription at {0} to the {1} publication could not " + _
     "be validated.", subscriberName, publicationName), ex)
Finally
    conn.Disconnect()
End Try

Weitere InformationenSee Also

Best Practices for Replication AdministrationBest Practices for Replication Administration