Megosztás a következőn keresztül:


Változáskövetés engedélyezése és letiltása (SQL Server)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Ez a cikk azt ismerteti, hogyan engedélyezheti és tilthatja le az adatbázisok és táblák változáskövetését.

Adatbázis változáskövetésének engedélyezése

A változáskövetés használata előtt engedélyeznie kell a változáskövetést az adatbázis szintjén. Az alábbi példa bemutatja, hogyan engedélyezheti a változáskövetést az ALTER DATABASE SET beállításaival.

ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)

A változáskövetést az SQL Server Management Studióban is engedélyezheti a Adatbázis tulajdonságai (ChangeTracking Page) párbeszédpanelen. Ha egy adatbázis memóriaoptimalizált táblákat tartalmaz, nem engedélyezheti a változáskövetést az SQL Server Management Studióval. Az engedélyezéshez használja a T-SQL-t.

A változáskövetés engedélyezésekor megadhatja a CHANGE_RETENTIONAUTO_CLEANUP beállításokat, és a változáskövetés engedélyezése után bármikor módosíthatja az értékeket.

A változásmegőrzési érték azt az időtartamot határozza meg, amelyre vonatkozóan a változáskövetési információk megőrzendők. Az ennél az időszaknál régebbi változáskövetési információk rendszeres időközönként törlődnek. Ha ezt az értéket állítja be, érdemes megfontolnia, hogy az alkalmazások milyen gyakran szinkronizálódnak az adatbázis tábláival. A megadott megőrzési időszaknak legalább addig kell lennie, amíg a szinkronizálások közötti maximális időtartamot meg nem adja. Ha egy alkalmazás hosszabb időközönként szerzi be a módosításokat, a visszaadott eredmények helytelenek lehetnek, mert a módosítási információk egy része valószínűleg el lett távolítva. A helytelen eredmények beszerzésének elkerülése érdekében az alkalmazás a CHANGE_TRACKING_MIN_VALID_VERSION rendszerfüggvény használatával állapíthatja meg, hogy a szinkronizálások közötti időköz túl hosszú volt-e.

Ezzel a AUTO_CLEANUP beállítással engedélyezheti vagy letilthatja a régi változáskövetési adatokat eltávolító törlési feladatot. Ez akkor lehet hasznos, ha egy ideiglenes probléma megakadályozza az alkalmazások szinkronizálását, és a megőrzési időszaknál régebbi változáskövetési adatok eltávolításának folyamatát a probléma megoldásáig szüneteltetni kell.

A változáskövetést használó adatbázisok esetében vegye figyelembe az alábbiakat:

  • A változáskövetés használatához az adatbázis kompatibilitási szintjét 90-es vagy újabb értékre kell állítani. Ha egy adatbázis kompatibilitási szintje 90-nél kisebb, konfigurálhatja a változáskövetést. A változáskövetési információk lekérésére használt CHANGETABLE függvény azonban hibát ad vissza.

  • A pillanatkép-elkülönítés a legegyszerűbb módja annak, hogy minden változáskövetési információ konzisztens legyen. Ezért határozottan javasoljuk, hogy a pillanatképek elkülönítését állítsa be ON az adatbázis számára. További információt a Változáskövetés használata (SQL Server) című témakörben talál.

Tábla változáskövetésének engedélyezése

A változáskövetést minden nyomon követni kívánt táblához engedélyezni kell. Ha engedélyezve van a változáskövetés, a rendszer megőrzi a változáskövetési információkat a tábla minden olyan sorára vonatkozóan, amelyet egy DML-művelet érint.

Az alábbi példa bemutatja, hogyan engedélyezheti a változáskövetést egy táblához ALTER TABLEhasználatával.

ALTER TABLE Person.Contact
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)

Az SQL Server Management Studióban is engedélyezheti a táblák változáskövetését a Adatbázis tulajdonságai (ChangeTracking Page) párbeszédpanelen.

Ha a TRACK_COLUMNS_UPDATED beállítás be van állítva ON, az SQL Server adatbázismotorja további információkat tárol arról, hogy mely oszlopok frissültek a belső változáskövetési táblára. Az oszlopkövetés lehetővé teszi, hogy az alkalmazások csak a frissített oszlopokat szinkronizálják. Ez javíthatja a hatékonyságot és a teljesítményt. Mivel azonban az oszlopkövetési adatok fenntartása többletterhelést jelent a tárterületen, ez a beállítás alapértelmezés szerint be van állítva OFF .

Tábla vagy adatbázis változáskövetésének letiltása

A változáskövetést először le kell tiltani az összes változáskövetési tábla esetében, mielőtt a változáskövetést az adatbázishoz be lehet állítani OFF . Az adatbázisok változáskövetését engedélyező táblák meghatározásához használja a sys.change_tracking_tables katalógusnézetet.

Az alábbi példa bemutatja, hogyan tilthatja le egy tábla változáskövetését ALTER TABLEhasználatával.

ALTER TABLE Person.Contact
DISABLE CHANGE_TRACKING;

Ha egy adatbázis egyik táblája sem követi nyomon a változásokat, letilthatja az adatbázis változáskövetését. Az alábbi példa bemutatja, hogyan tilthatja le az adatbázis változáskövetését az ALTER DATABASE SET beállításaival.

ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = OFF