Dela via


Verifiera replikerade data

gäller för:SQL ServerAzure SQL Database

Det här avsnittet beskriver hur du verifierar data hos prenumeranten i SQL Server med hjälp av SQL Server Management Studio, Transact-SQL eller Replikeringshanteringsobjekt (RMO).

Genom att använda transaktions- och sammanslagningsreplikering kan du verifiera att data hos abonnenten matchar data hos utgivaren. Validering kan utföras för specifika prenumerationer eller för alla prenumerationer i en publikation. Ange någon av följande valideringstyper och distributionsagenten eller sammanslagningsagenten verifierar data nästa gång de körs:

  • Endast räkning av rader. Detta verifierar om tabellen i Prenumeranten har samma antal rader som tabellen i Publisher, men verifierar inte att innehållet i raderna matchar. Validering av radantal är en enkel metod för validering som kan göra dig medveten om problem med dina data.
  • Antal rader och binär kontrollsumma. Förutom att ta ett antal rader i Publisher och Subscriber beräknas en kontrollsumma för alla data med hjälp av kontrollsummaalgoritmen. Om inte antalet rader uppfyller kraven utförs inte kontrollsumman.

Förutom att verifiera dessa data i matchningen Prenumerant och Utgivare kan sammanslagningsreplikeringen verifiera att data partitioneras korrekt för varje prenumerant. Mer information finns i Verifiera partitionsinformation för en sammanslagningsprenumerant.

Not

Azure SQL Managed Instance kan vara utgivare, distributör och prenumerant för replikering av ögonblicksbilder och transaktioner. Databaser i Azure SQL Database kan bara skicka prenumeranter för ögonblicksbilder och transaktionsreplikering. Mer information finns i Transaktionsreplikering med Azure SQL Database och Azure SQL Managed Instance.

Så här fungerar dataverifiering

SQL Server validerar data genom att beräkna ett radantal eller en kontrollsumma i Publisher och sedan jämföra dessa värden med radantalet eller kontrollsumman som beräknas hos prenumeranten. Ett värde beräknas för hela publikationstabellen och ett värde beräknas för hela prenumerationstabellen, men data i text, ntexteller bild kolumner ingår inte i beräkningarna.

Medan beräkningarna utförs placeras delade lås tillfälligt på tabeller för vilka radantal eller kontrollsummor körs, men beräkningarna slutförs snabbt och de delade låsen tas bort, vanligtvis inom några sekunder.

När binära kontrollsummor används sker 32-bitars redundanskontroll (CRC) kolumn för kolumn i stället för en CRC på den fysiska raden på datasidan. Detta gör att kolumnerna med tabellen kan vara i valfri ordning fysiskt på datasidan, men ändå beräkna till samma CRC för raden. Validering av binär kontrollsumma kan användas när det finns rad- eller kolumnfilter i publikationen.

Validering av data är en process i tre delar:

  1. En enskild prenumeration eller alla prenumerationer i en publikation markeras för validering. Markera prenumerationer för validering i dialogrutorna Validate Subscription, Validate Subscriptionsoch Validate All Subscriptions (Verifiera alla prenumerationer), som är tillgängliga från mappen Lokala publikationer och mappen lokala prenumerationer i Microsoft SQL Server Management Studio. Du kan också markera prenumerationer från fliken Alla prenumerationer, fliken prenumerationsbevakningslista och publikationsnoden i Replikeringsövervakaren. Information om hur du startar Replikeringsövervakaren finns i Starta replikeringsövervakaren.

  2. En prenumeration verifieras nästa gång den synkroniseras av distributionsagenten (för transaktionsreplikering) eller sammanslagningsagenten (för sammanslagningsreplikering). Distributionsagenten körs vanligtvis kontinuerligt, i vilket fall verifiering sker omedelbart. Sammanslagningsagenten körs vanligtvis på begäran, i vilket fall verifieringen sker när du har kört agenten.

  3. Visa valideringsresultatet:

    • I detaljfönstren i Replikövervakaren: på fliken Distributör till Prenumeranthistorik för transaktionsreplikering och fliken Synkroniseringshistorik för sammanslagningsreplikering.
    • I dialogrutan Visa synkroniseringsstatus i Management Studio.

