Sdílet prostřednictvím


Ověření replikovaných dat

platí pro:SQL Serverazure SQL Database

Toto téma popisuje, jak ověřovat data u odběratele SQL Serveru pomocí aplikace SQL Server Management Studio, Transact-SQL nebo objektů RMO (Replication Management Object).

Transakční a slučovací replikace umožňuje ověřit, že data odběratele odpovídají datům v Publisheru. Ověření lze provést pro konkrétní předplatná nebo pro všechna předplatná publikace. Zadejte jeden z následujících typů ověření a agent distribuce nebo slučovací agent ověří data při příštím spuštění:

  • Pouze počet řádků. Tím ověříte, jestli má tabulka odběratele stejný počet řádků jako tabulka v Publisheru, ale neověřuje, že obsah řádků odpovídá. Ověření počtu řádků poskytuje jednoduchý přístup k ověření, který vám umožní zjistit problémy s daty.
  • Počet řádků a binární kontrolní součet Kromě počítání počtu řádků u vydavatele a odběratele se pomocí algoritmu výpočtu kontrolního součtu vypočítá kontrolní součet všech dat. Pokud počet řádků selže, kontrolní součet se neprovede.

Kromě ověřování, že data u odebírajícího a publikujícího se shodují, poskytuje replikace sloučení možnost ověřit, že data jsou pro každého odebírajícího správně rozdělená. Další informace najdete v tématu Validace informací o oddílu pro odběratele sloučených dat.

Poznámka:

Spravovaná instance Azure SQL může být vydavatelem, distributorem a předplatitelem pro snímkovou a transakční replikaci. Databáze ve službě Azure SQL Database můžou být nabízeny pouze předplatitelům pro snímkovou a transakční replikaci. Další informace najdete v tématu Transakční replikace se službou Azure SQL Database a službou Azure SQL Managed Instance.

Jak funguje ověřování dat

SQL Server ověří data výpočtem počtu řádků nebo kontrolního součtu v Publisheru a následným porovnáním těchto hodnot s počtem řádků nebo kontrolním součtem vypočítaným u odběratele. Jedna hodnota se vypočítá pro celou tabulku publikace a jedna hodnota se vypočítá pro celou tabulku odběru, ale data v textu, ntextu nebo sloupcích obrázků nejsou součástí výpočtů.

Při provádění výpočtů se sdílené zámky dočasně umístí do tabulek, pro které se spouští počty řádků nebo kontrolní součty, ale výpočty se dokončí rychle a sdílené zámky se odeberou, obvykle v řádu sekund.

Při použití binárních kontrolních součtů dochází k 32bitové kontrole redundance (CRC) na základě sloupce po sloupci místo CRC na fyzickém řádku na datové stránce. To umožňuje, aby sloupce s tabulkou byly v libovolném pořadí fyzicky na datové stránce, ale stále se počítají do stejného CRC pro řádek. Binární ověření kontrolního součtu lze použít, pokud jsou v publikaci filtry řádků nebo sloupců.

Ověřování dat je třídílný proces:

  1. K ověření se označí jedno předplatné nebo všechna předplatná publikace. Označte předplatná pro ověření v dialogových oknech Ověřit předplatné, Ověřit předplatná a Ověřit všechna předplatná , která jsou k dispozici ve složce Místní publikace a ve složce Místní předplatná v aplikaci Microsoft SQL Server Management Studio. Odběry můžete také označit na kartě Všechna předplatná , na kartě Seznam sledování předplatného a na uzlu Publikace ve službě Sledování replikace. Informace o spuštění služby Replication Monitor naleznete v tématu Spuštění monitorování replikace.

  2. Předplatné se ověří při příští synchronizaci pomocí distribučního agenta (pro transakční replikaci) nebo agenta sloučení (pro slučovací replikaci). Distribuční agent obvykle běží nepřetržitě, v takovém případě dojde k okamžitému ověření; Slučovací agent se obvykle spouští na vyžádání, v takovém případě dojde k ověření po spuštění agenta.

  3. Zobrazení výsledků ověření:

    • V podrobných oknech v nástroji Sledování replikace: na kartě Distributor to Subscriber History (Historie odběratelů ) pro transakční replikaci a na kartě Historie synchronizace pro slučovací replikaci.
    • V dialogovém okně Zobrazit stav synchronizace v Management Studio.

