miért fut a DBCC CHECKDB?
a DBCC CHECKDB ellenőrzi az adatbázis összes objektumának logikai és fizikai integritását, és információkat szolgáltat az esetleges sérülésekről.
mivel a DBCC CHECKDB végrehajtása erőforrás-kimerítő feladat, ajánlott egy termelési kiszolgálón futtatni, ha a lehető legkevesebb a forgalom, vagy még jobb, mivel a DBCC CHECKDB folyamat felgyorsításának egyik módja az, hogy a munkát egy másik szerverre továbbítsa egy folyamat automatizálásával, és futtassa a CHECKDB-t egy adatbázis-visszaállítás után. Mivel a biztonsági mentési folyamat egy adatbázis másolata, és a visszaállított adatbázis pontosan ugyanaz lesz, mint egy online adatbázis, ezért ha bármilyen ellentmondás vagy probléma merül fel, akkor a biztonsági mentésben lesznek, és visszaállítják. Ezzel a megközelítéssel mind a visszaállítások tesztelésre kerülnek, mind a biztonsági mentések ellenőrzése a termelési adatbázisra gyakorolt hatás nélkül történik.
a DBCC CHECKDB futtatása visszaállítás után szintén jó gyakorlat lehet, ha a biztonsági mentés minősége ismeretlen.
ebben a cikkben leírjuk, hogyan lehet automatizálni a DBCC CHECKDB-t egy adatbázis-visszaállítás után a DBCC CHECKDB automatizálásával egy adatbázis-visszaállítás után egy SQL Server Agent job és Maintenance Plans használatával.
hogyan lehet automatizálni a DBCC CHECKDB-t egy adatbázis-visszaállítás után egy SQL Server Agent job használatával
a DBCC CHECKDB automatizálása egy adatbázis-visszaállítás után az SQL Server Agent használatával:
- válasszon ki egy új feladatot az SQL Server Agent csomópontból!
-
Hozzon létre egy első lépést, és adjon meg egy adatbázis-biztonsági mentést a visszaállításhoz a következő parancsfájl használatával:
RESTORE DATABASE AdventureWorks2014CheckDB FROM DISK = 'E:\EncBackup\AdventureWorks2014_Full_20150612_1916.bak' WITH RECOVERYGO
-
adjon hozzá egy második lépést a visszaállított adatbázis DBCC ellenőrzéséhez a következő T-SQL parancsfájl hozzáadásával:
DBCC CHECKDB (AdventureWorks2014CheckDB)
különböző DBCC checkdb opciók használatához használja a következő T-SQL parancsfájlokat:
az oszlopértékek ellenőrzéséhez és annak ellenőrzéséhez, hogy vannak-e olyan oszlopértékek, amelyek a tartományon kívül esnek:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH DATA_PURITY
a felesleges információs üzenetek elnyomásához:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH NO_INFOMSGS
indexelt nézetek, térbeli és XML indexek ellenőrzése:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH EXTENDED_LOGICAL_CHECKS
csak az adatbázis fizikai szerkezetének ellenőrzése:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH PHYSICAL_ONLY
a táblázat-megosztott zárolás érvényesítése:
DBCC CHECKDB (AdventureWorks2014CheckDB) WITH TABLOCK
ezek az opciók kombinálhatók, kivéve a physical_only opciót, amely nem kombinálható néhány opcióval, amelyet a cikk későbbi részében ismertetünk.
- ütemezzen egy feladatot a kívánt végrehajtási gyakoriságra.
bár viszonylag könnyen beállítható egy SQL Server Agent job használatával ezekhez a műveletekhez T-SQL szkriptek írása és a DBCC CHECKDB opciók szintaxisának ismerete, valamint az egyes opciók funkcionalitásának és kombinálási lehetőségeinek ismerete szükséges.
hogyan lehet automatizálni a DBCC CHECKDB-t egy adatbázis-visszaállítás után a maintenance Plan segítségével
a Maintenance Planes is használható a művelet végrehajtásához. Bár a Maintenance Plans eszköztár nem tartalmaz visszaállítási feladatot, a T-SQL feladat használható.
a DBCC CHECKDB automatizálása adatbázis-visszaállítás után a Maintenance Plans használatával:
- az Object Explorer ablaktábla felügyeleti csomópontján a Maintenance Plans alatt válassza ki az új Maintenance Plan
- az új Maintenance Plan name a new plan
-
a Maintenance Plan TS eszköztáron válassza ki a T-SQL utasítás végrehajtása feladatot
-
dupla slick a feladat, majd illessze be a T-SQL script:
-
add ellenőrizze adatbázis integritását feladat a maintenance plan feladatok eszköztár:
-
kattintson duplán egy feladatra, és válasszon ki egy adatbázist a feladat futtatásához:
-
amikor egy karbantartási terv be van állítva ütemezze azt SQL Server Agent feladatként:
a hátránya ennek a megközelítésnek amellett, hogy bonyolultabb beállítani, hogy jelenleg, ellenőrizze adatbázis integritását feladat kínál csak indexek ellenőrizze, mint egy további lehetőség, és elvégzi a teljes DBCC checkdb ellenőrzés.
További lehetőségek kerülnek hozzáadásra az SQL Server 2016 verzióban.