Überprüfen der Daten am Abonnenten

In diesem Thema wird beschrieben, wie Daten beim Abonnenten in SQL Server 2012 mit SQL Server Management Studio, Transact-SQL oder Replikationsverwaltungsobjekten (RMO) überprüft werden.

Der Prozess der Datenüberprüfung besteht aus drei Teilen:

  1. Zunächst müssen die Abonnements für eine Veröffentlichung, die überprüft werden sollen, gekennzeichnet werden. Die Abonnements, die überprüft werden sollen, können Sie in den Dialogfeldern Abonnement überprüfen, Abonnements überprüfen und Alle Abonnements überprüfen, die über den Ordner Lokale Veröffentlichungen und Lokale Abonnements in Microsoft SQL Server Management Studio verfügbar sind. 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. Informationen zum Starten des Replikationsmonitors finden Sie unter Starten des Replikationsmonitors.

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

  3. Anzeigen der Überprüfungsergebnisse:

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

    • Im Dialogfeld Synchronisierungsstatus anzeigen in Management Studio.

In diesem Thema

  • Vorbereitungen:

    Einschränkungen

  • So prüfen Sie Daten beim Abonnenten mit:

    SQL Server Management Studio

    Transact-SQL

    Replikationsverwaltungsobjekte (RMO)

Vorbereitungen

Einschränkungen

  • Die Prozeduren für den Replikationsmonitor sind nur für Pushabonnements geeignet, da Pullabonnements im Replikationsmonitor nicht synchronisiert werden können. Sie können ein Abonnement jedoch für die Überprüfung markieren und die Überprüfungsergebnisse für Pullabonnements im Replikationsmonitor anzeigen.

  • 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. Verwenden Sie das Hilfsprogramm tablediff (Hilfsprogramm), um die Daten auf dem Verleger und auf dem Abonnenten zu vergleichen. Weitere Informationen zum Verwenden dieses Hilfsprogramms für replizierte Daten finden Sie unter Überprüfen replizierter Tabellen auf Unterschiede (Replikationsprogrammierung).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von SQL Server Management Studio

So überprüfen Sie Daten für Abonnements einer Transaktionsveröffentlichung (Management Studio)

  1. Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Verleger her, und erweitern Sie dann den Serverknoten.

  2. Erweitern Sie den Ordner Replikation, und erweitern Sie dann den Ordner Lokale Veröffentlichungen.

  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.

  4. Wählen Sie im Dialogfeld Abonnements überprüfen die zu überprüfenden Abonnements aus:

    • Wählen Sie Alle SQL Server-Abonnements überprüfen aus.

    • Wählen Sie Folgende Abonnements überprüfen aus, und wählen Sie dann ein oder mehrere Abonnements aus.

  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.

  6. Klicken Sie auf OK.

  7. Zeigen Sie die Überprüfungsergebnisse im Replikationsmonitor oder im Dialogfeld Synchronisierungsstatus anzeigen an. Führen Sie für jedes Abonnement folgende Vorgänge aus:

    1. Erweitern Sie die Veröffentlichung, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierungsstatus anzeigen.

    2. Wenn der Agent nicht ausgeführt wird, klicken Sie im Dialogfeld Synchronisierungsstatus anzeigen auf Start. Im Dialogfeld werden Meldungen mit Informationen zur Überprüfung angezeigt.

    Wenn keine Meldungen bezüglich der Überprüfung angezeigt werden, hat der Agent bereits eine nachfolgende Meldung protokolliert. Zeigen Sie die Überprüfungsergebnisse in diesem Fall im Replikationsmonitor an. Weitere Informationen finden Sie in den Prozeduren zu den Verfahrensweisen im Replikationsmonitor in diesem Thema.

