How to Run DBCC CHECKDB to Check SQL Database Integrity

Az adatbázis-konzol CHECKDB (DBCC CHECKDB)parancsa az SQL Server adatbázisban lévő objektumok integritásának (fizikai & logikai) ellenőrzésére szolgál.A parancs a memóriaoptimalizált táblákat tartalmazó adatbázisokban támogatott, de az érvényesítés csak a lemezalapú táblákban támogatott. A DBCC repair opció memóriaoptimalizált táblákban nem érhető el, ezért rendszeres adatbázis-biztosításra van szükség. ha egy memóriaoptimalizált táblában probléma merül fel, az adatok a legutóbb készített biztonsági mentésből állíthatók vissza.

A CHECKDB által végzett különböző műveletek:

  • DBCC CHECKALLOC végrehajtása az SQL adatbázisban.
  • DBCC CHECKTABLE végrehajtása az SQL adatbázis minden tábláján és nézetén.
  • DBCC CHECKCATALOG végrehajtása az SQL adatbázisban.
  • A tartalom ellenőrzése az adatbázis indexelt nézetében.
  • A linkszintű konzisztencia hitelesítése a fájlkönyvtárak és a tábla metaadatai között.
  • A szolgáltatásközvetítő adatainak hitelesítése.

Mivel a DBCC CHECKDB az összes többi parancsot lefuttatja, nem lesz szükség a CHECKALLOC, CHECKTABLE és CHECKCATALOG parancsok külön-külön történő végrehajtására.

DBCC CHECKDB szintaxis

A fenti szintaxisban használt argumentumok a következőket jelentik:

database_name | database_id | 0 Ez az adatbázis neve.Amennyiben a név nincs megadva, vagy csak 0-t írunk, akkor az aktuális adatbázist használjuk. NOINDEX Megadja, hogy a nem fürtözött indexű táblák integritásellenőrzését nem kell elvégezni. Ez a teljes végrehajtási idő csökkenéséhez vezet.Ez a szintaxis nem érinti a táblákban található adatokat. REPAIR_ALLOW_DATA_LOSS Ez a szintaxis javítja az adatbázisban talált hibákat.Ez bizonyos adatok elvesztéséhez vezethet.

Megjegyzés: Ezt a szintaxist a Microsoft támogatja, és nem minden esetben bizonyul ideális megoldásnak az adatbázis jó fizikai állapotba hozásához. Ennek oka, hogy törli az összes sérültnek talált adatot, és több adatvesztéshez vezethet, mint amennyi eredetileg az adatbázisban történt. ezért csak végső megoldásként kell elfogadni.

REPAIR_FAST Ez az érv csak a visszafelé kompatibilitást tartja fenn, és nem végez javítást. REPAIR REBUILD Ez az argumentum gyorsabb javítási folyamatot tartalmaz, amely nem fenyeget adatvesztéssel. ALL_ERRORMSGS Ez az összes objektumban keletkezett összes hibát megjeleníti. Ennek a szintaxisnak a bevonása vagy kizárása nincs hatással, mivel a hibaüzenetek általában az objektum azonosítója szerint vannak rendezve. A generált hibaüzenetek maximális száma elérheti az 1000-et. EXTENDED_LOGICAL_CHECKS Ez az argumentum csak akkor futtat logikai konzisztencia-ellenőrzést a nézeteken és indexeken, ha a kompatibilitási szint 100-as. NO_INFOMSGS Eltávolítja az összes tájékoztató üzenetet. TABLOCK Ez a szintaxis kizárólagos zárat szerez az adatbázison, és nagy terhelés idején növeli a DBCC CHECKDB sebességét az adatbázisban. Csökkenti azonban az adatbázis rendelkezésre állását az egyidejű műveletekhez. ESTIMATEONLY Ez megadja vagy megbecsüli, hogy az adatbázis mekkora helyet igényel a CHECKDB parancs futtatásához. PHYSICAL_ONLY Ez csak az adatbázis fizikai szerkezetének ellenőrzését korlátozza. A fizikai adatbázis rövid overhead ellenőrzését a szakadt oldalak, hibák és a felhasználók által tapasztalt gyakori problémák észlelése kíséri. DATA PURITY Ez a szintaxis a tartományon kívüli vagy érvénytelen oszlopértékeket ellenőrzi. Az oszlopértékek integritás-ellenőrzése alapértelmezés szerint engedélyezett, és nincs szükség a DATA_PURITY szintaxisra.

Az észben tartandó dolgok

  • A letiltott indexeket a DBCC CHECKDB nem ellenőrizheti.
  • A felhasználó által definiált és bájtrendes típusokat sorba kell állítani, ha a DBCC CHECKDB-t végre kell hajtani. Minden más esetben a 2537-es hiba lép fel.
  • A DBCC CHECKDB nem futtatható közvetlenül az erőforrás-adatbázison, mivel az csak single-módban módosítható.

A DBCC CHECKDB által generált hibaüzenetek

A CHECKDB parancs végrehajtásának befejezésekor egy üzenet íródik az SQL hibanaplóba. Siker esetén üzenetet generál, amely jelzi a sikert és a teljes időt, amely alatt a parancs futott. Sikertelenség esetén a folyamat valamilyen hiba bekövetkezése miatt befejeződik, amit egy üzenet jelez. A hibaüzenetet jelentő különböző állapotértékek a következők:

Hibajelentés

Amikor a CHECKDB parancs hibát észlel, az SQL-kiszolgáló naplókönyvtárában létrejön egy SQLDUMPNNNN.txt nevű dump fájl. Abban az esetben, ha az SQL-ben engedélyezve van a Feature Usage Data Collection és a Error Reporting, a hibajelentés elküldésre kerül a Microsoftnak javítási célokra.

Adatbázis helyreállítás

Az SQL szerver hiba keletkezésének forgatókönyvében az adatbázis javítása helyett ajánlott az adatbázis helyreállítása a legutóbb készített biztonsági mentésből.Ha nincs biztonsági mentés, akkor a javítási lehetőségek közül választhat. De a REPAIR_ALLOW_DATA_LOSS segítségével történő javítás választása egyes adatok törléséhez vezethet.

Alternatív megoldás az adatbázis helyreállításához

A DBCC CHECKDB parancs alapvetően az adatbázis konzisztenciáit ellenőrzi, beleértve a fizikai vagy logikai konzisztenciákat. Ez a parancs ellenőrzi az oldalakat, az indexet és az SQL szerver adatbázisának néhány más összetevőjét, de néhány kritikus ponton ez a parancs úgy dönt, hogy megtagadja az SQL adatbázis helyreállítását. Az MS SQL szerver adatbázis biztonsági mentésének hiányában a választott javítási lehetőségek jelentős mennyiségű adatot törölhetnek.Ezért az adatbázis helyreállítása érdekében az adatintegritás veszélyeztetése nélkül választhatja a Microsoft SQL adatbázis helyreállítási megoldást. Ezek garantálják az adatbázis teljes helyreállítását anélkül, hogy bármilyen mennyiségű adatot törölnének.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.