SQLite資料庫損壞修復

2021-09-26 19:40:57 字數 1148 閱讀 1750

the database disk image is malformed

進入到sqlite3操作指定的資料庫

或者直接

sqlite3 e:\item.db

操作此資料庫

sqlite> .databases

main: e:\item.db

sqlite> .tables 顯示列表

檢查資料庫是否損壞

sqlite> pragma integrity_check;

下面開始修復損壞的資料庫

linux下:

$ sqlite3 mydata.db ".dump" | sqlite3 new.db

windows下:

第一步匯出sql語句

sqlite3 e:\item.db

sqlite>.output my.sql

sqlite>.dump

sqlite> .quit

第二步執行sql語句

sqlite3 new.db

sqlite> .read my.sql

sqlite> .quit

my.sql檔案使用notpad++開啟之後,拉到最後檢視是否是commit;如果是rollback;就修改為commit;

unzipsqlite-tools-linux-x86-3240000.zip

解壓之後有sqldiff、sqlite3、sqlite3_analyzer

cd sqlite-tools-linux-x86-3240000

進入到解壓的目錄

sudo apt install sqlite3

安裝進入到需要檢視的資料庫目錄,如item.db

sqlite3item.db

進入item資料庫

.tables

檢視裡面的表

.mode column

檢視表中的資料,預設顯示方式以豎線分隔"|"

.header on

頭部顯示列名

select * from t_bd_item_info limit 2;

SQLite資料庫損壞與修復

導致sqlite資料庫損壞的情況大致可歸結為4類 檔案覆蓋問題 檔案鎖問題 資料同步問題 記憶體問題 sqlite資料庫檔案被覆蓋是可能的,畢竟是乙個普通的磁碟檔案,意味著所有的程序都可以開啟和覆蓋,所以不可能完全避免檔案覆蓋的情況。1.多執行緒寫資料庫問題。sqlite資料庫是支援多程序併發讀寫,...

討論SQLite資料庫損壞與修復

昨晚,朋友和我反饋sqlite資料庫發生損壞有沒有辦法恢復。大致的情況是這樣的,當資料庫在使用時不小心用了新的檔案覆蓋資料庫,導致了sqlite資料庫出現了損壞,開啟的時候出現要輸入密碼,而且不能把sql語句dump下來。所以,文章這裡整理sqlite資料庫出現損壞的所有情況,以及如何修復損壞的sq...

sqlite3資料庫損壞修復

前陣子由於分割槽空間滿出現了sqlite3資料庫檔案損壞的現象,操作的時候報錯 error database disk image is malformed 這裡記錄一下修復的操作過程 sqlite3 test file.db 開啟損壞的資料庫檔案 output recovery.sql 設定輸出檔...