1.15 Jak odzyskać uszkodzona bazę, (plik bazy istniejący przed ostatnią defragmentacją) ?

<cyt>
Była sobie jednostanowiskowa baza A2003, wielkość ok. 40MB, prawdopodobnie plik *.mde, ale ze zmienionym (zapewne dla zmyłki) rozszerzeniem na *.mdb. Nie była podzielona na Frontend/Backend. Prawdopodobnie miała ustawioną opcję kompaktuj przy zamknięciu. Tylko nie pytajcie, czy backup był robiony codziennie.
Przy próbie otwarcia bazy Access zgłasza komunikat nierozpoznany format bazy. Oczywiście żaden Access nie otwiera tej bazy. Po podglądnięciu pliku w edytorze Hex widać tylko 40 MB zer Chr(0), (nie mylić z cyfrą 0).
Jak odzyskać uszkodzoną bazę, (plik bazy istniejący przed ostatnią defragmentacją) ?
</cyt>
Aby odpowiedzieć na to pytanie, prześledzimy co się dzieje w folderze z bazą, podczas procesu defragmentacji testowej bazy dbTestDoDef.mdb.
 |
1. Zawartość folderu bazy przed defragmentacją - plik dbTestDoDef.mdb ma 49 276 KB |
 |
2. Folder bazy w trakcie defragmentacji - baza zostaje zamknięta, utworzony zostaje plik db1.bdb o wielkości 0 KB |
 |
3. Folder bazy w trakcie defragmentacji - plik db1.bdb ma wielkość 27 324 KB |
 |
4. Folder bazy w trakcie defragmentacji - plik db1.bdb ma ostateczną wielkość 27 458 KB |
 |
5. Folder bazy po defragmentacji - plik dbTestDoDef.mdb został usunięty, a plik db1.bdb zmienił nazwę na dbTestDoDef.mdb i baza została ponownie otwarta. *) proces prawdopodobnie przebiega troszeczkę inaczej |
Aby dokładniej zorientować się, co działo się w folderze bazy, uruchomiłem program do odzyskiwania danych DM Disk Editor and Data Recovery (DMDE) 2.0 Full Edition.
Przebadałem dysk (dla uproszczenia i przyspieszenia testu bazę umieściłem na pendrivie 256 MB w nowo utworzonym folderze). Poniżej znajduje się lista plików jakie (teoretycznie) mogą zostać odzyskane z folderu defragmentowanej bazy danych.
Jak widzimy, w folderze znajduje się usunięty, tymczasowy plik db1.bdb (_B1.MDB.) oraz oryginalny plik bazy przed defragmentacją dbTestDoDef.mdb (Size: 50 462 720 B).
*) Czyli końcowy etap defragmentacji opisany w punkcie 5. miał nieco inny przebieg. Po defragmentacji oryginalny plik bazy dbTestDoDef.mdb zostaje usunięty, a plik tymczasowy db1.bdb zostaje przekopiowany jako plik dbTestDoDef.mdb i następnie usunięty z dysku.
Spróbujemy odzyskać te dwa opisywane pliki. Zaznaczamy checkboxy przy nazwach plików, klikamy prawym przyciskiem myszy, z menu podręcznego wybieramy
" Odzyskaj " i wskazujemy folder C:\DefragOdzysk\. Folder docelowy musi bezwzględnie znajdować się na innym dysku, ponieważ w trakcie odzyskiwania (zapisywania odzyskiwanego pliku) może dojść do nadpisania miejsc na dysku, gdzie znajdują się odzyskiwane pliki .
 Folder C:\DefragOdzysk\ z odzyskanymi plikami.
Oba pliki są prawidłowymi plikami (kopiami) naszej defragmentowanej bazy. Otwierają się bez problemu i pobieżne testy wykazały, że najprawdopodobniej wszystko dobrze działa.
UWAGA: Jeżeli nie przeprowadzimy operacji odzyskiwania plików w miarę szybko (najlepiej bezpośrednio po defragmentacji), miejsce na dysku, gdzie były zapisane pliki przewidziane do odzyskiwania, może zostać nadpisane przez dowolną aplikacje działająca (zapisująca) na dysku, ponieważ System traktuje ten obszar jako nie zawierający danych.
Poniżej znajduje się "zawartość" folderu bazy po wykonaniu 5 defragmentacji bazy dbTestDoDef.mdb (przed każdą defragmentacją zmieniałem dane w tabelach bazy, usuwałem bądź dodawałem obiekty OLE w tabeli.
Odzyskany plik _B1.MDB z najpóźniejszą datą modyfikacji jest prawidłowo działajacą (zdefragmentowaną) bazą macierzystą dbTestDoDef.mdb.
ΔΔΔ |