Überprüfen der Daten am AbonnentenValidate Data at the Subscriber

In diesem Thema wird beschrieben, wie Daten beim Abonnenten in SQL Server 2016SQL Server 2016 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 2016SQL Server 2016 by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or Replication Management Objects (RMO).

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. 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 MicrosoftMicrosoft SQL Server Management StudioSQL Server Management Studio.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 MicrosoftMicrosoft SQL 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.

    In diesem ThemaIn This Topic

Vorbereitungen Before You Begin

Einschränkungen Limitations and Restrictions

  • 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).

Verwendung von SQL Server Management Studio Using SQL Server Management Studio

So überprüfen Sie Daten für Abonnements einer Transaktionsveröffentlichung (Management Studio)To validate data for subscriptions to a transactional publication (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.

So überprüfen Sie Daten für ein einzelnes Abonnement für eine Mergeveröffentlichung (Management Studio)To validate data for a single subscription to a merge publication (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.

So überprüfen Sie Daten für Abonnements einer Mergeveröffentlichung (Management Studio)To validate data for all subscriptions to a merge publication (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.

So überprüfen Sie die Daten aller Pushabonnements einer Transaktionsveröffentlichung (Replikationsüberwachung)To validate data for all push subscriptions to a transactional publication (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.

So überprüfen Sie Daten für ein einzelnes Pushabonnement für eine Mergeveröffentlichung (Replikationsmonitor)To validate data for a single push subscription to a merge publication (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.

So überprüfen Sie die Daten aller Pushabonnements einer Mergeveröffentlichung (Replikationsüberwachung)To validate data for all push subscriptions to a merge publication (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-SQL Using Transact-SQL

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

  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_onlyan: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. Weitere Informationen finden Sie unter Überprüfen von replizierten Daten.For more information, see Validate Replicated Data.

So überprüfen Sie die Daten für einen einzelnen Artikel in einer TransaktionsveröffentlichungTo validate data for a single article in a transactional publication

  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 @articleund einen der folgenden Werte für @rowcount_onlyan: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. Weitere Informationen finden Sie unter Überprüfen von replizierten Daten.For more information, see Validate Replicated Data.

So überprüfen Sie die Daten für einen einzelnen Abonnenten einer TransaktionsveröffentlichungTo validate data for a single subscriber to a transactional publication

  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 @subscriberund den Namen der Abonnementdatenbank für @destination_dbverfügbar sind.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 @articleund einen der folgenden Werte für @rowcount_onlyan: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.

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

  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 @levelan: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.

So überprüfen Sie die Daten in ausgewählten Abonnements für eine MergeveröffentlichungTo validate data in selected subscriptions to a merge publication

  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_dbund einen der folgenden Werte für @levelan: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.

So überprüfen Sie die Daten in einem Abonnement mithilfe von Merge-AgentparameternTo validate data in a subscription 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. Stellen Sie eine Verbindung mit dem Verleger her, 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 und die DatabaseName-Eigenschaften 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:

    • ValidationOptionValidationOption

    • ValidationOptionValidationMethod

    • 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. Stellen Sie eine Verbindung mit dem Verleger her, 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 und die DatabaseName-Eigenschaften 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. Stellen Sie eine Verbindung mit dem Verleger her, 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 und die DatabaseName-Eigenschaften 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