开发者社区> zting科技> 正文

sqlite错误 The database disk image is malformed database disk image is malformed 可解决

简介:
+关注继续查看

在网上找了很多资料,很多网友都提到这个问题是不可解决的,面对这个问题,只能作罢。

但我不甘心这么丢失数据,最最后找到了一个解决方法。经测试,原来数据,全部保住。

以下为原文。

http://www.sunnyu.com/?p=201

 

SQLite有一个很严重的缺点就是不提供Repair命令。
导致死亡提示database disk image is malformed
它的产生有很多种可能,比如,磁盘空间不足,还有就是写入数据过程中突然掉电等。
官方对产生原因的一些说明: http://www.sqlite.org/lockingv3.html#how_to_corrupt

sqlite  my.sqlite3
sqlite>PRAGMA integrity_check;

获得提示

*** in database main ***
Page 1518: btreeInitPage() returns error code 11
On tree page 1566 cell 2: Child page depth differs
On tree page 1566 cell 3: Child page depth differs
SQL error: database disk image is malformed

可以尝试通过简单的导出导入方式对损坏的库文件作回复。
首先导出数据

sqlite3 my.sqlite3
sqlite>.output tmp.sql
sqlite>.dump
sqlite>.quit

再倒入到一个新库中

sqlite3 mynew.sqlite3
sqlite>.read tmp.sql
sqlite>.quit

这时新建的mynew.sqlite3一般可用。

 


本文转自火地晋博客园博客,原文链接:http://www.cnblogs.com/yelaiju/archive/2011/03/27/1996863.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Error 'Can't drop database 'just'; database doesn't exist' on query.
<p> Last_SQL_Error: Error 'Can't drop database 'just'; database doesn't exist' on query. Default database: 'just'. Query: 'drop database just'<br></p> <p><br></p> <p>  Relay_Master_Log_File: mas
1496 0
RMAN 'Duplicate Database' Feature in 11G [ID 452868.1]
RMAN 'Duplicate Database' Feature in 11G [ID 452868.1] ----------------------------------------------------------------------...
996 0
ORA-38760: This database instance failed to turn on flashback database
ORA-38760: This database instance failed to turn on flashback database 问题背景:        测试数据库执行shutdown immediate,日志里面报错,错误信息...
897 0
ORA-01506: missing or illegal database name 故障分析一例
今天在做RAC-DG实验时,碰到了不少的问题,这个问题是在操作用pifle创建spifle时出现的 由于在配置RAC-DG主库参数时,大部分人喜欢直接用alter system set xxx='xxx.
1093 0
ORA-01103: database name 'test' in control file is not 'standby'
主备primary,standby库的instance name不一致引起的 把备库的db_name要和主库一致,但*.
966 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Scale out database without pain
立即下载
AliHB Real-Time Cold data Backup
立即下载
AliHB Real Time Cold data Backup
立即下载