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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示