sqlite數據庫死亡提示database disk image is malformed的修復經歷

  今天在處理一個客戶的問題時,發現使用客戶的sqlite數據庫,本地調試代碼報database disk image is malformed,查了下說是文件損壞了,網上有修復的方法,說實話開始也不抱太大希望,因爲之前修復過一次沒成功,上次時間有點久了具體情況不太記得了。這次也就是看本地都有之前下載的現成的工具,修復也不麻煩就又嘗試了下,結果成功了,驚喜。記錄下以防後面忘記。

 

  一、下載sqlte3.exe
    通過sqlite官網下載地址:https://www.sqlite.org/download.html
    找到windows環境的當前最新版:https://www.sqlite.org/2022/sqlite-tools-win32-x86-3380500.zip

  二、使用步驟
  1.解壓sqlite-tools文件
    將sqlite-tools壓縮文件中的sqlite3.exe文件解壓到您損壞的數據庫目錄下。

  2.導出受損數據庫的數據

  指令如下:  

  sqlite3 old.db
  sqlite>.output tmp.sql回車   sqlite>.dump回車   sqlite>.quit回車

 

  此時會生產一個備份文件tmp.sql,
  用文本編輯軟件打開tmp.sql文件,找到最後一行
  將ROLLBACK;修改成Commit;
  後保存文件

  3.創建新數據庫導入數據到新數據庫
  指令如下:(例如數據庫文件爲new.db)

  sqlite3 new.db回車
  sqlite>.read tmp.sql回車
  sqlite>.quit回車

 

此時會產生一個新數據庫new.db。不出意外的話這個數據庫文件一般可以使用。

注意:一定要把導出的tmp.sql文件最後一行的ROLLBACK;修改成Commit;

借鑑:https://blog.csdn.net/SmartYJC/article/details/124736103

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章