文档章节

SQLite数据库修复教程

焱龍
 焱龍
发布于 2015/11/25 11:57
字数 343
阅读 559
收藏 1

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

© 著作权归作者所有

共有 人打赏支持
焱龍
粉丝 5
博文 1
码字总数 343
作品 0
汕头
程序员
私信 提问
加载中

评论(1)

tongyuekeji
tongyuekeji
这篇文章还是不错的,对于没有数据库基础的话,挺有用处的。
像作者介绍的,只是简单的按照步骤,去恢复原有的数据库。但是sql数据库恢复过程中一旦报错,就不是这样简单的处理方法了,像mdf文件头损坏,磁盘坏道,数据库不能附加,校验有问题,823,824错误等等,解决以上问题,就不是简单的设置几下就可以恢复了,就要用到专业的数据库修复软件了, 鱼鱼mdf修复工具就能处理,工具可以百度到,免费的。实在搞不定的话,数据库事关重大就要找专门的修复工具。或者找专业的公司修复这个。我推荐济南同岳科技我们遇到很多事情都是找他们修复还包售后!
Python中使用SQLite

SQLite: SQLite是一种数据库,Python中集成了SQLite3,所以在Python中使用SQLite,可以直接导入SQLite包,不需要做额外的配置。 更多的SQLite简介和相关知识可以查看专门的教程:http://ww...

akane_oimo
09/24
0
0
XamarinSQLite教程创建数据库

XamarinSQLite教程创建数据库 安装SQLite/SQL Server Compact Toolbox后,就可以使用该插件创建数据库了。操作步骤如下: (1)在Visual Studio中,单击“工具” SQLite/SQL Server Compact ...

大学霸
07/18
0
0
XamarinSQLite教程Xamarin.iOS项目中打开数据库文件

XamarinSQLite教程Xamarin.iOS项目中打开数据库文件 以下是打开MyDocuments.db数据库的具体操作步骤: (1)将Mac电脑上的MyDocuments.db数据库移动到Windows电脑的某一位置处,如桌面。 (2...

大学霸
08/30
0
0
轻巧的本地数据库 - sqlite

  前言   SQLite,是一款轻型的数据库,它的设计目标是嵌入式的,而且现在很多嵌入式产品中使用它,它占资源非常低,在嵌入设备中,可能只需要几百K的内存就够了。它能够支持Windows/Lin...

linux运维菜
11/01
0
0
学习iPhone开发中 sqlite3的使用

由于我主要负责我们小组项目数据库模块的部分所以这几天都一直在研究在iphone中最为常用的一个简单数据库sqlite,自己也搜集很多资料,因此在这里总结一下这几天的学习成果: 1.Sqlite操作简明教...

慎道
2011/03/27
0
1

没有更多内容

加载失败,请刷新页面

加载更多

十月开源项目推荐:专为 Python 初学者准备的 IDE 你用过吗?

每月新增开源项目。顾名思义,每月更新一期。我们会从社区上个月新收录的开源项目中,挑选出有价值的、有用的、优秀的、或者好玩的开源项目来和大家分享。数量不多,但我们力求推荐的都是精品...

编辑部的故事
14分钟前
6
0
Java/Android 获取文件夹的文件列表(file.listFiles())并按名称排序,中文优先

排序规则 因为是中国人,习惯性看中文文件夹放前面比较顺眼,所以在别人博客(https://blog.csdn.net/da_caoyuan/article/details/56664673)的基础上,加上了自己的排序规则。 默认排序规则...

她叫我小渝
15分钟前
0
0
RabbitMQ通过shovel插件迁移数据

前言 生产环境中会遇到RabbitMQ数据迁移的场景,例如:切换云服务厂商、不同Region之间数据迁移、新搭建RabbitMQ实例,数据需要同步至新的RabbitMQ实例。 前提条件: 源RabbitMQ实例打开了s...

中间件小哥
18分钟前
0
0
kubernetes 环境搭建

kubernetes 简介:Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful)。 点击此处查看官网详情。...

MrPei
32分钟前
1
0
关于scala macro的example

http://www.bbartosz.com/blog/2016/09/24/fun-with-scalameta-examples-part1/

Littlebox
34分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部