Överväganden och begränsningar

Ta hänsyn till följande problem när du verifierar data:

  • Du måste stoppa all uppdateringsaktivitet hos Prenumeranter innan du verifierar data (det är inte nödvändigt att stoppa aktiviteten i Publisher när verifieringen sker).
  • Eftersom kontrollsummor och binära kontrollsummor kan kräva stora mängder processorresurser när du validerar en stor datauppsättning bör du schemalägga valideringen så att den sker när det finns minst aktivitet på servrarna som används i replikeringen.
  • Replikering validerar endast tabeller. Det validerar inte om endast schemaartiklar (till exempel lagrade procedurer) är desamma i Publisher och Subscriber.
  • Binär kontrollsumma kan användas med valfri publicerad tabell. Kontrollsumman kan inte verifiera tabeller med kolumnfilter eller logiska tabellstrukturer där kolumnförskjutningar skiljer sig åt (på grund av ALTER TABLE-instruktioner som släpper eller lägger till kolumner).
  • Replikeringsverifieringen använder funktionerna kontrollsumma och binary_checksum. Information om deras beteende finns i CHECKSUM (Transact-SQL) och BINARY_CHECKSUM (Transact-SQL).
  • Validering genom binär kontrollsumma eller kontrollsumma kan felaktigt rapportera ett fel om datatyperna skiljer sig hos abonnenten jämfört med hos utgivaren. Detta kan inträffa om du gör något av följande:
    • Ange uttryckligen schemaalternativ för att mappa datatyper för tidigare versioner av SQL Server.
    • Ange publikationens kompatibilitetsnivå för en sammanslagningspublikation till en tidigare version av SQL Server och publicerade tabeller innehåller en eller flera datatyper som måste mappas för den här versionen.
    • Initiera en prenumeration manuellt och använder olika datatyper hos prenumeranten.
  • Valideringar av kontrollsumma och binär kontrollsumma stöds inte för transformerbara prenumerationer vid transaktionsreplikering.
  • Validering stöds inte för data som replikeras till icke-SQL Server-prenumeranter.
  • Procedurerna för Replikeringsövervakaren gäller endast för push-prenumerationer eftersom pull-prenumerationer inte kan synkroniseras i Replikeringsövervakaren. Du kan dock markera en prenumeration för validering och visa valideringsresultat för pull-prenumerationer i Replikeringsövervakaren.
  • Valideringsresultaten anger om valideringen lyckades eller misslyckades, men anger inte vilka rader som misslyckades vid ett fel. Om du vill jämföra data i Publisher och Subscriber använder du tablediff Utility. Mer information om hur du använder det här verktyget med replikerade data finns i Jämför replikerade tabeller för skillnader (replikeringsprogrammering).

Dataverifieringsresultat

När verifieringen är klar loggar distributionsagenten eller sammanslagningsagenten meddelanden om lyckade eller misslyckade (replikeringen rapporterar inte vilka rader som misslyckades). Dessa meddelanden kan visas i SQL Server Management Studio, Replikeringsövervakaren och replikeringssystemtabeller. De instruktioner som listas ovan visar hur du genomför validering och visar resultaten.

Tänk på följande för att hantera valideringsfel:

Artiklar i transaktionsreplikering