So überprüfen Sie Daten für ein einzelnes Abonnement für eine Mergeveröffentlichung (Management Studio)

  1. Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Verleger her, und erweitern Sie dann den Serverknoten.

  2. Erweitern Sie den Ordner Replikation, und erweitern Sie dann den Ordner Lokale Veröffentlichungen.

  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.

  4. Wählen Sie im Dialogfeld Abonnement überprüfen die Option Dieses Abonnement überprüfen aus.

  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.

  6. Klicken Sie auf OK.

  7. Zeigen Sie die Überprüfungsergebnisse Im Replikationsmonitor oder im Dialogfeld Synchronisierungsstatus anzeigen an:

    1. Erweitern Sie die Veröffentlichung, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierungsstatus anzeigen.

    2. Wenn der Agent nicht ausgeführt wird, klicken Sie im Dialogfeld Synchronisierungsstatus anzeigen auf Start. Im Dialogfeld werden Meldungen mit Informationen zur Überprüfung angezeigt.

    Wenn keine Meldungen bezüglich der Überprüfung angezeigt werden, hat der Agent bereits eine nachfolgende Meldung protokolliert. Zeigen Sie die Überprüfungsergebnisse in diesem Fall im Replikationsmonitor an. Weitere Informationen finden Sie in den Prozeduren zu den Verfahrensweisen im Replikationsmonitor in diesem Thema.

So überprüfen Sie Daten für Abonnements einer Mergeveröffentlichung (Management Studio)

  1. Stellen Sie in SQL Server Management Studio eine Verbindung mit dem Verleger her, und erweitern Sie dann den Serverknoten.

  2. Erweitern Sie den Ordner Replikation, und erweitern Sie dann den Ordner Lokale Veröffentlichungen.

  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.

  4. Geben Sie im Dialogfeld Alle Abonnements überprüfen den Typ der durchzuführenden Überprüfung (Zeilenanzahl oder Zeilenanzahl und Prüfsumme) an.

  5. Klicken Sie auf OK.

  6. Zeigen Sie die Überprüfungsergebnisse Im Replikationsmonitor oder im Dialogfeld Synchronisierungsstatus anzeigen an: Führen Sie für jedes Abonnement folgende Vorgänge aus:

    1. Erweitern Sie die Veröffentlichung, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierungsstatus anzeigen.

    2. Wenn der Agent nicht ausgeführt wird, klicken Sie im Dialogfeld Synchronisierungsstatus anzeigen auf Start. Im Dialogfeld werden Meldungen mit Informationen zur Überprüfung angezeigt.

    Wenn keine Meldungen bezüglich der Überprüfung angezeigt werden, hat der Agent bereits eine nachfolgende Meldung protokolliert. Zeigen Sie die Überprüfungsergebnisse in diesem Fall im Replikationsmonitor an. Weitere Informationen finden Sie in den Prozeduren zu den Verfahrensweisen im Replikationsmonitor in diesem Thema.

So überprüfen Sie die Daten aller Pushabonnements einer Transaktionsveröffentlichung (Replikationsüberwachung)

  1. Erweitern Sie im Replikationsmonitor im linken Bereich eine Verlegergruppe, und erweitern Sie dann einen Verleger.

  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.

  3. Wählen Sie im Dialogfeld Abonnements überprüfen die zu überprüfenden Abonnements aus:

    • Wählen Sie Alle SQL Server-Abonnements überprüfen aus.

    • Wählen Sie Folgende Abonnements überprüfen aus, und wählen Sie dann ein oder mehrere Abonnements aus.

  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.

  5. Klicken Sie auf OK.

  6. Klicken Sie auf die Registerkarte Alle Abonnements.

  7. Zeigen Sie die Überprüfungsergebnisse an. Führen Sie für jedes Pushabonnement folgende Vorgänge aus:

    1. Wenn der Agent nicht ausgeführt wird, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierung starten.

    2. Klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Details anzeigen.

    3. Zeigen Sie die Informationen auf der Registerkarte Verlauf Verteiler zu Abonnent im Textbereich Aktionen in der ausgewählten Sitzung an.

