Autor Wątek: Naprawa bazy danych - database corruption  (Przeczytany 2361 razy)

0 Użytkowników i 1 Gość przegląda ten wątek.

Offline allucard018

  • Narybek
  • *
Naprawa bazy danych - database corruption
« dnia: Marzec 18, 2014, 08:49:36 am »
Jeżeli nie działa Ci archiwum, wyskakuje ostrzeżenie o nieudanej próbie zapisu, a w konsoli (Narzedzia->Konsola) widnieje:
[150900::SQLI] 11: database corruption at line...
[150900::SQLI] 11: database disk image is malformed
ten poradnik być może Ci pomoże :)

Link do screenu z poprawnie wpisanymi komendami w shellu
http://ramzaroth.republika.pl/poradnik-naprawa_bazy_danych/ss.PNG

1.  Pobierz sql3 shell z (wkrótce może wygasnąć)
http://www.sqlite.org/2014/sqlite-shell-win32-x86-3080401.zip
lub z
http://www.sqlite.org/download.html
- sekcja Precompiled Binaries for Windows.               

2.  Rozpakuj archiwum.             
3.  Przejdź do folderu z bazą danych (uruchom program wtw i kliknij menu(tj.  WTW)->Otwórz lokalizacje profilu i przejdź do folderu ". archive"), i stwórz kopie zapasową (kliknij na "database.  sq3" prawym klawiszem kopiuj i w tym samym folderze wklej).             
4.  Skopiuj "database.  sq3" do rozpakowanego folderu z shellem.             
5.  Uruchom sqlite3.  exe
6.  Wpisz
.open database.sq3

7.  Sprawdź czy na pewno otworzyłeś właściwą bazę poleceniem
.databaze
- w przeciwnym wypadku ponów poprzedni punkt.             
8.  Wpisz
pragma integrity_check;
i jeśli wyskoczy jakiś błąd postępujemy dalej zgodnie z instrukcją.   W przeciwnym razie (wyskoczy"ok") oznaczać to będzie, że baza jest w porządku.               
9.  Wpisz
.clone nowaBaza.sq3
- jeśli wszystkie operacje powiodą się ("ok") przechodzimy do kolejnego punktu.             
10.  Odczekaj chwilę (aż pojawi się nowaBaza. sq3 w folderze) i sprawdź ją poleceniem
.open nowaBaza.sq3
pragma integrity_check;
Jeżeli wyskoczy "ok" możesz przejść do ostatniego punktu.       
11.  Skopiuj "nowaBaza.  sq3" do folderu wtw (patrz punkt 3) i zmień jego nazwę na "database. sq3" - usuwając poprzednią bazę (jeśli mamy kopie).             

Uwaga! Jeżeli przerazisz się dlatego, że baza jest prawie o połowę mniejsza - nie martw się.   Wynika to tylko z innego kodowania znaków :).             
Możesz to sobie sprawdzić wpisując
.open nazwaBazwy
pragma encoding;
na nowej i starej bazie danych, po czym porównać wynik (utf-8 jest o połowę mniejszy od utf-16).       

P.   S Umieściłem polecenia w kodzie, bo na tym forum posty formatuje mi w dziwaczny sposób - dodaje przerwy.  Znacznik url też nie działa.             
« Ostatnia zmiana: Marzec 18, 2014, 09:13:00 am wysłana przez allucard018 »

Offline Triosek

  • Narybek
  • *
Odp: Naprawa bazy danych - database corruption
« Odpowiedź #1 dnia: Luty 15, 2015, 09:34:46 am »
Świetny i prosty poradnik, bardzo dziękuję! :)

Offline Simplex

  • Narybek
  • *
Odp: Naprawa bazy danych - database corruption
« Odpowiedź #2 dnia: Sierpień 31, 2015, 14:55:49 pm »
Uratował mi życie, dziękuję ci dobry człowieku!

Baza po naprawie zajmuje 30% tego co przed, ale przynajmniej działa i z tego co widzę to ostatnie rozmowy są.

Offline matysek145

  • Narybek
  • *
Odp: Naprawa bazy danych - database corruption
« Odpowiedź #3 dnia: Luty 11, 2016, 19:34:39 pm »
Ok, a co w przypadku gdy archiwum jest zaszyfrowane? Moje niestety jest i sqlite mówi 'Error: file is encrypted or is not a database'.
Próbowałem odszyfrować przy użyciu Aes Crypt (bez powodzenia - invalid signature. . . ) oraz sqlite cipher - również bez powodzenia.  :(