Använda SQL Server Management Studio

  1. Anslut till utgivaren i SQL Server Management Studio och expandera sedan servernoden.
  2. Expandera mappen Replication och expandera sedan mappen Lokala publikationer.
  3. Högerklicka på publikationen som du vill verifiera prenumerationer för och klicka sedan på Verifiera prenumerationer.
  4. I dialogrutan Verifiera prenumerationer väljer du vilka prenumerationer som ska verifieras:
    • Välj Verifiera alla SQL Server-prenumerationer.
    • Välj Verifiera följande prenumerationeroch välj sedan en eller flera prenumerationer.
  5. Om du vill ange vilken typ av verifiering som ska utföras (radantal eller radantal och kontrollsumma) klickar du på valideringsalternativoch anger sedan alternativ i dialogrutan Alternativ för prenumerationsverifiering.
  6. Välj OK.
  7. Visa valideringsresultat i dialogrutan Replikeringsövervakare eller dialogrutan Visa synkroniseringsstatus. För varje prenumeration:
    1. Expandera publikationen, högerklicka på prenumerationen och klicka sedan på Visa synkroniseringsstatus.
    2. Om agenten inte körs klickar du på Starta i dialogrutan Visa synkroniseringsstatus. Dialogrutan visar informationsmeddelanden om validering.
      Om du inte ser några meddelanden om validering har agenten redan loggat ett efterföljande meddelande. I det här fallet visar du valideringsresultaten i Replikeringsövervakaren. Mer information finns i Replikeringsövervakarens instruktioner i det här avsnittet.

Använda Transact-SQL

Alla artiklar

  1. Vid förlaget, på publikationsdatabasen, kör sp_publication_validation (Transact-SQL). Ange @publication och något av följande värden för @rowcount_only:

    • 1 – endast rowcount-kontroll (standard)
    • 2 – radantal och binär kontrollsumma.

    Notera

    När du kör sp_publication_validation (Transact-SQL), körs sp_article_validation (Transact-SQL) för varje artikel i publikationen. Om du vill köra sp_publication_validation (Transact-SQL)måste du ha SELECT-behörigheter för alla kolumner i de publicerade bastabellerna.

  2. (Valfritt) Starta distributionsagenten för varje prenumeration om den inte redan körs. Mer information finns i Synkronisera en pull-prenumeration och Synkronisera en push-prenumeration.

  3. Kontrollera agentens utdata för resultatet av valideringen.

Enskild artikel

  1. Kör sp_article_validation (Transact-SQL)i Publisher i publikationsdatabasen. Ange @publication, namnet på artikeln för @articleoch något av följande värden för @rowcount_only:

    • 1 – Endast rowcount-kontroll (standard)
    • 2 – Antal rader och binär kontrollsumma.

    Notera

    Om du vill köra sp_article_validation (Transact-SQL)måste du ha SELECT-behörigheter för alla kolumner i den publicerade bastabellen.

  2. (Valfritt) Starta distributionsagenten för varje prenumeration om den inte redan körs. Mer information finns i Synkronisera en pull-prenumeration och Synkronisera en push-prenumeration.

  3. Kontrollera agentens utdata för resultatet av valideringen.

Enskild prenumerant

  1. Öppna en explicit transaktion med BEGIN TRANSACTION (Transact-SQL)i Publisher i publikationsdatabasen.

  2. Kör sp_marksubscriptionvalidation (Transact-SQL)hos utgivaren på publikationsdatabasen. Ange publikationen för @publication, namnet på prenumeranten för @subscriberoch namnet på prenumerationsdatabasen för @destination_db.

  3. (Valfritt) Upprepa steg 2 för varje prenumeration som verifieras.

  4. Utför sp_article_validation (Transact-SQL)på Publisher i publikationsdatabasen. Ange @publication, namnet på artikeln för @articleoch något av följande värden för @rowcount_only:

    • 1 – Endast radräkningskontroll (standard)
    • 2 – Antal rader och binär kontrollsumma.

    Notis

    Om du vill köra sp_article_validation (Transact-SQL)måste du ha SELECT-behörigheter för alla kolumner i den publicerade bastabellen.

  5. I Publisher i publikationsdatabasen checkar du in transaktionen med COMMIT TRANSACTION (Transact-SQL).

  6. (Valfritt) Upprepa steg 1 till 5 för varje artikel som verifieras.

  7. (Valfritt) Starta distributionsagenten om den inte redan körs. Mer information finns i Synkronisera en pull-prenumeration och Synkronisera en push-prenumeration.

  8. Kontrollera agentens utdata för resultatet av valideringen. Mer information finns i Verifiera data på prenumeranten.

