Megosztás a következőn keresztül:


Replikált adatok ellenőrzése

A következőkre vonatkozik:SQL ServerAzure SQL Database

Ez a témakör azt ismerteti, hogyan érvényesítheti az adatokat az sql serveres előfizetőnél az SQL Server Management Studio, a Transact-SQL vagy a Replikációkezelési objektumok (RMO) használatával.

A tranzakciós és egyesítési replikáció lehetővé teszi annak ellenőrzését, hogy az Előfizető adatai megegyeznek-e a Közzétevő adataival. Az érvényesítés adott előfizetésekre vagy egy kiadvány összes előfizetésére is elvégezhető. Adja meg az alábbi érvényesítési típusok egyikét, és a terjesztési ügynök vagy az egyesítési ügynök a következő futtatáskor ellenőrzi az adatokat:

  • Csak a sorok száma. Ez ellenőrzi, hogy az Előfizető táblája ugyanannyi sort tartalmaz-e, mint a Publisher táblája, de nem ellenőrzi, hogy a sorok tartalma megegyezik-e. A sorok számának ellenőrzése könnyű megközelítést biztosít az ellenőrzéshez, amely felfedheti az adataival kapcsolatos problémákat.
  • Sorok száma és bináris ellenőrzőösszeg. A Publisher és az Előfizető sorainak számbavétele mellett az összes adat ellenőrzőösszege is ki lesz számítva az ellenőrzőösszeg-algoritmus használatával. Ha a sorok számlálása sikertelen, az ellenőrzőösszeget nem hajtják végre.

Amellett, hogy érvényesíti, hogy az adatok egyeznek az előfizetőnél és a közzétevőnél, az egyesítési replikáció lehetővé teszi annak ellenőrzését, hogy az adatok az egyes előfizetők számára megfelelően legyenek particionálva. További információ: Partícióadatok ellenőrzése egyesítési előfizetők számára.

Megjegyzés:

A felügyelt Azure SQL-példány közzétevő, terjesztő és előfizető lehet a pillanatképek és a tranzakciós replikáció számára. Az Azure SQL Database adatbázisai csak pillanatkép- és tranzakciós replikáció push előfizetői lehetnek. További információ: Tranzakciós replikáció az Azure SQL Database-sel és a felügyelt Azure SQL-példányokkal.

Az adatérvényesítés működése

Az SQL Server egy sorszám vagy egy ellenőrzőösszeg kiszámolásával ellenőrzi az adatokat a Publisherben, majd összehasonlítja ezeket az értékeket az Előfizetőnél kiszámított sorok számával vagy ellenőrzőösszegével. A program egy értéket számít ki a teljes kiadványtáblára, egy értéket pedig a teljes előfizetési táblára, de a számítások nem tartalmazzák a szöveges, az ntext vagy a képoszlopban lévő adatokat.

A számítások végrehajtása közben a megosztott zárolások ideiglenesen azon táblákra kerülnek, amelyeken sorszámokat vagy ellenőrzőösszegeket futtatnak, de a számítások gyorsan befejeződnek, és a megosztott zárolások törlődnek, általában másodpercek alatt.

Bináris ellenőrzőösszegek használata esetén a 32 bites redundancia-ellenőrzés (CRC) oszloponként történik, nem pedig CRC az adatoldal fizikai sorában. Ez lehetővé teszi, hogy a táblázatot tartalmazó oszlopok fizikailag bármilyen sorrendben legyenek az adatoldalon, de továbbra is ugyanazt a CRC-t számítják ki a sorhoz. A bináris ellenőrzőösszeg ellenőrzése akkor használható, ha sor- vagy oszlopszűrők vannak a kiadványon.