Důležité informace a omezení

Při ověřování dat vezměte v úvahu následující problémy:

  • Před ověřením dat musíte zastavit všechny aktivity aktualizace u odběratelů (při ověřování není nutné zastavit aktivitu v Publisheru).
  • Vzhledem k tomu, že kontrolní součty a binární kontrolní součty můžou při ověřování velké sady dat vyžadovat velké množství prostředků procesoru, měli byste naplánovat ověření, které nastane, když na serverech používaných při replikaci dojde k nejnižší aktivitě.
  • Replikace ověřuje pouze tabulky; neověřuje, zda jsou články týkající se pouze schématu (například uložené procedury) stejné u Publisheru a Subscriberu.
  • Binární kontrolní součet lze použít s libovolnou publikovanou tabulkou. Kontrolní součet nemůže ověřit tabulky s filtry sloupců nebo logické struktury tabulek, u kterých se posuny sloupců liší (kvůli příkazům ALTER TABLE, které odstraňují nebo přidávají sloupce).
  • Ověřování replikace používá funkce kontrolní součet a binární kontrolní součet. Informace o jejich chování naleznete v tématu CHECKSUM (Transact-SQL) a BINARY_CHECKSUM (Transact-SQL).
  • Ověření pomocí binárního kontrolního součtu nebo kontrolního součtu může nesprávně hlásit selhání, pokud se datové typy u odběratele liší od datových typů u publikujícího. K tomu může dojít v případě, že provedete některou z těchto věcí:
    • Explicitně nastavte možnosti schématu pro mapování datových typů pro starší verze SQL Serveru.
    • Nastavte úroveň kompatibility publikace pro sloučení na starší verzi SQL Serveru a publikované tabulky obsahují jeden nebo více datových typů, které musí být mapovány pro tuto verzi.
    • Ručně inicializujte předplatné a používejte různé datové typy u odběratele.
  • Binární kontrolní součet a ověření kontrolního součtu nejsou podporovány pro transformovatelná předplatná pro transakční replikaci.
  • Ověřování není podporováno pro data replikovaná do odběratelů jiného systému než SQL Server.
  • Postupy pro Monitor replikace jsou určené jenom pro push předplatná, protože v Monitoru replikace nelze synchronizovat pull předplatná. Předplatné ale můžete označit pro ověření a zobrazit výsledky ověření pro při vyžádání odběry ve službě Monitor replikace.
  • Výsledky ověření označují, jestli ověření proběhlo úspěšně nebo selhalo, ale nezadávejte, které řádky ověření selhaly, pokud došlo k chybě. K porovnání dat u Publisher a odběratele použijte nástroj tablediff. Další informace o použití tohoto nástroje s replikovanými daty naleznete v tématu Porovnání replikovaných tabulek pro rozdíly (programování replikace).

Výsledky ověření dat

Po dokončení ověření agent distribuce nebo sloučení protokoluje zprávy o úspěchu nebo neúspěchu (replikace neuvádí, které řádky selhaly). Tyto zprávy lze zobrazit v sql Server Management Studiu, monitorování replikace a systémových tabulkách replikace. Výše uvedené téma s postupy ukazuje, jak spustit ověření a zobrazit výsledky.

Pokud chcete zpracovávat chyby ověřování, zvažte následující:

Články v transakční replikaci

Použití aplikace SQL Server Management Studio

  1. Připojte se k Publisheru v aplikaci SQL Server Management Studio a potom rozbalte uzel serveru.
  2. Rozbalte složku Replication a potom rozbalte složku Místní publikace.
  3. Klikněte pravým tlačítkem myši na publikaci, pro kterou chcete ověřit předplatná, a potom klikněte na možnost Ověřit předplatná.
  4. V dialogovém okně Ověřit předplatná vyberte, která předplatná chcete ověřit:
    • Vyberte Ověřit všechna předplatná SQL Serveru.
    • Vyberte Ověřit následující předplatná a pak vyberte jedno nebo více předplatných.
  5. Chcete-li zadat typ ověření, který se má provést (počet řádků nebo počet řádků a kontrolní součet), klepněte na tlačítko Možnosti ověření ověření a potom zadejte možnosti v dialogovém okně Možnosti ověření předplatného .
  6. Vyberte OK.
  7. Výsledky ověření můžete zobrazit v monitorování replikace nebo v dialogovém okně Zobrazit stav synchronizace . Pro každé předplatné:
    1. Rozbalte publikaci, klikněte pravým tlačítkem myši na odběr a potom klepněte na příkaz Zobrazit stav synchronizace.
    2. Pokud agent není spuštěný, klepněte na tlačítko Start v dialogovém okně Zobrazit stav synchronizace . V dialogovém okně se zobrazí informační zprávy týkající se ověření.
      Pokud se nezobrazují žádné zprávy týkající se ověření, agent už zaprotokoloval další zprávu. V tomto případě si prohlédněte výsledky ověření ve službě Monitor replikace. Další informace naleznete v postupech "Jak na to" sledování replikace v tomto tématu.