So überprüfen Sie Daten für ein einzelnes Pushabonnement für eine Mergeveröffentlichung (Replikationsmonitor)

  1. Erweitern Sie im Replikationsmonitor im linken Bereich eine Verlegergruppe, erweitern Sie einen Verleger, und klicken Sie dann auf eine Veröffentlichung.

  2. Klicken Sie auf die Registerkarte Alle Abonnements.

  3. Klicken Sie mit der rechten Maustaste auf das Abonnement, das Sie überprüfen möchten, und klicken Sie dann auf Abonnement überprüfen.

  4. Wählen Sie im Dialogfeld Abonnement überprüfen die Option Dieses Abonnement überprüfen aus.

  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.

  6. Klicken Sie auf OK.

  7. Klicken Sie auf die Registerkarte Alle Abonnements.

  8. Zeigen Sie die Überprüfungsergebnisse an:

    1. Wenn der Agent nicht ausgeführt wird, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierung starten.

    2. Klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Details anzeigen.

    3. Zeigen Sie die Informationen auf der Registerkarte Synchronisierungsverlauf im Textbereich Letzte Meldung der ausgewählten Sitzung an.

So überprüfen Sie die Daten aller Pushabonnements einer Mergeveröffentlichung (Replikationsüberwachung)

  1. Erweitern Sie im Replikationsmonitor im linken Bereich eine Verlegergruppe, und erweitern Sie dann einen Verleger.

  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.

  3. Geben Sie im Dialogfeld Alle Abonnements überprüfen den Typ der durchzuführenden Überprüfung (Zeilenanzahl oder Zeilenanzahl und Prüfsumme) an.

  4. Klicken Sie auf OK.

  5. Klicken Sie auf die Registerkarte Alle Abonnements.

  6. Zeigen Sie die Überprüfungsergebnisse an. Führen Sie für jedes Pushabonnement folgende Vorgänge aus:

    1. Wenn der Agent nicht ausgeführt wird, klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Synchronisierung starten.

    2. Klicken Sie mit der rechten Maustaste auf das Abonnement, und klicken Sie dann auf Details anzeigen.

    3. Zeigen Sie die Informationen auf der Registerkarte Synchronisierungsverlauf im Textbereich Letzte Meldung der ausgewählten Sitzung an.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von Transact-SQL

So überprüfen Sie die Daten für alle Artikel in einer Transaktionsveröffentlichung

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_publication_validation (Transact-SQL) aus. Geben Sie @publication und einen der folgenden Werte für @rowcount_only an:

    • 1 - nur Überprüfung der Zeilenanzahl (Standardeinstellung)

    • 2 - Zeilenanzahl und binäre Prüfsumme

    HinweisHinweis

    Wenn Sie sp_publication_validation (Transact-SQL) ausführen, wird für jeden Artikel in der Veröffentlichung sp_article_validation (Transact-SQL) ausgeführt. Damit sp_publication_validation (Transact-SQL) erfolgreich ausgeführt werden kann, benötigen Sie SELECT-Berechtigungen für alle Spalten in den veröffentlichten Basistabellen.

  2. (Optional) Starten Sie den Verteilungs-Agent für jedes Abonnement, wenn er nicht bereits ausgeführt wird. Weitere Informationen finden Sie unter Synchronisieren eines Pullabonnements und Synchronisieren eines Pushabonnements.

  3. Überprüfen Sie die Agentausgabe für das Ergebnis der Überprüfung. Weitere Informationen finden Sie unter Überprüfen von replizierten Daten.

So überprüfen Sie die Daten für einen einzelnen Artikel in einer Transaktionsveröffentlichung

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_article_validation (Transact-SQL) aus. Geben Sie @publication, den Namen des Artikels für @article und einen der folgenden Werte für @rowcount_only an:

    • 1 - nur Überprüfung der Zeilenanzahl (Standardeinstellung)

    • 2 - Zeilenanzahl und binäre Prüfsumme

    HinweisHinweis

    Damit sp_article_validation (Transact-SQL) erfolgreich ausgeführt werden kann, benötigen Sie SELECT-Berechtigungen für alle Spalten in der veröffentlichten Basistabelle.

  2. (Optional) Starten Sie den Verteilungs-Agent für jedes Abonnement, wenn er nicht bereits ausgeführt wird. Weitere Informationen finden Sie unter Synchronisieren eines Pullabonnements und Synchronisieren eines Pushabonnements.

  3. Überprüfen Sie die Agentausgabe für das Ergebnis der Überprüfung. Weitere Informationen finden Sie unter Überprüfen von replizierten Daten.