Az adatok érvényesítése három részből álló folyamat:

  1. Egy előfizetés vagy egy kiadvány összes előfizetése érvényesítésre van megjelölve . Jelölje meg az előfizetéseket az előfizetés érvényesítése, az Előfizetések érvényesítése és az Összes előfizetés érvényesítése párbeszédpanelen, amelyek a Microsoft SQL Server Management Studio Helyi kiadványok mappájából és a Helyi előfizetések mappából érhetők el. Az előfizetéseket a Minden előfizetés lapról, az Előfizetések figyelése lapról és a Replikációs Monitor publikációs csomópontján is megjelölheti. A replikációfigyelő elindításáról további információt a Replikációfigyelő indítása című témakörben talál.

  2. Az előfizetések akkor lesznek érvényesítve, amikor a terjesztési ügynök (tranzakciós replikáció esetén) vagy az egyesítési ügynök (az egyesítési replikációhoz) legközelebb szinkronizálja azt. A terjesztési ügynök általában folyamatosan fut, ebben az esetben az ellenőrzés azonnal megtörténik; Az egyesítési ügynök általában igény szerint fut, ebben az esetben az érvényesítés az ügynök futtatása után történik.

  3. Az érvényesítési eredmények megtekintése:

    • A Replikációfigyelő részletes ablakaiban: a tranzakciós replikáció terjesztőtől előfizetőig történő előzményei lap, valamint az egyesítési replikáció szinkronizációs előzményei lap.
    • A Szinkronizálási állapot megtekintése párbeszédpanelen a Management Studióban.

Megfontolandó szempontok és korlátozások

Az adatok ellenőrzésekor vegye figyelembe az alábbi problémákat:

  • Az adatok érvényesítése előtt le kell állítania az összes frissítési tevékenységet az előfizetőknél (az ellenőrzés során nem szükséges leállítani a tevékenységet a Közzétevőnél).
  • Mivel az ellenőrzőösszegek és a bináris ellenőrzőösszegek nagy mennyiségű processzorerőforrást igényelhetnek egy nagy adatkészlet ellenőrzésekor, ütemezze az ellenőrzés elvégzését, ha a replikációhoz használt kiszolgálókon a legkisebb tevékenység van.
  • A replikáció csak táblákat érvényesít; nem ellenőrzi, hogy csak a sémacikkek (például a tárolt eljárások) azonosak-e a Közzétevőnél és az Előfizetőnél.
  • A bináris ellenőrzőösszeg bármely közzétett táblával használható. Az ellenőrzőösszeg nem tudja érvényesíteni az oszlopszűrőkkel rendelkező táblákat, illetve azokat a logikai táblázatstruktúrákat, amelyekben az oszlopeltolások eltérnek (az oszlopok elvetését vagy hozzáadását lehetővé tevő ALTER TABLE utasítások miatt).
  • A replikáció érvényesítése az ellenőrzőösszeget és a binary_checksum függvényt használja. Viselkedésükről további információt a CHECKSUM (Transact-SQL) és BINARY_CHECKSUM (Transact-SQL) című témakörben talál.
  • A bináris ellenőrzőösszeg vagy ellenőrzőösszeg használatával végzett ellenőrzés tévesen jelenthet hibát, ha az adattípusok eltérnek az Előfizetőnél, mint amilyenek a Közzétevőnél vannak. Ez akkor fordulhat elő, ha az alábbi műveletek valamelyikét hajtja végre:
    • Explicit módon állítsa be a sémabeállításokat az SQL Server korábbi verzióihoz tartozó adattípusok leképezéséhez.
    • Állítsa be az egyesítő kiadványok közzétételi kompatibilitási szintjét az SQL Server egy korábbi verziójára, és a közzétett táblák egy vagy több adattípust tartalmaznak, amelyeket le kell képezni ehhez a verzióhoz.
    • Az előfizetés manuális inicializálása és különböző adattípusok használata az Előfizetőnél.
  • A bináris ellenőrzőösszegek és azok érvényesítése nem támogatott a tranzakciós replikáció átalakítható előfizetéseinél.
  • Az érvényesítés nem támogatott a nem SQL Server-előfizetőknek replikált adatok esetében.
  • A Replikációfigyelő eljárásai csak leküldéses előfizetésekre használhatók, mert a lekéréses előfizetések nem szinkronizálhatók a Replikációfigyelőben. Azonban megjelölhet egy előfizetést érvényesítésre, és megtekintheti a lekéréses előfizetések érvényesítési eredményeit a Replikációfigyelőben.
  • Az érvényesítési eredmények azt jelzik, hogy az érvényesítés sikeres vagy sikertelen volt-e, de ne adja meg, hogy melyik sor sikertelen volt, ha hiba történt. A Publisher és az Előfizető adatainak összehasonlításához használja a tablediff segédprogramot. A segédprogram replikált adatokkal való használatáról további információt a Replikált táblák összehasonlítása a különbségekhez (replikációs programozás) című témakörben talál.

