你的位置:首页 > 数据库

[数据库]【教程】SQLite数据库修复


SQLite 大家都知道,就不多说了。

有时候数据量大了,或者存储过程中出现异常,数据库就可能会出问题。

这是以前公司产品出现过的问题,导致软件都打不开了,我花了不少时间才解决的,趁现在有空贡献出来。

 

  1. 先下载一个 sqlite3 的命令行工具,下载对应系统版本的  command-line shell

  2. 下载完成后解压到一个目录下,顺便把要修复的数据库也放到该目录下。

  3. 打开终端(CMD)进入到该目录。

  4. 执行以下命令: sqlite3 要修复的数据库名.output "_temp.tmp".dump.quit 该命令是将旧数据库的内容提取出来,保存到一个临时文件中

  5. 用编辑器打开刚刚生成临时文件 _temp.tmp 看看文件的最后一行是不是 ROLLBACK; -- due to errors 是则把它删掉,并加上 COMMIT; 如果最后一行是 COMMIT; 则忽略此步骤。

  6. 再到终端,输入一下命令: sqlite3 新数据库名.read "_temp.tmp".quit 此命令是将旧数据写到新数据库里面。

  7. 至此,数据库修复完毕。可能有点小缺陷,数据会丢失一小部分,不过至少大部分数据都还在,数据库也能继续使用了。