Alla push-prenumerationer till en transaktionspublikation

Använda replikeringsövervakaren

  1. I Replikeringsövervakaren expanderar du en Publisher-grupp i den vänstra rutan och expanderar sedan en Utgivare.

  2. Högerklicka på publikationen som du vill verifiera prenumerationer för och klicka sedan på Verifiera prenumerationer.

  3. I dialogrutan Verifiera prenumerationer väljer du vilka prenumerationer som ska verifieras:

    • Välj Verifiera alla SQL Server-prenumerationer.
    • Välj Verifiera följande prenumerationeroch välj sedan en eller flera prenumerationer.
  4. Om du vill ange vilken typ av verifiering som ska utföras (radantal eller radantal och kontrollsumma) klickar du på valideringsalternativoch anger sedan alternativ i dialogrutan Alternativ för prenumerationsverifiering.

  5. Välj OK.

  6. Klicka på fliken Alla prenumerationer.

  7. Visa valideringsresultat. För varje push-prenumeration:

    1. Om agenten inte körs högerklickar du på prenumerationen och klickar sedan på Starta synkronisering.
    2. Högerklicka på prenumerationen och klicka sedan på Visa information.
    3. Visa information i textområdet för Distributör till prenumeranthistorik på fliken Åtgärder i den valda sessionen.

För en enskild prenumeration på en sammanslagningspublikation

Använda SQL Server Management Studio

  1. Anslut till utgivaren i SQL Server Management Studio och expandera sedan servernoden.

  2. Expandera mappen Replication och expandera sedan mappen Lokala publikationer.

  3. Expandera publikationen som du vill verifiera prenumerationer för, högerklicka på prenumerationen och klicka sedan på Verifiera prenumeration.

  4. I dialogrutan Verifiera prenumeration väljer du Verifiera den här prenumerationen.

  5. Om du vill ange vilken typ av verifiering som ska utföras (radantal eller radantal och kontrollsumma) klickar du på Alternativoch anger sedan alternativ i dialogrutan Alternativ för prenumerationsverifiering.

  6. Välj OK.

  7. Visa valideringsresultat i dialogrutan Replikeringsövervakare eller Visa synkroniseringsstatus:

    1. Expandera publikationen, högerklicka på prenumerationen och klicka sedan på Visa synkroniseringsstatus.
    2. Om agenten inte körs klickar du på Starta i dialogrutan Visa synkroniseringsstatus. Dialogrutan visar informationsmeddelanden om validering.

    Om du inte ser några meddelanden om validering har agenten redan loggat ett efterföljande meddelande. I det här fallet visar du valideringsresultaten i Replikeringsövervakaren. Mer information finns i Replikeringsövervakarens instruktioner i det här avsnittet.

För alla prenumerationer på en sammanslagningspublikation

Använda SQL Server Management Studio

  1. Anslut till utgivaren i SQL Server Management Studio och expandera sedan servernoden.

  2. Expandera mappen Replication och expandera sedan mappen Lokala publikationer.

  3. Högerklicka på publikationen som du vill verifiera prenumerationer för och klicka sedan på Verifiera alla prenumerationer.

  4. I dialogrutan Verifiera alla prenumerationer anger du vilken typ av verifiering som ska utföras (radantal eller radantal och kontrollsumma).

  5. Välj OK.

  6. Visa valideringsresultat i dialogrutan Replikeringsövervakare eller dialogrutan Visa synkroniseringsstatus. För varje prenumeration:

    1. Expandera publikationen, högerklicka på prenumerationen och klicka sedan på Visa synkroniseringsstatus.
    2. Om agenten inte körs klickar du på Starta i dialogrutan Visa synkroniseringsstatus. Dialogrutan visar informationsmeddelanden om validering.

    Om du inte ser några meddelanden om validering har agenten redan loggat ett efterföljande meddelande. I det här fallet visar du valideringsresultaten i Replikeringsövervakaren. Mer information finns i Replikeringsövervakarens instruktioner i det här avsnittet.

För en enda push-prenumeration till en sammanslagningspublikation

