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

你可能感兴趣的:(数据库,sqlite,修复)