Társközi replikáció – Tranzakciós replikáció

A következőkre vonatkozik:SQL Server

A társközi replikáció kibővíthető és magas rendelkezésre állású megoldást nyújt azáltal, hogy több kiszolgálópéldányon, más néven csomópontokon tartja fenn az adatok másolatát. A tranzakciós replikáció alapjaira épülő társközi replikáció szinte valós időben propagálja a tranzakciós konzisztens változásokat. Ez lehetővé teszi az olvasási műveletek vertikális felskálázását igénylő alkalmazásokat az ügyfelektől származó olvasások több csomópont közötti elosztásához. Mivel az adatok a csomópontokon közel valós időben maradnak fenn, a társközi replikáció adatredundanciát biztosít, ami növeli az adatok rendelkezésre állását.

Fontolja meg egy webalkalmazást. Ez a társközi replikációt a következő módokon használhatja ki:

  • A katalógus lekérdezései és az egyéb olvasások több csomóponton is el vannak osztva. Ez lehetővé teszi, hogy a teljesítmény az olvasás növekedésével konzisztens maradjon.

  • Ha a rendszer egyik csomópontja meghibásodik, az alkalmazásréteg átirányíthatja az adott csomópont írásait egy másik csomópontra. Ez fenntartja a rendelkezésre állást.

  • Ha egy csomópont karbantartást igényel, vagy a teljes rendszer frissítést igényel, minden csomópont offline állapotba helyezhető, és az alkalmazás rendelkezésre állásának befolyásolása nélkül visszavehető a rendszerbe.

Bár a társközi replikáció lehetővé teszi az olvasási műveletek horizontális felskálázását, a topológia írási teljesítménye hasonló egyetlen csomóponthoz. Ennek az az oka, hogy végső soron az összes beszúrás, frissítés és törlés minden csomópontra propagálásra kerül. A replikáció felismeri, ha módosítást alkalmaztak egy adott csomópontra, és megakadályozza, hogy a módosítások többször is áthaladjanak a csomópontokon. Határozottan javasoljuk, hogy minden sor írási műveleteit csak egy csomóponton hajtsa végre, az alábbi okokból:

  • Ha egy sor egynél több csomóponton módosul, ütközést vagy akár elveszett frissítést is okozhat, amikor a sor más csomópontokra van propagálva.

  • A módosítások replikálása mindig némi késéssel jár. Az olyan alkalmazások esetében, amelyeknél a legújabb módosítás azonnali megjelenítése szükséges, az alkalmazás több csomópont közötti dinamikus terheléselosztása problémás lehet.

A társközi replikáció lehetővé teszi az ütközések észlelését egy társközi topológiában. Ez a beállítás segít megelőzni a nem észlelt ütközések okozta problémákat, beleértve az alkalmazás inkonzisztens viselkedését és az elveszett frissítéseket. A beállítás engedélyezésével alapértelmezés szerint egy ütköző módosítás kritikus hibaként lesz kezelve, amely a terjesztési ügynök hibáját okozza. Ütközés esetén a topológia inkonzisztens állapotban marad, amíg az ütközés manuálisan nem oldódik fel, és az adatok konzisztenssé nem lesznek a topológiában. További információ: Ütközésészlelés a társközi replikációban.

Megjegyzés:

A lehetséges adatkonzisztencia elkerülése érdekében győződjön meg arról, hogy elkerüli a társközi topológia ütközéseit, még akkor is, ha engedélyezve van az ütközésészlelés. Annak érdekében, hogy egy adott sor írási műveletei csak egy csomóponton legyenek végrehajtva, az adatokat elérő és módosító alkalmazásoknak particionálási beszúrási, frissítési és törlési műveleteket kell végrehajtaniuk. Ez a particionálás biztosítja, hogy az egyik csomópontból származó adott sor módosításai szinkronizálva legyenek a topológia összes többi csomópontjával, mielőtt egy másik csomópont módosítja a sort. Ha egy alkalmazás kifinomult ütközésészlelési és -feloldási képességeket igényel, használja az egyesítési replikációt. További információ: Egyesítési replikáció , egyesítési replikációs ütközések észlelése és feloldása.

