Uszkodzenie bazy SQL Server obsługującej Comarch ERP Altum to sytuacja krytyczna wymagająca natychmiastowej reakcji. Prawidłowa diagnostyka i dobór metody naprawy decyduje o tym, ile danych uda się zachować i jak szybko system wróci do pełnej sprawności.
Sygnały uszkodzenia bazy danych
Pierwsze oznaki uszkodzenia bazy SQL Server: błędy 823–825 w SQL Server Error Log (błędy I/O odczytu/zapisu stron bazy), komunikaty o uszkodzeniu strony w Podglądzie zdarzeń Windows (Application log, źródło MSSQLSERVER), aplikacja Altum zgłasza błędy SQL podczas operacji, które wcześniej działały poprawnie, lub SQL Server automatycznie odłącza bazę (Suspect mode). Każdy z tych sygnałów wymaga natychmiastowego zatrzymania pracy i diagnostyki.
DBCC CHECKDB – weryfikacja spójności
Narzędzie DBCC CHECKDB jest standardową metodą diagnozy uszkodzenia bazy SQL Server używanej przez Altum:
DBCC CHECKDB ('NazwaBazyAltum') WITH NO_INFOMSGS, ALL_ERRORMSGS;
Wynik zawiera listę uszkodzonych stron, tabel i indeksów. Opcja ALL_ERRORMSGS wyświetla wszystkie błędy bez ograniczeń – domyślnie SQL Server wyświetla tylko pierwsze 200 błędów. Raport CHECKDB należy zapisać przed przystąpieniem do naprawy.
Naprawa przez DBCC CHECKDB REPAIR
Jeśli kopia zapasowa jest niedostępna lub nieaktualna, możliwa jest naprawa bazy przez:
ALTER DATABASE NazwaBazyAltum SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ('NazwaBazyAltum', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE NazwaBazyAltum SET MULTI_USER;
Opcja REPAIR_ALLOW_DATA_LOSS może usunąć uszkodzone strony – oznacza utratę danych na tych stronach. Przed naprawą należy wykonać kopię bazy w stanie uszkodzonym jako punkt do ewentualnego odzyskania danych przez specjalistyczne narzędzia.
Przywracanie z kopii zapasowej jako priorytetowa metoda
Jeśli dostępna jest aktualna kopia zapasowa, przywrócenie bazy jest zawsze lepszą opcją niż naprawa DBCC – gwarantuje pełną spójność danych. Procedura RESTORE DATABASE z kopii FULL, nałożeniem DIFF i kolejnych LOG backupów minimalizuje utratę danych do czasu ostatniego backupu logu transakcyjnego.
Zapobieganie uszkodzeniom
Podstawowe środki zapobiegawcze: regularne uruchamianie DBCC CHECKDB (tygodniowo przez zadanie SQL Server Agent), monitoring S.M.A.R.T. dysków serwera, macierz RAID dla danych SQL Server, UPS chroniący przed nagłymi zanikaniami zasilania, oraz ograniczenie operacji na bazie do aplikacji (zakaz bezpośrednich modyfikacji przez narzędzia zewnętrzne). Wdrożenie SQL Server Always On zapewnia automatyczne przełączanie awaryjne w przypadku awarii węzła głównego.