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
Ha egy Always On rendelkezésre állási csoport (AG) meghibásodik, amely egy replikációs előfizető adatbázist tartalmaz, a replikációs előfizetés meghiúsulhat. A tranzakciós replikáció push-előfizetői esetében a terjesztési ügynök átállás után is automatikusan folytatja a replikálást, ha az előfizetés az AG-felügyeleti nevével lett létrehozva. A tranzakciós replikáció lekéréses előfizetői esetében a terjesztési ügynök a feladatátvétel után is automatikusan replikálódik, ha az előfizetés az AG-figyelő nevével lett létrehozva, és az eredeti előfizetői kiszolgáló működik. Ennek az az oka, hogy a terjesztési ügynök feladatai csak az eredeti előfizetőn (az AG elsődleges replikáján) jönnek létre. Az előfizetők egyesítése esetén a replikációs rendszergazdának manuálisan újra kell konfigurálnia az előfizetőt az előfizetés újrakonfigurálásával.
Mi van támogatva?
Az SQL Server-replikáció támogatja a közzétevő automatikus átváltását és a tranzakciós előfizetők automatikus átváltását. Az előfizetők egyesítése egy AG része lehet. A feladatátvételt követően azonban manuális műveletekre van szükség az új előfizető konfigurálásához. Az AG-k nem kombinálhatók WebSync- és SQL Server Compact-forgatókönyvekkel.
Tranzakciós előfizetés létrehozása rendelkezésre állási csoportban
Tranzakciós replikáció esetén az alábbi lépésekkel konfigurálhatja és feladatátvételt végezhet egy előfizetői AG-vel:
Az előfizetés létrehozása előtt adja hozzá az előfizetői adatbázist a megfelelő AG-hez.
Adja hozzá az előfizető AG-figyelőjét csatolt kiszolgálóként az AG összes csomópontjára. Ez a lépés biztosítja, hogy minden lehetséges átvételi partner tisztában legyen a hallgatóval, és csatlakozni tudjon hozzá.
Használja a tranzakciós replikáció leküldéses előfizetésének létrehozása szakaszban található szkriptet, és hozza létre az előfizetést az előfizető AG-figyelőjének nevét használva. A feladatátvétel után a figyelő neve mindig érvényes marad, míg az előfizető tényleges kiszolgálóneve attól függ, hogy melyik csomópont lett az új elsődleges.
Megjegyzés:
Az előfizetés létrehozásához Transact-SQL szkriptet kell használnia. A Management Studio nem használható.
Lekéréses előfizetés létrehozása:
A tranzakciós replikáció lekéréses előfizetésének létrehozása szakaszban található mintaszkript használatával hozza létre az előfizetést az előfizető AG-figyelőjének nevével.
Feladatátvétel után hozza létre a terjesztési ügynök feladatát az új elsődleges replikán a
sp_addpullsubscription_agenttárolt eljárás használatával.
Amikor lekéréses előfizetést hoz létre az előfizetési adatbázissal egy AG-ben, minden feladatátvétel után le kell tiltania a terjesztési ügynök feladatátvételt a régi elsődleges replikán, és engedélyeznie kell a feladatot az új elsődleges replikán.
Tranzakciós replikációs push előfizetés létrehozása
-- commands to execute at the publisher, in the publisher database:
USE [<publisher database name>];
GO
EXEC sp_addsubscription @publication = N'<publication name>',
@subscriber = N'<AG listener name>',
@destination_db = N'<subscriber database name>',
@subscription_type = N'Push',
@sync_type = N'automatic',
@article = N'all',
@update_mode = N'read only',
@subscriber_type = 0;
GO
EXEC sp_addpushsubscription_agent @publication = N'<publication name>',
@subscriber = N'<AG listener name>',
@subscriber_db = N'<subscriber database name>',
@job_login = NULL,
@job_password = NULL,
@subscriber_security_mode = 1;
GO
Tranzakciós replikációs lekéréses előfizetés létrehozása
-- commands to execute at the subscriber, in the subscriber database:
USE [<subscriber database name>];
GO
EXEC sp_addpullsubscription @publisher = N'<publisher name>',
@publisher_db = N'<publisher database name>',
@publication = N'<publication name>',
@subscription_type = N'pull';
GO
EXEC sp_addpullsubscription_agent @publisher = N'<publisher name>',
@subscriber = N'<AG listener name or alias>',
@distributor = N'<distributor AG listener name>', -- this parameter should only be used if the distribution database is part of an AG.
@publisher_db = N'<publisher database name>',
@publication = N'<publication name>',
@job_login = NULL,
@job_password = NULL,
@subscriber_security_mode = 1;
GO
Rendelkezésre állási csoport figyelőjének követelménye
Amikor futtatja az sp_addpullsubscription_agent parancsot egy AG részét képező előfizetőhöz, a @subscriber paraméter értékét AG-figyelőnévként kell megadnia a tárolt eljárásnak. Ha az SQL Server 2016 (13.x) és korábbi verzióit vagy az SQL Server 2017-et (14.x) a CU 16 előtt futtatja, a tárolt eljárás nem hivatkozik az AG-figyelő nevére. Az előfizetést azzal az előfizetői kiszolgálónévvel hozza létre, amelyen a parancs végrehajtása történik. A probléma megoldásához manuálisan frissítse a @subscriberreplikációs terjesztési ügynök paraméterét az AG-figyelő névértékével.
Ha az előfizető AG-figyelő nem alapértelmezett portot használ, a paraméterben az AG-figyelő nevének @subscriber részeként megadott portszám nem támogatott Windows rendszeren. Áthidaló megoldásként létrehozhat aliast a figyelőhöz és a porthoz a közzétevő, a terjesztő és az előfizetői kiszolgálón az Aliasok (SQL Server Configuration Manager) vagy az SQL Server ügyfélhálózati segédprogramja (cliconfg) használatával az SQL Server 2022 -hez (16.x) és újabb verziókhoz, és átadhatja az @subscriber aliast paraméterértékként.
Folytassa az összevonási ügynököket, miután az előfizető rendelkezésre állási csoportjának feladatátvétel történt.
Az egyesítési replikációhoz a replikációs rendszergazdának manuálisan újra kell konfigurálnia az előfizetőt az alábbi lépésekkel:
Hajtsa végre
sp_subscription_cleanupaz előfizető régi előfizetésének eltávolítását. Hajtsa végre ezt a műveletet az új elsődleges replikán (amely korábban a másodlagos replika volt).Hozza létre újra az előfizetést egy új előfizetés létrehozásával, egy új pillanatfelvétellel kezdve.
Megjegyzés:
Ez a folyamat kényelmetlen az egyesítési replikáció előfizetői számára. Az egyesítési replikáció fő forgatókönyve azonban a kapcsolat nélküli felhasználók (asztali számítógépek, laptopok, kézi eszközök), amelyek nem használnak AG-ket az előfizetőn.