Använda replikeringsövervakaren

  1. I Replikeringsövervakaren expanderar du en Publisher-grupp i den vänstra rutan, expanderar en Utgivare och klickar sedan på en publikation.
  2. Klicka på fliken Alla prenumerationer.
  3. Högerklicka på den prenumeration som du vill verifiera och klicka sedan på Verifiera prenumerationen.
  4. I dialogrutan Verifiera prenumeration väljer du Verifiera den här prenumerationen.
  5. Om du vill ange vilken typ av verifiering som ska utföras (radantal eller radantal och kontrollsumma) klickar du på Alternativoch anger sedan alternativ i dialogrutan Alternativ för prenumerationsverifiering.
  6. Välj OK.
  7. Klicka på fliken Alla prenumerationer.
  8. Visa valideringsresultat:
    1. Om agenten inte körs högerklickar du på prenumerationen och klickar sedan på Starta synkronisering.
    2. Högerklicka på prenumerationen och klicka sedan på Visa information.
    3. Visa information på fliken Synkroniseringshistorik i textområdet för Sista Meddelandet i den valda sessionen.

Använda Transact-SQL

  1. Kör sp_validatemergesubscription (Transact-SQL)på publikationsdatabasen . Ange @publication, namnet på prenumeranten för @subscriber, namnet på prenumerationsdatabasen för @subscriber_dboch något av följande värden för @level:

    • 1 – Verifiering endast av antal rader.
    • 3 – Validering av binär kontrollsumma för radantal.

    Detta markerar den valda prenumerationen för validering.

  2. Starta sammanslagningsagenten för varje prenumeration. Mer information finns i Synkronisera en pull-prenumeration och Synkronisera en push-prenumeration.

  3. Kontrollera agentens utdata för resultatet av valideringen.

  4. Upprepa steg 1 till 3 för varje prenumeration som verifieras.

Obs

En prenumeration på en sammanslagningspublikation kan också verifieras i slutet av en synkronisering genom att ange parametern -Validate när du kör Replication Merge Agent.

För alla push-prenumerationer till en sammanslagningspublikation

Använda replikeringsövervakaren

  1. I Replikeringsövervakaren expanderar du en Publisher-grupp i den vänstra rutan och expanderar sedan en Utgivare.
  2. Högerklicka på publikationen som du vill verifiera prenumerationer för och klicka sedan på Verifiera alla prenumerationer.
  3. I dialogrutan Verifiera alla prenumerationer anger du vilken typ av verifiering som ska utföras (radantal eller radantal och kontrollsumma).
  4. Välj OK.
  5. Klicka på fliken Alla prenumerationer.
  6. Visa valideringsresultat. För varje push-prenumeration:
    1. Om agenten inte körs högerklickar du på prenumerationen och klickar sedan på Starta synkronisering.
    2. Högerklicka på prenumerationen och klicka sedan på Visa information.
    3. Visa information på fliken synkroniseringshistorik, i Sista meddelande för den valda sessionen textområde.

Använda Transact-SQL

  1. Utför sp_validatemergepublication (Transact-SQL)på utgivningsdatabasen. Ange @publication och något av följande värden för @level:

    • 1 – Verifiering endast av radantal.
    • 3 – Validering av binär kontrollsumma för radantal.

    Detta markerar alla prenumerationer för validering.

  2. Starta sammanfogningsagenten för varje prenumeration. Mer information finns i Synkronisera en pull-prenumeration och Synkronisera en push-prenumeration.

  3. Kontrollera agentens utdata för resultatet av valideringen. Mer information finns i Verifiera data hos prenumeranten.

Verifiera data med hjälp av parametrar för sammanslagningsagenten

  1. Starta Merge Agent på prenumeranten (pull-prenumeration) eller på distributören (push-prenumeration) från kommandotolken på något av följande sätt.

    • Ange värdet 1 (radantal) eller 3 (radantal och binär kontrollsumma) för parametern -Validate.
    • Specificera radräkningsverifiering eller radräkning och kontrollsummeverifiering för parametern -ProfileName.

    Mer information finns i Synkronisera en pull-prenumeration eller Synkronisera en push-prenumeration.