Použití Transact-SQL

Všechny články

  1. V publisheru v databázi publikace spusťte sp_publication_validation (Transact-SQL). Zadejte @publication a jednu z následujících hodnot pro @rowcount_only:

    • 1 – pouze kontrola počtu řádků (výchozí)
    • 2 – počet řádků a binární kontrolní součet.

    Poznámka:

    Při spuštění sp_publication_validation (Transact-SQL), sp_article_validation (Transact-SQL) se spustí pro každý článek v publikaci. Chcete-li úspěšně spustit sp_publication_validation (Transact-SQL), musíte mít oprávnění SELECT pro všechny sloupce v publikovaných základních tabulkách.

  2. (Volitelné) Pokud ještě není spuštěný, spusťte distribučního agenta pro každé předplatné. Další informace naleznete v tématu Synchronizace odběru vyžádané replikace a Synchronizace nabízeného odběru.

  3. Zkontrolujte výstup agenta pro výsledek ověření.

Jeden článek

  1. V aplikaci Publisher v databázi publikace spusťte sp_article_validation (Transact-SQL). Zadejte @publication, název článku pro @articlea jednu z následujících hodnot pro @rowcount_only:

    • 1 – Pouze kontrola počtu řádků (výchozí)
    • 2 – Počet řádků a binární kontrolní součet.

    Poznámka:

    Chcete-li úspěšně spustit sp_article_validation (Transact-SQL), musíte mít oprávnění SELECT pro všechny sloupce v publikované základní tabulce.

  2. (Volitelné) Pokud ještě není spuštěný, spusťte distribučního agenta pro každé předplatné. Další informace naleznete v tématu Synchronizace odběru vyžádané replikace a Synchronizace nabízeného odběru.

  3. Zkontrolujte výstup agenta pro výsledek ověření.

Jeden odběratel

  1. V aplikaci Publisher v databázi publikace otevřete explicitní transakci pomocí BEGIN TRANSACTION (Transact-SQL).

  2. Na serveru Publisher v publikační databázi spusťte sp_marksubscriptionvalidation (Transact-SQL). Zadejte publikaci pro @publication, název odběratele pro @subscribera název databáze odběru pro @destination_db.

  3. (Volitelné) Opakujte krok 2 pro každé ověřované předplatné.

  4. V aplikaci Publisher v databázi publikace spusťte sp_article_validation (Transact-SQL). Zadejte @publication, název článku pro @articlea jednu z následujících hodnot pro @rowcount_only:

    • 1 – Pouze kontrola počtu řádků (výchozí)
    • 2 – Počet řádků a binární kontrolní součet.

    Poznámka:

    Chcete-li úspěšně spustit sp_article_validation (Transact-SQL), musíte mít oprávnění SELECT pro všechny sloupce v publikované základní tabulce.

  5. V Aplikaci Publisher v databázi publikace potvrďte transakci pomocí COMMIT TRANSACTION (Transact-SQL).

  6. (Volitelné) Opakujte kroky 1 až 5 pro každý ověřovaný článek.

  7. (Volitelné) Pokud ještě není spuštěný, spusťte distribučního agenta. Další informace naleznete v tématu Synchronizace odběru vyžádané replikace a Synchronizace nabízeného odběru.

  8. Zkontrolujte výstup agenta pro výsledek ověření. Další informace najdete v tématu Ověření dat u odběratele.

Všechna push předplatná na transakční publikaci

