Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure 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:
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.
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.
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:
Konfigurálja a Replikáció nevű replikációs riasztást: Az előfizető sikertelen adatérvényesítést végzett , így értesítést kap a hibáról. További információ: Előre definiált replikációs riasztások konfigurálása (SQL Server Management Studio).
Problémát jelent-e az alkalmazás számára, hogy az ellenőrzés sikertelen volt? Ha az érvényesítési hiba probléma, frissítse manuálisan az adatokat úgy, hogy szinkronizálva legyen, vagy újraincializálja az előfizetést:
Az adatok a tablediff segédprogrammal frissíthetők. A segédprogram 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.
Az újraincializálásról további információt az Előfizetések újrainicializálása című témakörben talál.
Cikkek a tranzakciós replikációban
Az SQL Server Management Studio használata
- Csatlakozzon a Publisherhez az SQL Server Management Studióban, majd bontsa ki a kiszolgálócsomópontot.
- Bontsa ki a Replikáció mappát, majd bontsa ki a Helyi kiadványok mappát.
- 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.
- 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.
- 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.
- Kattintson az OK gombra.
- 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:
- Bontsa ki a kiadványt, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás állapotának megtekintése parancsra.
- 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
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.
(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.
Ellenőrizze az ügynök kimenetét az ellenőrzés eredményének ellenőrzéséhez.
Önálló cikk
A Publisherben, a közzétételi adatbázisban hajtsa végre a sp_article_validation (Transact-SQL). Adja meg
@publication, a cikk@articlenevét, és a@rowcount_onlyegyik é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.
(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.
Ellenőrizze az ügynök kimenetét az ellenőrzés eredményének ellenőrzéséhez.
Egyetlen előfizető
Nyisson meg egy explicit tranzakciót a közzétételi adatbázisban a Publisherben a BEGIN TRANSACTION (Transact-SQL) használatával.
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.(Nem kötelező) Ismételje meg a 2. lépést minden érvényesítendő előfizetés esetében.
A Publisherben, a közzétételi adatbázisban hajtsa végre a sp_article_validation (Transact-SQL). Adja meg
@publication, a cikk@articlenevét, és a@rowcount_onlyegyik é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.
A közzétételi adatbázisban a Publisherben véglegesítse a tranzakciót a COMMIT TRANSACTION (Transact-SQL) használatával.
(Nem kötelező) Ismételje meg az 1–5. lépést minden érvényesítendő cikk esetében.
(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.
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
A Replikációfigyelőben bontsa ki a publishercsoportot a bal oldali panelen, majd bontsa ki a Publishert.
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.
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.
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.
Kattintson az OK gombra.
Kattintson a Minden előfizetés fülre .
Érvényesítési eredmények megtekintése. Minden push típusú előfizetés esetén:
- Ha az ügynök nem fut, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás indítása parancsra.
- Kattintson a jobb gombbal az előfizetésre, majd kattintson a Részletek megtekintése parancsra.
- 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
Csatlakozzon a Publisherhez az SQL Server Management Studióban, majd bontsa ki a kiszolgálócsomópontot.
Bontsa ki a Replikáció mappát, majd bontsa ki a Helyi kiadványok mappát.
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.
Az Előfizetés érvényesítése párbeszédpanelen válassza az Előfizetés érvényesítése lehetőséget.
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.
Kattintson az OK gombra.
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:
- Bontsa ki a kiadványt, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás állapotának megtekintése parancsra.
- 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
Csatlakozzon a Publisherhez az SQL Server Management Studióban, majd bontsa ki a kiszolgálócsomópontot.
Bontsa ki a Replikáció mappát, majd bontsa ki a Helyi kiadványok mappát.
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.
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).
Kattintson az OK gombra.
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:
- Bontsa ki a kiadványt, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás állapotának megtekintése parancsra.
- 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
- A Replikációfigyelőben bontsa ki a bal oldali panelen a Publisher csoportot, bontsa ki a Publishert, majd kattintson egy kiadványra.
- Kattintson a Minden előfizetés fülre .
- 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.
- Az Előfizetés érvényesítése párbeszédpanelen válassza az Előfizetés érvényesítése lehetőséget.
- 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.
- Kattintson az OK gombra.
- Kattintson a Minden előfizetés fülre .
- Érvényesítési eredmények megtekintése:
- Ha az ügynök nem fut, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás indítása parancsra.
- Kattintson a jobb gombbal az előfizetésre, majd kattintson a Részletek megtekintése parancsra.
- 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
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.
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.
Ellenőrizze az ügynök kimenetét az ellenőrzés eredményének ellenőrzéséhez.
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
- A Replikációfigyelőben bontsa ki a publishercsoportot a bal oldali panelen, majd bontsa ki a Publishert.
- 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.
- 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).
- Kattintson az OK gombra.
- Kattintson a Minden előfizetés fülre .
- Érvényesítési eredmények megtekintése. Minden értesítési előfizetés esetén:
- Ha az ügynök nem fut, kattintson a jobb gombbal az előfizetésre, majd kattintson a Szinkronizálás indítása parancsra.
- Kattintson a jobb gombbal az előfizetésre, majd kattintson a Részletek megtekintése parancsra.
- 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
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.
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.
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
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
Hozzon létre kapcsolatot a Publisherrel a ServerConnection osztály használatával.
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.
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.
Hívja meg a ValidatePublication metódust. Adja meg a következőket:
Logikai érték, amely azt jelzi, hogy le kell-e állítani a terjesztési ügynököt az ellenőrzés befejezése után.
Ezzel megjelöli a cikkeket hitelesítés céljából.
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.
Hozzon létre kapcsolatot a Publisherrel a ServerConnection osztály használatával.
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.
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.
Hívja meg a ValidatePublication metódust. Adja meg a kívánt ValidationOption.
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
Hozzon létre kapcsolatot a Publisherrel a ServerConnection osztály használatával.
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.
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.
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.
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