Använda replikeringshanteringsobjekt (RMO)

Med replikering kan du använda RMO (Replication Management Objects) för att programmatiskt verifiera att data i Prenumeranten matchar data i Publisher. Vilka objekt du använder beror på typen av replikeringstopologi. Transaktionsreplikering kräver validering av alla prenumerationer till en publikation.

Not

Ett exempel finns i Exempel (RMO), senare i det här avsnittet.

Verifiera data för alla artiklar i en transaktionspublikation

  1. Skapa en anslutning till Publisher med hjälp av klassen ServerConnection.

  2. Skapa en instans av klassen TransPublication. Ange egenskaperna Name och DatabaseName för publikationen. Ange egenskapen ConnectionContext till anslutningen som skapades i steg 1.

  3. Anropa metoden LoadProperties för att hämta objektets återstående egenskaper. Om den här metoden returnerar falsehar publikationsegenskaperna i steg 2 definierats felaktigt eller så finns publikationen inte.

  4. Anropa metoden ValidatePublication. Skicka följande:

    Detta markerar artiklarna för validering.

  5. Om den inte redan körs startar du distributionsagenten för att synkronisera varje prenumeration. Mer information finns i Synkronisera en push-prenumeration eller Synkronisera en pull-prenumeration. Resultatet av valideringsåtgärden skrivs till agenthistoriken. Mer information finns i Övervakning av replikering.

Verifiera data i alla prenumerationer till en sammanslagningspublikation

  1. Skapa en anslutning till Publisher med hjälp av klassen ServerConnection.

  2. Skapa en instans av klassen MergePublication. Ange egenskaperna Name och DatabaseName för publikationen. Ange egenskapen ConnectionContext till anslutningen som skapades i steg 1.

  3. Anropa metoden LoadProperties för att hämta objektets återstående egenskaper. Om den här metoden returnerar falsehar publikationsegenskaperna i steg 2 definierats felaktigt eller så finns publikationen inte.

  4. Anropa metoden ValidatePublication. Lämna över önskat ValidationOption.

  5. Kör sammanslagningsagenten för varje prenumeration för att starta valideringen eller vänta på nästa schemalagda agentkörning. Mer information finns i Synkronisera en pull-prenumeration och Synkronisera en push-prenumeration. Resultatet av valideringsåtgärden skrivs till agenthistoriken, som du visar med hjälp av Replikeringsövervakaren. För mer information, se Övervakning av replikering.

Verifiera data i en enda prenumeration till en sammanslagningspublikation

  1. Skapa en anslutning till Publisher med hjälp av klassen ServerConnection.

  2. Skapa en instans av klassen MergePublication. Ange egenskaperna Name och DatabaseName för publikationen. Ange egenskapen ConnectionContext till anslutningen som skapades i steg 1.

  3. Anropa metoden LoadProperties för att hämta objektets återstående egenskaper. Om den här metoden returnerar falsehar publikationsegenskaperna i steg 2 definierats felaktigt eller så finns publikationen inte.

  4. Anropa metoden ValidateSubscription. Skicka namnet på prenumeranten och prenumerationsdatabasen som håller på att verifieras samt den önskade ValidationOption.

  5. Kör merge-agenten för prenumerationen för att starta valideringen, eller vänta på nästa schemalagda agentkörning. Mer information finns i Synkronisera en pull-prenumeration och Synkronisera en push-prenumeration. Resultatet av valideringsåtgärden skrivs till agenthistoriken, som du visar med hjälp av Replikeringsövervakaren. Mer information finns i Monitoring Replication.

Exempel (RMO)

Det här exemplet markerar alla prenumerationer på en transaktionspublikation för validering av radantal.

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

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 = "AdventureWorks2022"

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

Det här exemplet markerar en specifik prenumeration på en sammanslagningspublikation för rowcount-validering.

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

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 = "AdventureWorks2022"
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2022Replica"

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

Se även

metodtips för replikeringsadministration