Použití monitorování replikace

  1. V nástroji Sledování replikace rozbalte v levém podokně skupinu vydavatele a potom rozbalte položku Publisher.

  2. Klikněte pravým tlačítkem myši na publikaci, pro kterou chcete ověřit předplatná, a potom klikněte na možnost Ověřit předplatná.

  3. V dialogovém okně Ověřit předplatná vyberte, která předplatná chcete ověřit:

    • Vyberte Ověřit všechna předplatná SQL Serveru.
    • Vyberte Ověřit následující předplatná a pak vyberte jedno nebo více předplatných.
  4. Chcete-li zadat typ ověření, který se má provést (počet řádků nebo počet řádků a kontrolní součet), klepněte na tlačítko Možnosti ověření ověření a potom zadejte možnosti v dialogovém okně Možnosti ověření předplatného .

  5. Vyberte OK.

  6. Klikněte na kartu Všechna předplatná .

  7. Umožňuje zobrazit výsledky ověření. Pro každé pushové předplatné:

    1. Pokud agent není spuštěný, klikněte pravým tlačítkem myši na předplatné a potom klikněte na spustit synchronizaci.
    2. Klikněte pravým tlačítkem myši na předplatné a potom klikněte na Zobrazit podrobnosti.
    3. Zobrazte informace na kartě Distributor do Historie odběratelů v textové oblasti Akce ve vybrané relaci.

Pro jedno předplatné publikace slučování

Použití aplikace SQL Server Management Studio

  1. Připojte se k Publisheru v aplikaci SQL Server Management Studio a potom rozbalte uzel serveru.

  2. Rozbalte složku Replication a potom rozbalte složku Místní publikace.

  3. Rozbalte publikaci, pro kterou chcete ověřit předplatná, klikněte pravým tlačítkem myši na předplatné a potom klikněte na ověřit předplatné.

  4. V dialogovém okně Ověřit předplatné vyberte Ověřit toto předplatné.

  5. Chcete-li určit typ ověření, který se má provést (počet řádků nebo počet řádků a kontrolní součet), klepněte na tlačítko Možnosti a potom zadejte možnosti v dialogovém okně Možnosti ověření předplatného .

  6. Vyberte OK.

  7. Zobrazení výsledků ověření ve službě Monitor replikace nebo v dialogovém okně Zobrazit stav synchronizace :

    1. Rozbalte publikaci, klikněte pravým tlačítkem myši na odběr a potom klepněte na příkaz Zobrazit stav synchronizace.
    2. Pokud agent není spuštěný, klepněte na tlačítko Start v dialogovém okně Zobrazit stav synchronizace . V dialogovém okně se zobrazí informační zprávy týkající se ověření.

    Pokud se nezobrazují žádné zprávy týkající se ověření, agent už zaprotokoloval další zprávu. V tomto případě si prohlédněte výsledky ověření ve službě Monitor replikace. Další informace naleznete v postupech "Jak na to" sledování replikace v tomto tématu.

Pro všechna předplatná sloučené publikace

Použití aplikace SQL Server Management Studio

  1. Připojte se k Publisheru v aplikaci SQL Server Management Studio a potom rozbalte uzel serveru.

  2. Rozbalte složku Replication a potom rozbalte složku Místní publikace.

  3. Klikněte pravým tlačítkem myši na publikaci, pro kterou chcete ověřit předplatná, a potom klikněte na možnost Ověřit všechna předplatná.

  4. V dialogovém okně Ověřit všechna předplatná zadejte typ ověření, který se má provést (počet řádků nebo počet řádků a kontrolní součet).

  5. Vyberte OK.

  6. Výsledky ověření můžete zobrazit v monitorování replikace nebo v dialogovém okně Zobrazit stav synchronizace . Pro každé předplatné:

    1. Rozbalte publikaci, klikněte pravým tlačítkem myši na odběr a potom klepněte na příkaz Zobrazit stav synchronizace.
    2. Pokud agent není spuštěný, klepněte na tlačítko Start v dialogovém okně Zobrazit stav synchronizace . V dialogovém okně se zobrazí informační zprávy týkající se ověření.

    Pokud se nezobrazují žádné zprávy týkající se ověření, agent už zaprotokoloval další zprávu. V tomto případě si prohlédněte výsledky ověření ve službě Monitor replikace. Další informace naleznete v postupech "Jak na to" sledování replikace v tomto tématu.

Pro jedno push předplatné k slučovací publikaci

Použití monitorování replikace

  1. V nástroji Sledování replikace rozbalte skupinu vydavatele v levém podokně, rozbalte položku Publisher a klikněte na publikaci.
  2. Klikněte na kartu Všechna předplatná .
  3. Klikněte pravým tlačítkem myši na předplatné, které chcete ověřit, a potom klikněte na ověřit předplatné.
  4. V dialogovém okně Ověřit předplatné vyberte Ověřit toto předplatné.
  5. Chcete-li určit typ ověření, který se má provést (počet řádků nebo počet řádků a kontrolní součet), klepněte na tlačítko Možnosti a potom zadejte možnosti v dialogovém okně Možnosti ověření předplatného .
  6. Vyberte OK.
  7. Klikněte na kartu Všechna předplatná .
  8. Zobrazení výsledků ověření:
    1. Pokud agent není spuštěný, klikněte pravým tlačítkem myši na předplatné a potom klikněte na spustit synchronizaci.
    2. Klikněte pravým tlačítkem myši na předplatné a potom klikněte na Zobrazit podrobnosti.
    3. Zobrazte informace na kartě Historie synchronizace v oblasti textu relace poslední zprávy z vybrané relace.

Použití Transact-SQL

  1. V aplikaci Publisher v databázi publikace spusťte sp_validatemergesubscription (Transact-SQL). Zadejte @publicationnázev odběratele @subscriber, název databáze předplatného pro @subscriber_dba jednu z následujících hodnot pro @level:

    • 1 – Ověření pouze pro počet řádků
    • 3 – Ověření binárního kontrolního součtu pro počet řádků

    Tím se označí vybrané předplatné k ověření.

  2. Spusťte agenta sloučení pro každé předplatné. Další informace naleznete v tématu Synchronizace odběru vyžádané replikace a Synchronizace nabízeného odběru.

  3. Zkontrolujte výstup agenta pro výsledek ověření.

  4. Opakujte kroky 1 až 3 pro každé ověřované předplatné.

Poznámka:

Odběr slučovací publikace lze také ověřit na konci synchronizace zadáním parametru -Validate při spuštění agenta sloučení replikace.

Pro všechna push předplatná pro slučovací publikaci

Použití monitorování replikace

  1. V nástroji Sledování replikace rozbalte v levém podokně skupinu vydavatele a potom rozbalte položku Publisher.
  2. Klikněte pravým tlačítkem myši na publikaci, pro kterou chcete ověřit předplatná, a potom klikněte na možnost Ověřit všechna předplatná.
  3. V dialogovém okně Ověřit všechna předplatná zadejte typ ověření, který se má provést (počet řádků nebo počet řádků a kontrolní součet).
  4. Vyberte OK.
  5. Klikněte na kartu Všechna předplatná .
  6. Umožňuje zobrazit výsledky ověření. Pro každé push předplatné:
    1. Pokud agent není spuštěný, klikněte pravým tlačítkem myši na předplatné a potom klikněte na spustit synchronizaci.
    2. Klikněte pravým tlačítkem myši na předplatné a potom klikněte na Zobrazit podrobnosti.
    3. Zobrazte informace na kartě Historie synchronizace v oblasti textu relace poslední zprávy z vybrané relace.

Použití Transact-SQL

  1. V publisheru v databázi publikace spusťte sp_validatemergepublication (Transact-SQL). Zadejte @publication a jednu z následujících hodnot pro @level:

    • 1 – Ověření pouze pro počet řádků
    • 3 – Ověření binárního kontrolního součtu pro počet řádků

    Tím se označí všechna předplatná k ověření.

  2. Spusťte agenta sloučení pro každé předplatné. Další informace naleznete v tématu Synchronizace odběru vyžádané replikace a Synchronizace nabízeného odběru.

  3. Zkontrolujte výstup agenta pro výsledek ověření. Další informace najdete v tématu Ověření dat u odběratele.