So überprüfen Sie die Daten für einen einzelnen Abonnenten einer Transaktionsveröffentlichung

  1. Öffnen Sie auf dem Verleger für die Veröffentlichungsdatenbank mit BEGIN TRANSACTION (Transact-SQL) eine explizite Transaktion.

  2. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_marksubscriptionvalidation (Transact-SQL) aus. 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.

  3. (Optional) Wiederholen Sie Schritt 2 für jedes zu überprüfende Abonnement.

  4. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_article_validation (Transact-SQL) aus. Geben Sie @publication, den Namen des Artikels für @article und einen der folgenden Werte für @rowcount_only an:

    • 1 - nur Überprüfung der Zeilenanzahl (Standardeinstellung)

    • 2 - Zeilenanzahl und binäre Prüfsumme

    HinweisHinweis

    Damit sp_article_validation (Transact-SQL) erfolgreich ausgeführt werden kann, benötigen Sie SELECT-Berechtigungen für alle Spalten in der veröffentlichten Basistabelle.

  5. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank mit COMMIT TRANSACTION (Transact-SQL) einen Commit für die Transaktion aus.

  6. (Optional) Wiederholen Sie die Schritte 1 bis 5 für jeden zu überprüfenden Artikel.

  7. (Optional) Starten Sie den Verteilungs-Agent, wenn er nicht bereits ausgeführt wird. Weitere Informationen finden Sie unter Synchronisieren eines Pullabonnements und Synchronisieren eines Pushabonnements.

  8. Überprüfen Sie die Agentausgabe für das Ergebnis der Überprüfung. Weitere Informationen finden Sie unter Überprüfen der Daten am Abonnenten.

So überprüfen Sie die Daten in allen Abonnements für eine Mergeveröffentlichung

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_validatemergepublication (Transact-SQL) aus. Geben Sie @publication und einen der folgenden Werte für @level an:

    • 1 - Nur Überprüfung der Zeilenzählung

    • 3 - Überprüfung der Zeilenzählung und binären Prüfsumme

    Dadurch werden alle Abonnements zur Überprüfung gekennzeichnet.

  2. Starten Sie den Merge-Agent für jedes Abonnement. Weitere Informationen finden Sie unter Synchronisieren eines Pullabonnements und Synchronisieren eines Pushabonnements.

  3. Überprüfen Sie die Agentausgabe für das Ergebnis der Überprüfung. Weitere Informationen finden Sie unter Überprüfen der Daten am Abonnenten.

So überprüfen Sie die Daten in ausgewählten Abonnements für eine Mergeveröffentlichung

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_validatemergesubscription (Transact-SQL) aus. 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:

    • 1 - Nur Überprüfung der Zeilenzählung

    • 3 - Überprüfung der Zeilenzählung und binären Prüfsumme

    Dadurch wird das ausgewählte Abonnement zur Überprüfung gekennzeichnet.

  2. Starten Sie den Merge-Agent für jedes Abonnement. Weitere Informationen finden Sie unter Synchronisieren eines Pullabonnements und Synchronisieren eines Pushabonnements.

  3. Überprüfen Sie die Agentausgabe für das Ergebnis der Überprüfung.

  4. Wiederholen Sie die Schritte 1 bis 3 für jedes zu überprüfende Abonnement.

HinweisHinweis

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 Replikationsmerge-Agent ausgeführt wird.