Adatérvényesítési eredmények

Ha az ellenőrzés befejeződött, a terjesztési ügynök vagy az egyesítési ügynök naplózza a sikeres vagy sikertelen üzeneteket (a replikáció nem jelenti, hogy mely sorok sikertelenek). Ezek az üzenetek az SQL Server Management Studio, a Replikációfigyelő és a replikációs rendszer tábláiban tekinthetők meg. A fent felsorolt útmutató témakör bemutatja, hogyan futtathat érvényesítést, és tekintheti meg az eredményeket.

Az érvényesítési hibák kezeléséhez vegye figyelembe a következőket:

Cikkek a tranzakciós replikációban

Az SQL Server Management Studio használata

  1. Csatlakozzon a Publisherhez az SQL Server Management Studióban, majd bontsa ki a kiszolgálócsomópontot.
  2. Bontsa ki a Replikáció mappát, majd bontsa ki a Helyi kiadványok mappát.
  3. Kattintson a jobb gombbal arra a kiadványra, amelynek az előfizetéseit ellenőrizni szeretné, majd kattintson az Előfizetések érvényesítése parancsra.
  4. Az Előfizetések érvényesítése párbeszédpanelen válassza ki az érvényesítendő előfizetéseket:
    • Válassza az Összes SQL Server-előfizetés ellenőrzése lehetőséget.
    • Válassza az Alábbi előfizetések érvényesítése lehetőséget, majd válasszon ki egy vagy több előfizetést.
  5. A végrehajtandó ellenőrzés típusának (sorszám, sorszám és ellenőrzőösszeg) megadásához kattintson az Érvényesítési beállítások gombra, majd adja meg a beállításokat az Előfizetés érvényesítési beállításai párbeszédpanelen.
  6. Kattintson az OK gombra.
  7. Az érvényesítési eredmények megtekintése a Replikációfigyelőben vagy a Szinkronizálási állapot megtekintése párbeszédpanelen. Minden előfizetéshez:
    1. Bontsa ki a kiadványt, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás állapotának megtekintése parancsra.
    2. Ha az ügynök nem fut, kattintson a Start gombra a Szinkronizálási állapot megtekintése párbeszédpanelen. A párbeszédpanelen megjelennek az érvényesítéssel kapcsolatos tájékoztató üzenetek.
      Ha nem látja az ellenőrzéssel kapcsolatos üzeneteket, az ügynök már naplózott egy későbbi üzenetet. Ebben az esetben tekintse meg az érvényesítési eredményeket a Replikációfigyelőben. További információkért tekintse meg a replikációfigyelő eljárásokat ebben a témakörben.

Transact-SQL használata

Minden cikk

  1. A közzétételi adatbázisban a Publisherben hajtsa végre a sp_publication_validation (Transact-SQL). Adja meg a következő értékek egyikét a @publication értékhez @rowcount_only:

    • 1 – csak a sorszám ellenőrzése (az alapértelmezett)
    • 2 – sorszám és bináris ellenőrzőösszeg.

    Megjegyzés:

    A sp_publication_validation (Transact-SQL) végrehajtásakor a sp_article_validation (Transact-SQL) végre van hajtva a kiadvány minden egyes cikkére. A sp_publication_validation (Transact-SQL) sikeres végrehajtásához SELECT engedélyekkel kell rendelkeznie a közzétett alaptáblák összes oszlopához.

  2. (Nem kötelező) Indítsa el a terjesztési ügynököt minden előfizetéshez, ha még nem fut. További információ: Lekéréses előfizetés szinkronizálása és leküldéses előfizetés szinkronizálása.

  3. Ellenőrizze az ügynök kimenetét az ellenőrzés eredményének ellenőrzéséhez.