Ověření dat pomocí parametrů agenta sloučení

  1. Spusťte agenta sloučení na straně odběratele (vyžádané předplatné) nebo na straně distributora (nabízené předplatné) z příkazového řádku jedním z následujících způsobů.

    • Určení hodnoty 1 (počet řádků) nebo 3 (počet řádků a binární kontrolní součet) pro parametr -Validate.
    • Zadání ověření počtu řádků nebo ověření počtu řádků a kontrolního součtu pro parametr -ProfileName.

    Další informace naleznete v tématu Synchronizace vyžádaného předplatného nebo Synchronizace nabízeného předplatného.

Použití objektů správy replikace (RMO)

Replikace umožňuje programově ověřit, že data odběratele odpovídají datům v Publisheru pomocí objektů RMO (Replication Management Objects). Používané objekty závisí na typu topologie replikace. Transakční replikace vyžaduje ověření všech odběrů publikace.

Poznámka:

Příklad najdete v části Příklad (RMO) dále v této části.

Ověření dat pro všechny články v transakční publikaci

  1. Vytvořte připojení k Publisheru pomocí třídy ServerConnection.

  2. Vytvořte instanci třídy TransPublication. Nastavte vlastnosti Name a DatabaseName pro publikaci. Nastavte vlastnost ConnectionContext na připojení vytvořené v kroku 1.

  3. Zavolejte metodu LoadProperties pro získání zbývajících vlastností objektu. Pokud tato metoda vrátí false, buď vlastnosti publikace v kroku 2 byly definovány nesprávně nebo publikace neexistuje.

  4. Zavolejte metodu ValidatePublication . Předejte následující:

    Tím se označí články pro ověření.

  5. Pokud ještě není spuštěný, spusťte distribučního agenta pro synchronizaci jednotlivých předplatných. Další informace naleznete v Synchronizaci Push předplatného nebo Synchronizaci Pull předplatného. Výsledek ověřovací operace se zapíše do historie agenta. Další informace naleznete v tématu Monitorování replikace.

Ověření dat ve všech předplatných pro slučovací publikaci

  1. Vytvořte připojení k Publisheru pomocí třídy ServerConnection.

  2. Vytvořte instanci třídy MergePublication. Nastavte vlastnosti Name a DatabaseName pro publikaci. Nastavte vlastnost ConnectionContext na připojení vytvořené v kroku 1.

  3. Zavolejte metodu LoadProperties pro získání zbývajících vlastností objektu. Pokud tato metoda vrátí false, buď vlastnosti publikace v kroku 2 byly definovány nesprávně nebo publikace neexistuje.

  4. Zavolejte metodu ValidatePublication . Předejte požadovanou ValidationOptionhodnotu .

  5. Spusťte agenta sloučení pro každé předplatné, aby se spustilo ověření, nebo počkejte na další naplánované spuštění agenta. Další informace naleznete v tématu Synchronizace odběru vyžádané replikace a Synchronizace nabízeného odběru. Výsledek operace ověření se zapíše do historie agenta, kterou zobrazíte pomocí monitorování replikace. Další informace naleznete v tématu Monitorování replikace.

Prověření dat v rámci jediného předplatného slučovací publikace

  1. Vytvořte připojení k Publisheru pomocí třídy ServerConnection.

  2. Vytvořte instanci třídy MergePublication. Nastavte vlastnosti Name a DatabaseName pro publikaci. Nastavte vlastnost ConnectionContext na připojení vytvořené v kroku 1.

  3. Zavolejte metodu LoadProperties pro získání zbývajících vlastností objektu. Pokud tato metoda vrátí false, buď vlastnosti publikace v kroku 2 byly definovány nesprávně nebo publikace neexistuje.

  4. Zavolejte metodu ValidateSubscription . Uveďte název databáze předplatitele a předplatného, která se ověřuje, a požadovaný ValidationOption.

  5. Spusťte agenta pro sloučení pro předplatné, aby se zahájilo ověřování, nebo počkejte na další naplánované spuštění agenta. Další informace naleznete v tématu Synchronizace odběru vyžádané replikace a Synchronizace nabízeného odběru. Výsledek operace ověření se zapíše do historie agenta, kterou zobrazíte pomocí monitorování replikace. Další informace naleznete v tématu Monitorování replikace.

Příklad (RMO)

Tento příklad označuje všechna předplatná transakční publikace pro ověření počtu řádků.

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

Tento příklad označuje konkrétní předplatné pro sloučení publikace pro ověření počtu řádků.

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

Viz také

Osvědčené postupy pro správu replikace