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 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:
Győződjön meg arról, hogy az SQL Server Agent fut az új fő kiszolgáló példányon.
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.