Önálló cikk

  1. A Publisherben, a közzétételi adatbázisban hajtsa végre a sp_article_validation (Transact-SQL). Adja meg @publication, a cikk @article nevét, és a @rowcount_only egyik értékét a következők közül:

    • 1 – Csak a sorszám ellenőrzése (az alapértelmezett)
    • 2 – Sorszám és bináris ellenőrzőösszeg.

    Megjegyzés:

    A sp_article_validation (Transact-SQL) sikeres végrehajtásához SELECT engedélyekkel kell rendelkeznie a közzétett alaptábla összes oszlopához.

  2. (Nem kötelező) Indítsa el a terjesztési ügynököt minden előfizetéshez, ha még nem fut. További információ: Lekéréses előfizetés szinkronizálása és leküldéses előfizetés szinkronizálása.

  3. Ellenőrizze az ügynök kimenetét az ellenőrzés eredményének ellenőrzéséhez.

Egyetlen előfizető

  1. Nyisson meg egy explicit tranzakciót a közzétételi adatbázisban a Publisherben a BEGIN TRANSACTION (Transact-SQL) használatával.

  2. A Publisherben a közzétételi adatbázison hajtsa végre a sp_marksubscriptionvalidation (Transact-SQL). Adja meg a kiadványt @publication, az előfizető @subscribernevét és a hozzá tartozó @destination_dbelőfizetési adatbázis nevét.

  3. (Nem kötelező) Ismételje meg a 2. lépést minden érvényesítendő előfizetés esetében.

  4. A Publisherben, a közzétételi adatbázisban hajtsa végre a sp_article_validation (Transact-SQL). Adja meg @publication, a cikk @article nevét, és a @rowcount_only egyik értékét a következők közül:

    • 1 – Csak a sorszám ellenőrzése (az alapértelmezett)
    • 2 – Sorszám és bináris ellenőrzőösszeg.

    Megjegyzés:

    A sp_article_validation (Transact-SQL) sikeres végrehajtásához SELECT engedélyekkel kell rendelkeznie a közzétett alaptábla összes oszlopához.

  5. A közzétételi adatbázisban a Publisherben véglegesítse a tranzakciót a COMMIT TRANSACTION (Transact-SQL) használatával.

  6. (Nem kötelező) Ismételje meg az 1–5. lépést minden érvényesítendő cikk esetében.

  7. (Nem kötelező) Indítsa el a terjesztési ügynököt, ha még nem fut. További információ: Lekéréses előfizetés szinkronizálása és leküldéses előfizetés szinkronizálása.

  8. Ellenőrizze az ügynök kimenetét az ellenőrzés eredményének ellenőrzéséhez. További információ: Adatok érvényesítése az előfizetőnél.

A tranzakciós kiadványhoz tartozó összes leküldéses előfizetés

Replikációfigyelő használata

  1. A Replikációfigyelőben bontsa ki a publishercsoportot a bal oldali panelen, majd bontsa ki a Publishert.

  2. Kattintson a jobb gombbal arra a kiadványra, amelynek az előfizetéseit ellenőrizni szeretné, majd kattintson az Előfizetések érvényesítése parancsra.

  3. Az Előfizetések érvényesítése párbeszédpanelen válassza ki az érvényesítendő előfizetéseket:

    • Válassza az Összes SQL Server-előfizetés ellenőrzése lehetőséget.
    • Válassza az Alábbi előfizetések érvényesítése lehetőséget, majd válasszon ki egy vagy több előfizetést.
  4. A végrehajtandó ellenőrzés típusának (sorszám, sorszám és ellenőrzőösszeg) megadásához kattintson az Érvényesítési beállítások gombra, majd adja meg a beállításokat az Előfizetés érvényesítési beállításai párbeszédpanelen.

  5. Kattintson az OK gombra.

  6. Kattintson a Minden előfizetés fülre .

  7. Érvényesítési eredmények megtekintése. Minden push típusú előfizetés esetén:

    1. Ha az ügynök nem fut, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás indítása parancsra.
    2. Kattintson a jobb gombbal az előfizetésre, majd kattintson a Részletek megtekintése parancsra.
    3. A Disztribútor–előfizetői előzmények lapon található információkat a Kijelölt munkamenet műveleteinek szövegterületén tekintheti meg.

Egyetlen előfizetés egy Merge kiadványhoz

