Uszkodzenie bazy danych SQL Server, na której działa Comarch ERP Optima, to jeden z poważniejszych incydentów, z jakimi mogą zmagać się użytkownicy systemu. Może do niego dojść wskutek nagłego zaniku prądu, awarii dysku twardego lub błędu oprogramowania. Opisujemy procedurę diagnozy i naprawy takiej sytuacji.
Objawy uszkodzenia bazy danych
Uszkodzona baza danych Optimy najczęściej objawia się komunikatami w stylu: „Błąd odczytu danych", „Podejrzana baza danych (Suspect Database)", błąd SQL Server 824 (błąd I/O) lub 823 (sprzętowy błąd odczytu). Program może w ogóle nie otwierać pewnych dokumentów lub modułów, a SQL Server może oznaczać bazę statusem SUSPECT lub RECOVERY_PENDING.
Pierwsza ocena – DBCC CHECKDB
Podstawowym narzędziem diagnostycznym jest polecenie SQL Server Management Studio (SSMS):
DBCC CHECKDB ('NazwaBazyOptima') WITH NO_INFOMSGS, ALL_ERRORMSGS;
Wynik wskazuje uszkodzone strony, tabele lub indeksy. Zanim przystąpisz do naprawy, koniecznie wykonaj pełną kopię zapasową pliku bazy (.mdf) i pliku dziennika (.ldf) nawet w stanie uszkodzonym – to materiał do odzyskiwania danych.
Naprawa przez DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS
Jeżeli kopia zapasowa jest niedostępna lub uszkodzona, można próbować naprawy z użyciem:
ALTER DATABASE NazwaBazyOptima SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DBCC CHECKDB ('NazwaBazyOptima', REPAIR_ALLOW_DATA_LOSS);
ALTER DATABASE NazwaBazyOptima SET MULTI_USER;
Opcja REPAIR_ALLOW_DATA_LOSS może spowodować utratę części danych – stosuj ją tylko w ostateczności i po wykonaniu kopii pliku .mdf.
Przywracanie z kopii zapasowej SQL
Najlepszym i najbezpieczniejszym sposobem jest przywrócenie bazy z kopii zapasowej .bak wykonanej przez Optimę lub przez SQL Server Agent. W SSMS kliknij prawym przyciskiem na bazę → Tasks → Restore → Database, wskaż plik .bak i wybierz punkt przywrócenia. Po przywróceniu konieczne może być wprowadzenie ręcznie dokumentów wystawionych po dacie ostatniego backupu.
Rola regularnych kopii zapasowych
Optima posiada wbudowany mechanizm automatycznych kopii zapasowych bazy danych. Konfiguruje się go w Narzędzia → Konfiguracja programu → Kopia zapasowa. Zalecamy ustawianie kopii przynajmniej raz dziennie, z zapisem na zewnętrznym nośniku lub w chmurze. Kopie przechowywane wyłącznie na tym samym dysku co baza danych nie chronią przed awarią dysku.
Profesjonalna odbudowa danych
W przypadkach głębokiego uszkodzenia lub utraty pliku .mdf oferujemy zaawansowaną odbudowę danych z fragmentów bazy, dziennika transakcji oraz kopii zapasowych. Usługa obejmuje analizę stron bazy, ekstrakcję danych z uszkodzonych tabel i odtworzenie spójnego stanu systemu.