Társközi topológiák

Az alábbi forgatókönyvek a társközi replikáció tipikus felhasználási módjait szemléltetik.

Topológia, amely két résztvevő adatbázissal rendelkezik

Társközi replikáció, két csomópont

Mindkét fenti ábrán két résztvevő adatbázis látható, és a felhasználói forgalom egy alkalmazáskiszolgálón keresztül irányítja az adatbázisokat. Ez a konfiguráció számos alkalmazáshoz használható a webhelyektől a munkacsoport-alkalmazásokig, és a következő előnyöket nyújtja:

  • Jobb olvasási teljesítmény, mert az olvasások két kiszolgálón oszlanak el.

  • Magasabb rendelkezésre állás, ha karbantartásra van szükség, vagy ha egy csomóponton hiba történik.

Mindkét ábrán az olvasási tevékenység terheléselosztással van elosztva a részt vevő adatbázisok között, de a frissítések kezelése másképp történik:

  • A bal oldalon a frissítések particionálva vannak a két kiszolgáló között. Ha az adatbázis tartalmazott egy termékkatalógust, akkor például rendelkezhet egy egyéni alkalmazás közvetlen frissítésével az A csomóponton az A-ről M-vel kezdődő terméknevekre, a B csomópontra pedig az N-ről Z-vel kezdődő terméknevek közvetlen frissítésére. A frissítések ezután replikálódnak a másik csomópontra.

  • A jobb oldalon az összes frissítés a B csomópontra lesz irányítva. Innen a rendszer replikálja a frissítéseket az A csomópontra. Ha B offline állapotban van (például karbantartás céljából), az alkalmazáskiszolgáló az összes tevékenységet az A-hez irányíthatja. Amikor a B újra online állapotba kerül, a frissítések átfolyhatnak rá, és az alkalmazáskiszolgáló az összes frissítést visszateheti B-be , vagy tovább irányíthatja őket az A-ba.

A társközi replikáció mindkét megközelítést támogatja, de a jobb oldali központi frissítési példát gyakran használják standard tranzakciós replikációval is.

Három vagy több résztvevő adatbázissal rendelkező topológiák

Társközi replikáció diszpergált helyekre

Az előző ábra három részt vevő adatbázist mutat be, amelyek adatokat szolgáltatnak egy globális szoftvertámogatási szervezet számára, Los Angelesben, Londonban és Taipeiben található irodákkal. A támogatási mérnökök minden egyes irodában fogadják az ügyfélhívásokat, és minden egyes ügyfélhívással kapcsolatos információkat adnak meg és frissítenek. A három iroda időzónái nyolc óra távolságra vannak egymástól, így nincs átfedés a munkanapban. Ahogy bezár a Taipei iroda, a londoni iroda egy napra megnyílik. Ha egy hívás még folyamatban van az egyik iroda bezárásakor, a hívást a következő irodában lévő képviselőnek továbbítja a megnyitáshoz.

Minden hely rendelkezik egy adatbázissal és egy alkalmazáskiszolgálóval, amelyet a támogatási mérnökök használnak, amikor adatokat adnak meg és frissítenek az ügyfélhívásokról. A topológia particionálása idő szerint történik. Ezért a frissítések csak a jelenleg üzleti célra megnyitott csomóponton történnek, majd a frissítések a többi résztvevő adatbázisba kerülnek. Ez a topológia a következő előnyöket nyújtja:

  • Önállóság elkülönítés nélkül: Minden iroda egymástól függetlenül is beszúrhat, frissíthet vagy törölhet adatokat, de megoszthatja is az adatokat, mert az összes többi résztvevő adatbázisba replikálva van.

  • Nagyobb rendelkezésre állás meghibásodás esetén, vagy karbantartás engedélyezése a részt vevő adatbázisok egy vagy több adatbázisánál.

    Társközi replikáció, három és négy csomópont társközi

    Az előző ábrán egy csomópont hozzáadása a háromcsomópontos topológiához. Ebben a forgatókönyvben a következő okokból lehet csomópontot hozzáadni:

  • Mert egy másik iroda is meg van nyitva.

  • Nagyobb rendelkezésre állás biztosítása a karbantartás támogatásához vagy a hibatűrés növeléséhez lemezhiba vagy egyéb jelentős meghibásodás esetén.