Az SQL Server Management Studio használata

  1. Csatlakozzon a Publisherhez az SQL Server Management Studióban, majd bontsa ki a kiszolgálócsomópontot.

  2. Bontsa ki a Replikáció mappát, majd bontsa ki a Helyi kiadványok mappát.

  3. Bontsa ki azt a kiadványt, amelyhez az előfizetéseket ellenőrizni szeretné, kattintson a jobb gombbal az előfizetésre, majd kattintson az Előfizetés érvényesítése parancsra.

  4. Az Előfizetés érvényesítése párbeszédpanelen válassza az Előfizetés érvényesítése lehetőséget.

  5. A végrehajtandó érvényesítés típusának (sorszám, sorszám és ellenőrzőösszeg) megadásához kattintson a Beállítások gombra, majd adja meg a beállításokat az Előfizetés érvényesítési beállításai párbeszédpanelen.

  6. Kattintson az OK gombra.

  7. Az érvényesítési eredmények megtekintése a Replikációfigyelőben vagy a Szinkronizálási állapot megtekintése párbeszédpanelen:

    1. Bontsa ki a kiadványt, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás állapotának megtekintése parancsra.
    2. Ha az ügynök nem fut, kattintson a Start gombra a Szinkronizálási állapot megtekintése párbeszédpanelen. A párbeszédpanelen megjelennek az érvényesítéssel kapcsolatos tájékoztató üzenetek.

    Ha nem látja az ellenőrzéssel kapcsolatos üzeneteket, az ügynök már naplózott egy későbbi üzenetet. Ebben az esetben tekintse meg az érvényesítési eredményeket a Replikációfigyelőben. További információkért tekintse meg a replikációfigyelő eljárásokat ebben a témakörben.

Összevont publikáció minden előfizetéshez

Az SQL Server Management Studio használata

  1. Csatlakozzon a Publisherhez az SQL Server Management Studióban, majd bontsa ki a kiszolgálócsomópontot.

  2. Bontsa ki a Replikáció mappát, majd bontsa ki a Helyi kiadványok mappát.

  3. Kattintson a jobb gombbal arra a kiadványra, amelynek az előfizetéseit ellenőrizni szeretné, majd kattintson az Összes előfizetés érvényesítése parancsra.

  4. Az Összes előfizetés érvényesítése párbeszédpanelen adja meg a végrehajtandó érvényesítés típusát (sorszám, sorszám és ellenőrzőösszeg).

  5. Kattintson az OK gombra.

  6. Az érvényesítési eredmények megtekintése a Replikációfigyelőben vagy a Szinkronizálási állapot megtekintése párbeszédpanelen. Minden előfizetéshez:

    1. Bontsa ki a kiadványt, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás állapotának megtekintése parancsra.
    2. Ha az ügynök nem fut, kattintson a Start gombra a Szinkronizálási állapot megtekintése párbeszédpanelen. A párbeszédpanelen megjelennek az érvényesítéssel kapcsolatos tájékoztató üzenetek.

    Ha nem látja az ellenőrzéssel kapcsolatos üzeneteket, az ügynök már naplózott egy későbbi üzenetet. Ebben az esetben tekintse meg az érvényesítési eredményeket a Replikációfigyelőben. További információkért tekintse meg a replikációfigyelő eljárásokat ebben a témakörben.

Egy egyetlen push előfizetés egy Egyesítési Kiadványhoz

Replikációfigyelő használata

  1. A Replikációfigyelőben bontsa ki a bal oldali panelen a Publisher csoportot, bontsa ki a Publishert, majd kattintson egy kiadványra.
  2. Kattintson a Minden előfizetés fülre .
  3. Kattintson a jobb gombbal az érvényesíteni kívánt előfizetésre, majd kattintson az Előfizetés érvényesítése parancsra.
  4. Az Előfizetés érvényesítése párbeszédpanelen válassza az Előfizetés érvényesítése lehetőséget.
  5. A végrehajtandó érvényesítés típusának (sorszám, sorszám és ellenőrzőösszeg) megadásához kattintson a Beállítások gombra, majd adja meg a beállításokat az Előfizetés érvényesítési beállításai párbeszédpanelen.
  6. Kattintson az OK gombra.
  7. Kattintson a Minden előfizetés fülre .
  8. Érvényesítési eredmények megtekintése:
    1. Ha az ügynök nem fut, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás indítása parancsra.
    2. Kattintson a jobb gombbal az előfizetésre, majd kattintson a Részletek megtekintése parancsra.
    3. Tekintse meg az információkat a szinkronizálási előzmények lapon, a kiválasztott munkamenet szövegterületének Utolsó üzenetének.