So überprüfen Sie die Daten in einem Abonnement mithilfe von Merge-Agentparametern

  • Starten Sie auf eine der folgenden Arten den Merge-Agent auf dem Abonnenten (Pullabonnement) oder auf dem Verteiler (Pushabonnement) von der Befehlszeile.

    • Durch Angeben eines Werts von 1 (Zeilenanzahl) oder 3 (Zeilenanzahl und binäre Prüfsumme) für den -Validate-Parameter.

    • Durch Angeben von Zeilenanzahlüberprüfung oder Überprüfung der Zeilenanzahl und Prüfsumme für den -ProfileName-Parameter.

    Weitere Informationen finden Sie unter Synchronisieren eines Pullabonnements oder Synchronisieren eines Pushabonnements.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwenden von Replikationsverwaltungsobjekten (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. Welche Objekte Sie verwenden, hängt vom Typ der Replikationstopologie ab. Für die Transaktionsreplikation ist eine Überprüfung aller Abonnements für eine Veröffentlichung erforderlich.

HinweisHinweis

Ein Beispiel hierzu finden Sie unter Beispiel (RMO) weiter unten in diesem Abschnitt.

So überprüfen Sie die Daten für alle Artikel in einer Transaktionsveröffentlichung

  1. Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der TransPublication-Klasse. Legen Sie die Name-Eigenschaft und die DatabaseName-Eigenschaft für die Veröffentlichung fest. Legen Sie die ConnectionContext-Eigenschaft auf die in Schritt 1 erstellte Verbindung fest.

  3. Rufen Sie die LoadProperties-Methode auf, um die restlichen Objekteigenschaften abzurufen. Wenn diese Methode false zurückgibt, sind die Veröffentlichungseigenschaften in Schritt 2 falsch definiert, oder die Veröffentlichung ist nicht vorhanden.

  4. Rufen Sie die ValidatePublication-Methode auf. Übergeben Sie die folgenden Werte:

    Dadurch werden die Artikel zur Überprüfung gekennzeichnet.

  5. Starten Sie den Verteilungs-Agent, falls er noch nicht ausgeführt wird, um alle Abonnements zu synchronisieren. Weitere Informationen finden Sie unter Synchronisieren eines Pushabonnements oder Synchronisieren eines Pullabonnements. Das Ergebnis der Überprüfung wird in den Agentverlauf geschrieben. Weitere Informationen finden Sie unter Überwachen der Replikation.

So überprüfen Sie die Daten in allen Abonnements für eine Mergeveröffentlichung

  1. Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der MergePublication-Klasse. Legen Sie die Name-Eigenschaft und die DatabaseName-Eigenschaft für die Veröffentlichung fest. Legen Sie die ConnectionContext-Eigenschaft auf die in Schritt 1 erstellte Verbindung fest.

  3. Rufen Sie die LoadProperties-Methode auf, um die restlichen Objekteigenschaften abzurufen. Wenn diese Methode false zurückgibt, sind die Veröffentlichungseigenschaften in Schritt 2 falsch definiert, oder die Veröffentlichung ist nicht vorhanden.

  4. Rufen Sie die ValidatePublication-Methode auf. Übergeben Sie die gewünschte 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. Weitere Informationen finden Sie unter Synchronisieren eines Pullabonnements und Synchronisieren eines Pushabonnements. Das Ergebnis der Überprüfung wird in den Agentverlauf geschrieben. Diesen können Sie mithilfe des Replikationsmonitors anzeigen. Weitere Informationen finden Sie unter Überwachen der Replikation.

So überprüfen Sie die Daten in einem einzelnen Abonnement für eine Mergeveröffentlichung

  1. Erstellen Sie eine Verbindung mit dem Verleger, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der MergePublication-Klasse. Legen Sie die Name-Eigenschaft und die DatabaseName-Eigenschaft für die Veröffentlichung fest. Legen Sie die ConnectionContext-Eigenschaft auf die in Schritt 1 erstellte Verbindung fest.

  3. Rufen Sie die LoadProperties-Methode auf, um die restlichen Objekteigenschaften abzurufen. Wenn diese Methode false zurückgibt, sind die Veröffentlichungseigenschaften in Schritt 2 falsch definiert, oder die Veröffentlichung ist nicht vorhanden.

  4. Rufen Sie die ValidateSubscription-Methode auf. Übergeben Sie den Namen des Abonnenten und der Abonnementdatenbank, der bzw. die überprüft wird, und die gewünschte 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. Weitere Informationen finden Sie unter Synchronisieren eines Pullabonnements und Synchronisieren eines Pushabonnements. Das Ergebnis der Überprüfung wird in den Agentverlauf geschrieben. Diesen können Sie mithilfe des Replikationsmonitors anzeigen. Weitere Informationen finden Sie unter Überwachen der Replikation.

Beispiel (RMO)

In diesem Beispiel werden alle Abonnements für eine Transaktionsveröffentlichung für die Zeilenanzahlüberprüfung gekennzeichnet.

            // 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.

            // 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

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]