DBCC UPDATEUSAGE – naprawa bazy danych

19-mar-2014

DBCC zgłasza bład:

Executing the query „DBCC CHECKDB(’MyDb’, NOINDEX)” failed with the following error: „The In-row data RSVD page count for object „XX40300”, index ID 0, partition ID 14181197782299, alloc unit ID 14181193482240 (type In-row data) is incorrect. Run DBCC UPDATEUSAGE.

Opss, baza uszkodzona. Zazwyczaj w tym momecie pomysły są następujące:

  • Repair_Rebuild jeżeli do uszkodzenia dochodzi na indeksach nonclustered
  • Repair_Allow_Data_Loss jeżeli do uszkodzenia dochodzi w samej tabeli, ale zgadzasz się na utratę części danych
  • Restore bazy danych, ale to też nie jest fajne

Sugestia zawarta w komunikacie może jednak odkryć kolejną metodę naprawy bazy:

Komenda

DBCC UPDATEUSAGE(’MyDb’) WITH NO_INFOMSGS

naprawia liczniki ilości rekordów i ilości wolnych/zajętych stron w tabelach. Jest niegroźna (raczej) ale backup przed jej uruchomieniem dla własnego dobra każdy DBA powinien wykonać.

W moim przypadku baza się naprawiła. Kolejne uruchomienie

DBCC CHECKDB(’MyDb’) WITH NO_INFOMSGS

nie wykazuje więcej błędów.

 

Komentarze są wyłączone

Autor: Rafał Kraik