inż. Dariusz Mikiel

Awarie występujące w bazach danych firmy Microsoft

W systemach Microsoft SQL Server, pliki bazy danych posiadają rozszerzenie mdf. Znajdują się w instancji o nazwie SQL.X (gdzie X jest numerem wersji serwera), w katalogu DATA. Dodatkowo połączone są z plikiem transakcyjnym ldf. Istnieją tam także bazy systemowe takie jak master, model, msdb lub tempdb. W niektórych programach jak Optima COMARCH, tworzony jest również plik konfiguracyjny tego programu.

Bazy danych wykorzystujące silnik Microsoft Jet, znajdują się w pliku z rozszerzeniem mdb. W zależności od programu z którym współpracują, mogą znajdować się również w katalogu DATA - jak ma to miejsce w przypadku programu WF-MAG dla MS-DOS.

Uszkodzenie jednego z powyższych plików, może być przyczyną awarii bazy danych. Błąd zapisu podczas jej modyfikacji lub uszkodzenie sektorów na dysku (pojawienie się tzw. bad bloków), także może przyczyniać się do utraty dostępu do danych.

Błędy i komunikaty programów korzystających z baz danych MS SQL.

Jednym z najbardziej popularnych w Polsce programów, korzystających z aparatu bazy danych Microsoft, jest wspomniany wcześniej WF-MAG. Początkowo pracował on w systemie MS-DOS i wykorzystywał plik bazy danych mdb. Obecne wersje programu korzystają już z MS SQL Server Express. Podobnie jest w przypadku wielu innych programów na rynku polskim, jak np. w programie Kaper, Subiekt GT, Raks czy Comarch Optima. W programach tych zarządzanie bazą danych odbywa się za pomocą własnego modułu administratora. Możemy tam zmieniać, importować, eksportować czy dokonywać konwersji bazy danych w przypadku zmiany wersji programu. Każdy z tych programów generuje własną pulę błędów. Poniżej przedstawiamy błędy baz danych występujące w programie WF-MAG.

Błąd bazy danych
Zdjęcie 1. Błąd bazy danych związany z niezgodnością jej wersji w programie WF-MAG.

Błąd bazy danych
Zdjęcie 2. Błąd bazy danych po aktywacji nowego serwera SQL.

Błąd bazy danych
Zdjęcie 3. Błąd nieprawidłowego zamknięcia bazy w programie WF-MAG.

Przykładowe błędy dotyczące uszkodzeń struktury bazy MS SQL.

W przypadku kiedy baza danych z jakiegoś powodu utraci spójność, zwykle przechodzi w stan "suspect". Ze względu na ryzyko uszkodzenia rekordów, system zarządzania bazą nie pozwoli na dalsze jej używanie. Poniżej przedstawiamy przykładowe błędy, które mogą być przyczyną awarii bazy danych SQL.

Failed to restart the current database. The current database is switched to master. Warning: The log for database 'WAPRO' has been rebuilt. Transactional consistency has been lost. The RESTORE chain was broken, and the server no longer has context on the previous log files, so you will need to know what they were. The database has been put in dbo-only mode. When you are ready to make the database available for use, you will need to reset database options and delete any extra log files.

Msg 8951, Level 16, State 1, Line 1
Table error: table 'AKTYWNOSC_UZYTKOWNIKA' (ID 174623665). Data row does not have a matching index row in the index 'AKTUZ_IDZAPISU' (ID 4). Possible missing or invalid keys for the index row matching
Msg 8955, Level 16, State 1, Line 1
Data row (1:32949:78) identified by (ID_AKTYWNOSC = 63771.) with index values 'ID_ZAPISU = 0. and ID_AKTYWNOSC = 63771.'.
Msg 8951, Level 16, State 1, Line 1
Table error: table 'AKTYWNOSC_UZYTKOWNIKA' (ID 174623665). Data row does not have a matching index row in the index 'AKTUZ_IDOPIS' (ID 5). Possible missing or invalid keys for the index row matching
Msg 8955, Level 16, State 1, Line 1
Data row (1:32949:78) identified by (ID_AKTYWNOSC = 63771.) with index values 'IDENTYFIKATOR_OPISOWY = 'NOM1' and ID_AKTYWNOSC = 63771.'.
Msg 8951, Level 16, State 1, Line 1
Table error: table 'AKTYWNOSC_UZYTKOWNIKA' (ID 174623665). Data row does not have a matching index row in the index 'AKTUZ_IDUZYTK' (ID 6). Possible missing or invalid keys for the index row matching
Msg 8955, Level 16, State 1, Line 1
Data row (1:32949:78) identified by (ID_AKTYWNOSC = 63771.) with index values 'ID_UZYTKOWNIKA = 3000001. and ID_AKTYWNOSC = 63771.'.
Msg 8952, Level 16, State 1, Line 1
Table error: table 'POZYCJAKONFIG_LOG' (ID 1229247434). Index row in index 'PO_DACIE' (ID 2) does not match any data row. Possible extra or invalid keys for
Msg 8956, Level 16, State 1, Line 1
Index row (1:25013:230) with values (ID_FIRMY = 1. and DATA_I_CZAS = '2013-08-26 17:14:36.947' and ID_POZYCJI_LOG = 5292.) pointing to the data row identified by (ID_POZYCJI_LOG = 5292.).
Msg 8952, Level 16, State 1, Line 1
Table error: table 'POZYCJAKONFIG_LOG' (ID 1229247434). Index row in index 'PO_DACIE' (ID 2) does not match any data row. Possible extra or invalid keys for
Msg 8956, Level 16, State 1, Line 1
Index row (1:25013:231) with values (ID_FIRMY = 1. and DATA_I_CZAS = '2013-08-26 17:14:37.087' and ID_POZYCJI_LOG = 5293.) pointing to the data row identified by (ID_POZYCJI_LOG = 5293.).
Msg 8952, Level 16, State 1, Line 1
Table error: table 'POZYCJAKONFIG_LOG' (ID 1229247434). Index row in index 'PO_DACIE' (ID 2) does not match any data row. Possible extra or invalid keys for
Msg 8956, Level 16, State 1, Line 1
Index row (1:25013:232) with values (ID_FIRMY = 1. and DATA_I_CZAS = '2013-08-26 17:14:37.120' and ID_POZYCJI_LOG = 5294.) pointing to the data row identified by (ID_POZYCJI_LOG = 5294.).
Msg 8952, Level 16, State 1, Line 1
Table error: table 'POZYCJAKONFIG_LOG' (ID 1229247434). Index row in index 'PO_NAZWIE' (ID 3) does not match any data row. Possible extra or invalid keys for
Msg 8956, Level 16, State 1, Line 1
Index row (1:21716:122) with values (ID_FIRMY = 1. and NAZWA_PARAMETRU = 'Data od' and ID_POZYCJI_LOG = 5293.) pointing to the data row identified by (ID_POZYCJI_LOG = 5293.).
Msg 8952, Level 16, State 1, Line 1
Table error: table 'POZYCJAKONFIG_LOG' (ID 1229247434). Index row in index 'PO_NAZWIE' (ID 3) does not match any data row. Possible extra or invalid keys for
Msg 8956, Level 16, State 1, Line 1
Index row (1:21717:99) with values (ID_FIRMY = 1. and NAZWA_PARAMETRU = 'Data do' and ID_POZYCJI_LOG = 5294.) pointing to the data row identified by (ID_POZYCJI_LOG = 5294.).
Msg 8952, Level 16, State 1, Line 1
Table error: table 'POZYCJAKONFIG_LOG' (ID 1229247434). Index row in index 'PO_NAZWIE' (ID 3) does not match any data row. Possible extra or invalid keys for
Msg 8956, Level 16, State 1, Line 1
Index row (1:39768:143) with values (ID_FIRMY = 1. and NAZWA_PARAMETRU = 'Zakres wyświetlania' and ID_POZYCJI_LOG = 5292.) pointing to the data row identified by (ID_POZYCJI_LOG = 5292.).

Jeżeli utracili Państwo dostęp do danych, zapraszamy do zapoznania się z ofertą naszych usług takich jak odzyskiwanie bazy danych.