Transact-SQL használata

  1. A Publisher közzétételi adatbázisában hajtsa végre a sp_validatemergesubscription (Transact-SQL). Adja meg @publicationaz előfizető @subscribernevét, a hozzá tartozó @subscriber_dbelőfizetési adatbázis nevét és a következő értékek @levelegyikét:

    • 1 – Csak sorlétrehozás ellenőrzése.
    • 3 – Sorok számának bináris ellenőrzőösszeg validációja.

    Ezzel megjelöli a kijelölt előfizetést az ellenőrzéshez.

  2. Indítsa el az egyes előfizetések egyesítési ügynökét. További információ: Lekéréses előfizetés szinkronizálása és leküldéses előfizetés szinkronizálása.

  3. Ellenőrizze az ügynök kimenetét az ellenőrzés eredményének ellenőrzéséhez.

  4. Ismételje meg az 1–3. lépést minden érvényesített előfizetés esetében.

Megjegyzés:

Az egyesítési kiadványok előfizetése a szinkronizálás végén is érvényesíthető az -Validate paraméter megadásával a replikációs egyesítési ügynök futtatásakor.

Az összes egyesítési kiadványhoz tartozó leküldéses előfizetés esetén

Replikációfigyelő használata

  1. A Replikációfigyelőben bontsa ki a publishercsoportot a bal oldali panelen, majd bontsa ki a Publishert.
  2. Kattintson a jobb gombbal arra a kiadványra, amelynek az előfizetéseit ellenőrizni szeretné, majd kattintson az Összes előfizetés érvényesítése parancsra.
  3. Az Összes előfizetés érvényesítése párbeszédpanelen adja meg a végrehajtandó érvényesítés típusát (sorszám, sorszám és ellenőrzőösszeg).
  4. Kattintson az OK gombra.
  5. Kattintson a Minden előfizetés fülre .
  6. Érvényesítési eredmények megtekintése. Minden értesítési előfizetés esetén:
    1. Ha az ügynök nem fut, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás indítása parancsra.
    2. Kattintson a jobb gombbal az előfizetésre, majd kattintson a Részletek megtekintése parancsra.
    3. Tekintse meg az információkat a szinkronizálási előzmények lapon, a kiválasztott munkamenet szövegterületének Utolsó üzenetének.

Transact-SQL használata

  1. A Publisher közzétételi adatbázisában hajtsa végre a sp_validatemergepublication (Transact-SQL). Adja meg a következő értékek egyikét a @publication értékhez @level:

    • 1 – Csak sorlétrehozás ellenőrzése.
    • 3 – Sorok számának bináris ellenőrzőösszeg validációja.

    Ezzel megjelöli az összes előfizetést az ellenőrzéshez.

  2. Indítsa el az egyes előfizetések egyesítési ügynökét. További információ: Lekéréses előfizetés szinkronizálása és leküldéses előfizetés szinkronizálása.

  3. Ellenőrizze az ügynök kimenetét az ellenőrzés eredményének ellenőrzéséhez. További információ: Adatok érvényesítése az előfizetőnél.

Adatok ellenőrzése az egyesítési ügynök paramétereivel

  1. Indítsa el az egyesítési ügynököt az előfizetőnél (lekéréses előfizetésnél) vagy a forgalmazónál (leküldéses előfizetés) a parancssorból az alábbi módok egyikén.

    • Az -Validate paraméter 1 (sorszám) vagy 3 (sorszám és bináris ellenőrzőösszeg) értékének megadása.
    • A sorszám-érvényesítés vagy a sorszám- és ellenőrzőösszeg-érvényesítés megadása a -ProfileName paraméterhez.

    További információ: Lekéréses előfizetés szinkronizálása vagy Leküldéses előfizetés szinkronizálása.

Replikációkezelési objektumok (RMO) használata

A replikáció lehetővé teszi, hogy a Replikációkezelési objektumok (RMO) használatával programozott módon ellenőrizze, hogy az előfizető adatai megegyeznek-e a Közzétevő adataival. A használt objektumok a replikációs topológia típusától függenek. A tranzakciós replikációhoz a kiadvány összes előfizetésének ellenőrzése szükséges.

Megjegyzés:

Példának lásd Példa (RMO), a bekezdés későbbi részében.

