Kontrola konzistence databáze

PříspěvekNapsal: 12.06.2007 16:38
od jiri.dolezal
Kontrola konzistence databáze, spuštěná v Systémových konstantách Helios Orange provádí nad databázi následující SQL příkazy:
Kód: Vybrat vše
DBCC CHECKCATALOG('JmenoDB')WITH NO_INFOMSGS
DBCC CHECKDB('JmenoDB')WITH NO_INFOMSGS,TABLERESULTS


DBCC je obecná funkce SQL pro otestování stavu databáze, která má různé parametry. Na základě těchto parametrů se zjištují chyby konzistencí v objektech databáze (více info lze najít v Books Online SQL Serveru).

DBCC CHECKCATALOG - provádí kontrolu konzistence v systémových tabulkách databáze a kontroluje také vazby mezi těmito tabulkami. V systémových tabulkách se nacházejí informace o všech uložených datech, tabulkách, sloupcích, indexech, procedurách, triggerech apod.

DBCC CHECKDB - provádí kontrolu strukturální integrity všech objektů v databázi a kontroluje jejich alokování.

Pokud jsou zjištěny nějaké chyby, tyto jsou zobrazeny ve výsledkové tabulce. SQL odhaduje nakolik jsou poškození závažná a u příslušných objektů uvádí úroveň možných oprav.
Pokud je u poškozeného objektu navržena úroveň opravy REPAIR_ALLOW_DATA_LOSS, pak s velkou pravděpodobností může dojít při opravě ke ztrátě dat.

Možnost opravy poškozené databáze je třeba konzultovat se specialisty. Oprava nemusí být možná nebo je možná pouze za současné ztráty dat (bez konkretizace jakých dat). Standardní (Microsoftem doporučovaný) postup v těchto situacích je návrat k poslední - napoškozené - záloze databáze.

Upozornění:
Doporučujeme provádění této kontroly konzistence na pravidelné bázi - denně, příp. týdně (např. s pomocí nástrojů MS SQL Serveru, vždy před samotným zálohováním). Je třeba si uvědomit, že poškození je součástí zálohy databáze.

Kontrola konzistence - programová / aplikační:
Řádkový parametr Helios.exe -kk+ také provádí kontrolu databáze, ale z pohledu aplikace. Pomocí speciálních mechanismů aplikace Helios Orange se kontrolují existence a struktury všech uživatelských objektů v databázi proti "katalogu" aplikace. V případě nesouladu informací se vygenerují na úrovni programu potřebné změnové skripty, které nesoulad řeší. Kontrolují se také uživatelé uložení v databázi proti uživatelům definovaným přímo na SQL, v případě nesouladu je nabídnuto jejich založení na SQL.