Figyelje meg, hogy a három- és négycsomópontos topológiákban az összes adatbázis közzéteszi és feliratkozik az összes többi adatbázisra. Ez maximális rendelkezésre állást biztosít, ha egy vagy több csomópont karbantartási igényei vagy hibái vannak. A csomópontok hozzáadásakor ki kell egyensúlyoznia a rendelkezésre állási és méretezhetőségi igényeket a teljesítménnyel, valamint az üzembe helyezés és felügyelet összetettségével.

Társközi replikáció konfigurálása

A társközi replikációs topológia konfigurálása hasonló a szabványos tranzakciós kiadványok és előfizetések konfigurálásához. A következő cikkekben ismertetett lépések egy háromcsomópontos rendszer konfigurációját mutatják be, hasonlóan a bal oldalon látható konfigurációhoz, amely a társközi topológiát mutatja.

TLS 1.3-titkosítás konfigurálása

Az SQL Server 2025 (17.x) TDS 8.0-s támogatást nyújt a társközi replikációhoz, amely a következőket tartalmazza:

  • Replikációs ügynökök konfigurálása TLS 1.3 titkosítás használatára az SQL Server 2025 (17.x) példányai, valamint az SQL Server 2025 (17.x) és a felügyelt Azure SQL-példányok között.
  • Az SQL Server 2025 (17.x) példányok közötti társított kiszolgálói kommunikáció alapértelmezett titkosítása egy replikációs topológiában. Az SQL Server 2025 csatolt kiszolgálói (17.x) az OLE DB v19 illesztőprogramot használják, amely alapértelmezés szerint titkosításra szolgál Encrypt=Mandatory .

A társközi replikáció használatának szempontjai

Ez a szakasz információkat és irányelveket tartalmaz, amelyeket érdemes figyelembe venni a társközi replikáció használatakor.

Általános szempontok

  • A társközi replikáció csak az SQL Server vállalati kiadásában érhető el.

  • A társközi replikációban részt vevő összes adatbázisnak azonos sémát és adatokat kell tartalmaznia:

    • Az objektumneveknek, az objektumséma és a kiadványneveknek azonosnak kell lenniük.

    • A kiadványoknak lehetővé kell tenni a sémamódosítások replikálásához. (Ez a közzétételi tulajdonság replicate_ddl1 beállítása, amely az alapértelmezett beállítás.) További információ: Sémamódosítások a kiadványadatbázisokon.

    • A sor- és oszlopszűrés nem támogatott.

  • Minden csomópontnak saját terjesztési adatbázist kell használnia. Ez kiküszöböli azt a lehetőséget, hogy egyetlen meghibásodási ponttal rendelkezik.

  • A táblák és más objektumok nem vehetők fel egyetlen kiadványadatbázis több társközi kiadványába.

  • Az előfizetések létrehozása előtt engedélyezni kell egy kiadványt a társközi replikációhoz.

  • Az előfizetéseket biztonsági mentéssel vagy a replication support only beállítással kell inicializálni. További információ: Tranzakciós előfizetés inicializálása pillanatkép nélkül.

  • Ne használjon identitásoszlopokat. Identitások használata esetén manuálisan kell kezelnie az egyes részt vevő adatbázisok tábláihoz rendelt tartományokat. További információ: Tartomány hozzárendelése a manuális identitástartomány-kezeléshez.

Szolgáltatáskorlátozások

A társközi replikáció támogatja a tranzakciós replikáció alapvető funkcióit, de nem támogatja a következő lehetőségeket:

  • Inicializálás és újrainicializálás pillanatképekkel.

  • Sor- és oszlopszűrők.

  • Időbélyeg-oszlopok.

  • Nem SQL Server-közzétevők és előfizetők.

  • Előfizetések azonnali frissítése és várólistára helyezése.

  • Névtelen előfizetések.

  • Részleges előfizetések.

  • Csatolható előfizetések és átalakítható előfizetések. (Mindkét beállítás elavult az SQL Server 2005-ben (9.x).)

  • Megosztott terjesztési ügynökök.

  • A Terjesztési ügynök paraméter -SubscriptionStreams és a Log Reader Agent paraméter -MaxCmdsInTran.

  • A cikk tulajdonságai @destination_owner és @destination_table.

  • A társközi tranzakciós replikáció nem támogatja egyirányú tranzakciós előfizetés létrehozását társközi kiadványhoz

  • A társközi tranzakciós replikáció nem támogatja a számított oszlopokkal rendelkező táblák közzétételét az elsődleges kulcs részeként.