Tranzakciós kiadvány összes cikkének adatainak ellenőrzése

  1. Hozzon létre kapcsolatot a Publisherrel a ServerConnection osztály használatával.

  2. Hozza létre a TransPublication osztály egy példányát. Állítsa be a Name és DatabaseName tulajdonságait a kiadványhoz. Állítsa a tulajdonságot ConnectionContext az 1. lépésben létrehozott kapcsolatra.

  3. Hívja meg a metódust LoadProperties az objektum fennmaradó tulajdonságainak lekéréséhez. Ha ez a módszer hamis eredményt ad vissza, a 2. lépésben a kiadvány tulajdonságai helytelenül lettek definiálva, vagy a kiadvány nem létezik.

  4. Hívja meg a ValidatePublication metódust. Adja meg a következőket:

    Ezzel megjelöli a cikkeket hitelesítés céljából.

  5. Ha még nem fut, indítsa el a terjesztési ügynököt az egyes előfizetések szinkronizálásához. További információ: Leküldéses előfizetés szinkronizálása vagy Lekéréses előfizetés szinkronizálása. Az érvényesítési művelet eredménye az ügynök előzményeibe lesz beírva. További információért lásd: Replikáció monitorozása.

Az adatok érvényesítése az összes előfizetésben egy egyesítési kiadvány esetében.

  1. Hozzon létre kapcsolatot a Publisherrel a ServerConnection osztály használatával.

  2. Hozza létre a MergePublication osztály egy példányát. Állítsa be a Name és DatabaseName tulajdonságait a kiadványhoz. Állítsa a tulajdonságot ConnectionContext az 1. lépésben létrehozott kapcsolatra.

  3. Hívja meg a metódust LoadProperties az objektum fennmaradó tulajdonságainak lekéréséhez. Ha ez a módszer hamis eredményt ad vissza, a 2. lépésben a kiadvány tulajdonságai helytelenül lettek definiálva, vagy a kiadvány nem létezik.

  4. Hívja meg a ValidatePublication metódust. Adja meg a kívánt ValidationOption.

  5. Indítsa el az Egyesítési Ügynököt minden előfizetés esetében, hogy megkezdje az ellenőrzést, vagy várja meg a következő ütemezett ügynök futtatását. További információ: Lekéréses előfizetés szinkronizálása és leküldéses előfizetés szinkronizálása. Az érvényesítési művelet eredménye az ügynök előzményeibe lesz beírva, amelyet a Replikációfigyelő használatával tekinthet meg. További információért lásd: Replikáció monitorozása.

Adatok érvényesítése egyetlen előfizetésben egy egyesítési kiadványra

  1. Hozzon létre kapcsolatot a Publisherrel a ServerConnection osztály használatával.

  2. Hozza létre a MergePublication osztály egy példányát. Állítsa be a Name és DatabaseName tulajdonságait a kiadványhoz. Állítsa a tulajdonságot ConnectionContext az 1. lépésben létrehozott kapcsolatra.

  3. Hívja meg a metódust LoadProperties az objektum fennmaradó tulajdonságainak lekéréséhez. Ha ez a módszer hamis eredményt ad vissza, a 2. lépésben a kiadvány tulajdonságai helytelenül lettek definiálva, vagy a kiadvány nem létezik.

  4. Hívja meg a ValidateSubscription metódust. Adja meg az érvényesíteni kívánt előfizető és az előfizetési adatbázis nevét, valamint a kívánt ValidationOption.

  5. Futtassa az előfizetés egyesítési ügynökét az érvényesítés megkezdéséhez, vagy várja meg a következő ütemezett ügynök futtatását. További információ: Lekéréses előfizetés szinkronizálása és leküldéses előfizetés szinkronizálása. Az érvényesítési művelet eredménye az ügynök előzményeibe lesz beírva, amelyet a Replikációfigyelő használatával tekinthet meg. További információért lásd: Replikáció monitorozása.

Példa (RMO)

Ez a példa egy tranzakciós kiadvány összes előfizetését megjelöli a sorszám érvényesítéséhez.

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

Ez a példa egy adott előfizetést jelöl egy összevonási kiadványhoz a sorok számlálása érvényesítéséhez.

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

Lásd még:

Ajánlott eljárások a replikáció felügyeletéhez