Comarch ERP XL – naprawa uszkodzonej bazy danych

Comarch ERP XL – naprawa uszkodzonej bazy danych

Uszkodzenie bazy danych SQL Server w środowisku Comarch ERP XL może być wynikiem awarii sprzętu, nieoczekiwanego wyłączenia serwera lub błędów I/O na dysku. Szybka i prawidłowa naprawa jest kluczowa dla przywrócenia ciągłości pracy systemu.

Rozpoznanie uszkodzenia bazy danych

Pierwsze sygnały uszkodzenia to: błędy SQL 823, 824 lub 825 w logu SQL Server Error Log (przechowywany w folderze LOG instancji), komunikaty o uszkodzeniu strony bazy danych w Podglądzie zdarzeń Windows, lub nieoczekiwane crash serwera SQL z wpisem w event logu Application. Każdy z tych sygnałów wymaga natychmiastowej reakcji.

DBCC CHECKDB – diagnostyka uszkodzeń

Narzędzie DBCC CHECKDB jest standardowym sposobem weryfikacji spójności bazy danych SQL Server. Należy uruchomić je w SQL Server Management Studio:

DBCC CHECKDB ('NazwaBazyXL') WITH NO_INFOMSGS, ALL_ERRORMSGS;

Wynik zawiera informacje o uszkodzonych stronach, tabelach i indeksach. Raport z CHECKDB jest punktem wyjścia do dalszych działań naprawczych i powinien być zapisany do pliku przed przystąpieniem do naprawy.

Naprawa za pomocą DBCC CHECKDB REPAIR

Jeśli CHECKDB wykrył uszkodzenia, można uruchomić naprawę:

ALTER DATABASE NazwaBazyXL SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ('NazwaBazyXL', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE NazwaBazyXL SET MULTI_USER;

Opcja REPAIR_ALLOW_DATA_LOSS oznacza, że SQL Server może usunąć uszkodzone strony, co prowadzi do utraty danych zawartych w tych stronach. Dlatego przed uruchomieniem naprawy należy bezwzględnie wykonać kopię bazy w stanie uszkodzonym – jako punkt wyjścia do ewentualnego odzyskania danych z kopii zapasowej.

Przywracanie z kopii zapasowej zamiast naprawy

Jeśli uszkodzenie jest rozległe lub naprawa DBCC prowadzi do dużej utraty danych, zalecane jest przywrócenie bazy z ostatniej dobrej kopii zapasowej (RESTORE DATABASE) zamiast naprawy. Transakcje zarejestrowane w logu transakcyjnym po ostatnim pełnym backupie można odtworzyć, jeśli wykonywano backupy logu (LOG backup). Model odzyskiwania FULL na bazie XL jest wymagany, aby ta opcja była dostępna.

Zapobieganie uszkodzeniom bazy danych

Regularne uruchamianie DBCC CHECKDB (co najmniej raz w tygodniu) pozwala wykrywać incipientne uszkodzenia zanim staną się krytyczne. Konfiguracja monitorowania dysku (S.M.A.R.T.) i macierzy RAID na serwerze bazy danych oraz UPS chroniący przed nagłymi zanikaniami zasilania to podstawowe środki zapobiegawcze dla środowisk Comarch ERP XL.