DBCC CHECKDB Not Run Recently

Amikor az SQL Server adatokat ír a meghajtókra, azt feltételezi, hogy minden rendben van, amíg vissza nem kell olvasnia az adatokat.

A tároló sérülése esetén a tároló sajnos nem olyan kedves, hogy figyelmeztesse az SQL Servert. És néha az SQL Server még saját magát is megrongálja.

Időnként ellenőriznünk kell, hogy a lemezen lévő adatoknak még mindig van-e értelme, és itt jön a képbe a DBCC CHECKDB. Mind a kiosztási hibákat, mind a konzisztenciahibákat ellenőrzi. Ezenkívül, ha vannak problémák, a hibaüzenetekben visszajönnek a hibák helyére vonatkozó információk, a hiba súlyossága, valamint a javasolt javítási lehetőség.

Elkerülhetetlen, hogy rendszeresen futtassuk a CHECKDB-t, hogy megtaláljuk a hibákat, ha vannak, mert ha van korrupció, akkor azt ki kell javítanunk, mielőtt az utolsó jó biztonsági mentések eltűnnek.

A probléma megtalálásához minden egyes adatbázist ellenőrizzük, hogy a DBCC CHECKDB az elmúlt két hétben sikeresen elvégezte-e az ellenőrzést.

Nem hiszi el?

“De én állandóan futtatom a CHECKDB-t”, mondhatja – nos, nézzük meg:

Transact-SQL

1
DBCC DBINFO(‘StackOverflow’) WITH TABLERESULTS

Ez az. De a kimenet egy rémálom. Körülbelül 80 sornyi olyan dolog, ami valószínűleg soha nem fog érdekelni. Az 50. sor körül van az, amit keresel.

Hi, nonszensz vagyok.

És valószínűleg ezt fogod látni! Egy 1900-01-01-es dátumot stb. Ez azt jelenti, hogy soha. Ha lefuttatod a DBCC CHECKDB-t az adatbázison, talán így:

Transact-SQL

1
DBCC CHECKDB(‘StackOverflow’) WITH NO_INFOMSGS, ALL_ERRORMSGS

Majd futtassuk újra a DBCC DBINFO parancsot, a dátumunk most már aktuálisra frissült:

Nézd, milyen jól szórakozunk

Ha a dátum nem frissül, az két dolog egyikét jelenti:

A probléma megoldása

Döntse el, hogy a beépített karbantartási terveket vagy egy ingyenes eszközt, például Ola Hallengren ingyenes CHECKDB szkriptjeit szeretné-e használni. Néhány megfontolás:

  • A karbantartási terveknek grafikus felületük van, ha nem ismeri a T-SQL-t.
  • Ola Hallengren ingyenes szkriptjei gondoskodnak a finomhangolt beállításokról, például az adat_tisztasági ellenőrzések automatikus futtatásáról (ami jó dolog).

Hogyan állítsa be a rendszeres karbantartást a sérülések ellenőrzésére

1. lehetőség: Karbantartási terv használata a DBCC CHECKDB futtatásához

Ha karbantartási terveket használ, akkor a karbantartási terveket az SQL Server Management Studio-ban a Management, Maintenance Plans menüpontban szerkesztheti. Kiszolgálója több karbantartási tervvel is rendelkezhet, amelyek különböző típusú adatbázisokhoz futtatják a CHECKDB-t, például egy a rendszeradatbázisokhoz és egy a felhasználói adatbázisokhoz.

Tágítsa ki a Management csomópontot az SSMS-ben, kattintson a jobb gombbal a Maintenance Plans (Karbantartási tervek) elemre, és válassza az New Plan (Új terv) lehetőséget.

Az eszköztár ablakból, amely néha balra elrejtőzik, húzza át az Adatbázis integritásának ellenőrzése feladatot a Karbantartási terv lapra.

Az Adatbázis integritásának ellenőrzése feladat mezőre duplán kattintva a Karbantartási terv lapon kiválaszthatja, hogy mely adatbázisokat szeretné ellenőrizni a folyamat során.

Ezután már csak az ütemezés van hátra, ami ugyanúgy történik, mint egy ügynöki feladat ütemezése.

A karbantartási terv mentése és bezárása után mindenképpen keresse meg a kapcsolódó feladatot az SQL Server Agentben, és állítsa be az Értesítési tulajdonságokat, hogy egy operátor értesüljön a feladat sikertelenségéről.

2. lehetőség: Az SQL Agent munkák beállítása a DBCC CHECKDB futtatására Ola Hallengren ingyenes szkriptjeinek használatával

Ha először hajt végre integritásellenőrzést, fontolja meg Ola Hallengren ingyenes karbantartási szkriptjeinek használatát. Ezek nem olyan egyszerűek, mint a karbantartási tervek, de sokkal rugalmasabbak. Azt is tartalmazzák, hogy nagy adatbázisok esetén a DBCC műveleteket kisebb darabokra lehet bontani. Nagyon nagy adatbázisok esetén a CHECKDB jelentős mennyiségű időt és erőforrást vehet igénybe – a WITH PHYSICAL_ONLY opció gyorsabb, de kihagyja a logikai ellenőrzéseket.

Amikor az ügynöki feladatok már készen vannak, ütemezheti őket ugyanolyan egyszerűen, mint a karbantartási terveket, vagy finomhangolhatja őket az itt dokumentált további opciókkal.

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

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