A következő tulajdonságoknak különleges szempontokat kell figyelembe venniük:

  • A kiadvány tulajdonsághoz @allow_initialize_from_backupigaz értékre van szükség.

  • A cikktulajdonsághoz @replicate_ddligaz értékre van szükség; @identityrangemanagementoptionmanuális értékre van szükség, és @status a 24 . lehetőség be van állítva.

  • A cikktulajdonságok @ins_cmdértéke, @del_cmdés @upd_cmd nem állítható be SQL értékre.

  • Az előfizetési tulajdonsághoz @sync_typenincs vagy automatikus értékre van szükség.

  • Az SQL Server 2019 (15.x) CU 13 bemutatja a kiadvány tulajdonságát. @p2p_confictdetection_policy Az alapértelmezett paraméterérték, originatorid amely a kezdeményező azonosítója alapján oldja fel az ütközést. A lastwriter paraméter értéke az utolsó író alapján oldja fel az ütközést.

Karbantartási szempontok

Egyes műveletekhez a rendszernek nem szabad elkeserednie. Ez azt jelenti, hogy minden csomóponton leállítja a közzétett táblák tevékenységeit, és meggyőződik arról, hogy minden csomópont megkapta az összes módosítást az összes többi csomóponttól.

Tevékenység Csak SQL Server 2005-társ vagy SQL Server 2005-társ és SQL Server 2008-társ és magasabb Csak SQL Server 2005-társ vagy SQL Server 2005-társ és SQL Server 2008-társ és magasabb SQL2008 és magasabb szintű SQL2008 és magasabb szintű
Csomópont hozzáadása a topológiához 2 csomópont a teljes topológiában: Nincs szükség kirekeszelésre. Használja sync_type = 'initialize with backup'. Több mint 2 csomópont: Szükség van a kirekeszelésre. sync_type = 'replication support only': Kirekeszelés szükséges. sync_type = 'initialize with backup' és 'initialize from lsn': Nincs szükség kirekeszelésre.

A topológiaséma módosítása (cikk hozzáadása vagy elvetése) kiváltást igényel. További információ: Társközi topológia felügyelete (replikáció Transact-SQL programozás).

A csomópontok topológiából való eltávolítása soha nem igényel törlést.

A cikk tulajdonságainak módosítása sp_changearticle használatával soha nem igényel kiváltást. Az engedélyezett módosítások (P2P esetén) a description, ins_cmd, upd_cmdés del_cmd a tulajdonságok.

A cikkséma módosítása (oszlop hozzáadása/elvetése) soha nem igényel kiváltást.

  • Cikk hozzáadása: Ha egy meglévő konfigurációhoz szeretne hozzáadni egy cikket, ki kell alakítanunk a rendszert, végre kell hajtanunk a CREATE TABLE utasítást & a kezdeti adatokat a topológia minden csomópontján, és hozzá kell adnunk az új cikket a topológia minden csomópontján.

  • A cikk elvetése: Ha konzisztens állapotot szeretnénk elérni az összes csomóponton, meg kell fontolni a topológiát

További információ: Replikációs topológia (replikációs Transact-SQL programozás) és társközi topológia (replikáció Transact-SQL programozás) felügyelete.

  • Ha új csomópontot ad hozzá egy társközi topológiához, csak az új csomópont hozzáadása után létrehozott biztonsági másolatokból kell visszaállítania.

  • A társközi topológiában nem lehet újrainicializálni az előfizetéseket. Ha meg kell győződnie arról, hogy egy csomópont rendelkezik az adatok új másolatával, állítsa vissza a biztonsági mentést a csomóponton.