C embbed系统上的SQLite数据库损坏
在使用eMMC的beaglebone嵌入式Linux系统上发生断电时,我正在测试SQLite数据库的完整性 我将数据库配置为C embbed系统上的SQLite数据库损坏,c,sqlite,embedded-linux,beagleboard,beagleboneblack,C,Sqlite,Embedded Linux,Beagleboard,Beagleboneblack,在使用eMMC的beaglebone嵌入式Linux系统上发生断电时,我正在测试SQLite数据库的完整性 我将数据库配置为 PRAGMA synchronous = FULL PRAGMA journal_mode = WAL 当继电器切断电源时,继续在数据库中写入数据。测试会自动运行几个小时 一段时间后,数据库会损坏,并出现以下错误: 完整性检查:**在数据库主目录中*** 第50861页:btreeInitPage()返回错误代码11 在树页面50820单元格83上:子页面深度不同 第5
PRAGMA synchronous = FULL
PRAGMA journal_mode = WAL
当继电器切断电源时,继续在数据库中写入数据。测试会自动运行几个小时
一段时间后,数据库会损坏,并出现以下错误:
完整性检查:**在数据库主目录中***
第50861页:btreeInitPage()返回错误代码11
在树页面50820单元格83上:子页面深度不同
第50862页:btreeInitPage()返回错误代码11
第50863页:btreeInitPage()返回错误代码11
第50864页:btreeInitPage()返回错误代码11
第50865页:btreeInitPage()返回错误代码11
第50866页:btreeInitPage()返回错误代码11
第50867页:btreeInitPage()返回错误代码11
第50868页:btreeInitPage()返回错误代码11
第50869页:btreeInitPage()返回错误代码11
第50870页:btreeInitPage()返回错误代码11
第50871页:btreeInitPage()返回错误代码11
第50872页:btreeInitPage()返回错误代码11
第50873页:btreeInitPage()返回错误代码11
在树页面50820单元格96上:子页面深度不同
我已经阅读了以下关于SQLite的文章:
如何防止数据库损坏
如果不可行,我的选择是什么,因为我不在乎丢失一些数据。SQLite允许在断电期间发生损坏,但仅在正在写入的扇区中 你使用的闪存芯片可能会损坏许多不相关的扇区。
这是不可能发现的;使用此硬件无法防止数据丢失。使用ext3分区解决了我的数据库损坏问题。但你的观点是对的,闪存芯片也会破坏不相关的部门。