Adatrögzítés és egyéb funkciók módosítása

A következőkre vonatkozik:SQL ServerAzure SQL Felügyelt példány

Ez a cikk azt ismerteti, hogy az alábbi funkciók hogyan használják az SQL Server és az Azure SQL Managed Instance változásadat-rögzítését. Az Azure SQL Database-hez lásd CDC-t az Azure SQL Database.

Változáskövetés

Az adatváltozás-rögzítés és változáskövetési engedélyezhetők ugyanazon adatbázis számára. Nincs szükség különleges szempontokra. További információ: Dolgozzon a változáskövetéssel.

Adatbázis-tükrözés

A módosítási adatrögzítéshez engedélyezett adatbázisok tükrözhetők. Annak érdekében, hogy a rögzítés és a törlés automatikusan történjen a feladatátvétel után, kövesse az alábbi lépéseket:

  1. Győződjön meg arról, hogy az SQL Server Agent fut az új fő kiszolgáló példányon.

  2. Hozza létre a rögzítési feladatot és a törlési feladatot az új elsődleges adatbázisban (a korábbi tükrözött adatbázisban). A feladatok létrehozásához használja a sp_cdc_add_job tárolt eljárást.

A karbantartási vagy rögzítési feladatok aktuális konfigurációjának megtekintéséhez használja a sys.sp_cdc_help_jobs tárolt eljárást az új egyszerű kiszolgálópéldányon. Egy adott adatbázis esetében a rögzítési feladat neve cdc.database_name_capture, és a törlési feladat neve cdc.database_name_cleanup, ahol database_name az adatbázis neve.

A feladatok konfigurációjának módosításához használja a sys.sp_cdc_change_job tárolt eljárást.

Az adatbázis-tükrözéssel kapcsolatos további információkért lásd Adatbázis-tükrözés (SQL Server).

Tranzakciós replikáció

A módosítási adatrögzítés és a tranzakciós replikáció együtt létezhet ugyanabban az adatbázisban, de a változástáblák sokasága eltérően lesz kezelve, ha mindkét funkció engedélyezve van. Az adatrögzítés és a tranzakciós replikáció módosítása mindig ugyanazt az eljárást használja, sp_replcmdsa tranzakciónapló módosításainak olvasásához. Ha a módosítási adatrögzítés önállóan engedélyezve van, az SQL Server Agent-feladat meghívja sp_replcmds. Ha mindkét funkció engedélyezve van ugyanazon az adatbázisban, a Naplóolvasó ügynök meghívja sp_replcmds. Ez az ügynök feltölti a változástáblákat és a terjesztési adatbázis tábláit is. További információ: replikációs naplóolvasó ügynök.

Fontolja meg azt a forgatókönyvet, amelyben a változásadat-rögzítés engedélyezve van a AdventureWorks2025 adatbázison, és két tábla van engedélyezve a rögzítéshez. A változási táblázatok kitöltéséhez a rögzítési feladat sp_replcmds. Az adatbázis engedélyezve van a tranzakciós replikációhoz, és létrejön egy kiadvány. Most létrejön a Naplóolvasó ügynök az adatbázishoz, és a rögzítési feladat törlődik. A Naplóolvasó ügynök továbbra is megvizsgálja a naplót a változástáblához véglegesített utolsó naplósorozat-számból. Ez biztosítja az adatkonzisztenciát a változástáblákban. Ha a tranzakciós replikáció le van tiltva ebben az adatbázisban, a naplóolvasó ügynök el lesz távolítva, és a rögzítési feladat újra létrejön.

Jegyzet

Ha a naplóolvasó ügynök a változásadat-rögzítéshez és a tranzakciós replikációhoz is használatos, a replikált módosítások először a terjesztési adatbázisba lesznek beírva. Ezután a rendszer a rögzített módosításokat a változástáblákba írja. Mindkét művelet együtt van elkötelezve. Ha a terjesztési adatbázisba való írás során késés tapasztalható, a módosítások a változástáblákban való megjelenése előtt megfelelő késéssel fognak rendelkezni.

A proc exec lehetősége a tranzakciós replikációban nem érhető el, ha engedélyezve van az adatmódosítási naplózás.

Adatbázis visszaállítása vagy csatolása

Az SQL Server az alábbi logikával állapítja meg, hogy az adatbázis visszaállítása vagy csatolása után a változásadat-rögzítés engedélyezve marad-e:

  • Ha egy adatbázist ugyanarra a kiszolgálóra állít vissza ugyanazzal az adatbázisnévvel, a módosítási adatrögzítés engedélyezve marad.

  • Ha egy adatbázist egy másik kiszolgálóra állít vissza, alapértelmezés szerint az adatrögzítés le van tiltva, és az összes kapcsolódó metaadat törlődik.

    A változásadatok rögzítésének megőrzéséhez használja a KEEP_CDC lehetőséget az adatbázis visszaállításakor. Erről a beállításról további információt RESTOREcímű témakörben talál.

  • Ha egy adatbázis leválasztva és ugyanahhoz a kiszolgálóhoz vagy egy másik kiszolgálóhoz van csatlakoztatva, az adatrögzítés továbbra is engedélyezve marad.

  • Ha egy adatbázist a standard, nagyvállalati vagy FELÜGYELT SQL-példánytól eltérő kiadáshoz KEEP_CDC beállítással csatol vagy állít vissza, a művelet le lesz tiltva, mert a módosítási adatrögzítéshez SQL Server Standard, Enterprise vagy SQL Managed Instance kiadás szükséges. A 934-ben megjelenő hibaüzenet:

    SQL Server cannot load database '%.*ls' because change data capture is enabled. The currently installed edition of SQL Server does not support change data capture. Either restore database without KEEP_CDC option, or upgrade the instance to one that supports change data capture.

A sys.sp_cdc_disable_db használatával eltávolíthatja a módosítási adatrögzítést egy visszaállított vagy csatolt adatbázisból.

Miután visszaállított egy adatbázist a felügyelt Azure SQL-példányon, a CDC továbbra is engedélyezve lesz, de gondoskodnia kell arról, hogy a vizsgálati és törlési feladatok hozzá legyenek adva és futnak. A feladatokat manuálisan is hozzáadhatja a sys.sp_cdc_add_jobfuttatásával.

Tartalmazott adatbázisok

A változáskövetés nem támogatott a zárt adatbázisokban .

Rendelkezésre állási csoportok

Az Always On rendelkezésre állási csoportok használatakor módosítani kell az enumerálást a másodlagos replikán az elsődleges lemezterhelés csökkentése érdekében.

Oszlopcentrikus indexek

A változáskövetés nem lehetséges olyan táblákon, amelyek fürtözött oszlopcentrikus indexet tartalmaznak. Az SQL Server 2016-tól kezdve lehet engedélyezni egy nem klaszteres oszlopstore indexet tartalmazó táblákon.

Számított oszlopok

A CDC nem támogatja a számított oszlopok értékeit, még akkor sem, ha a számított oszlop állandóként van definiálva. A rögzített példányban szereplő számított oszlopok mindig NULLértékkel rendelkeznek. Ez a viselkedés rendeltetése, nem pedig hiba.

Linux

A CDC támogatott a CU18-tól kezdve a Linux rendszeren futó SQL Server 2017, valamint az SQL Server 2019 esetében.

Lásd még: