调用sqlite3_step时出现未知错误(11:数据库磁盘映像格式错误)eu:iOS



我正在使用SQLite DB开发iOS应用程序。该应用程序具有一个功能,在打开该应用程序时,将服务器中的记录插入到本地SQLite数据库中。在这个过程中,我的SQLite数据库被破坏了。

给出以下错误:

Unknown error calling sqlite3_step (11: database disk image is malformed) eu
2022-04-05 11:55:39.643654+0530 HCUserBook[30620:1755003] DB Query: INSERT OR REPLACE INTO HCUserInfo (UserID, UserCode, UserSubCode, UserType, IDNumber, Status, PB_Update_Date, SOS_ID, PCode, Precinct, PrecSub, PartyID, DateTimeStamp, isPushedToServer) VALUES (1704059, "0322", "00", "P", "1546811", "APPR", "2019-04-04 07:54:23:539", "1106853801", "", "0210",  "01", "D", "2022-02-01 09:01:11", 1)
2022-04-05 11:55:39.643746+0530 HCUserBook[30620:1755003] Unknown error finalizing or resetting statement (11: database disk image is malformed)
2022-04-05 11:55:39.643815+0530 HCUserBook[30620:1755003] DB Query: INSERT OR REPLACE INTO HCUserInfo (UserID, UserCode, UserSubCode, UserType, IDNumber, Status, PB_Update_Date, SOS_ID, PCode, Precinct, PrecSub, PartyID, DateTimeStamp, isPushedToServer) VALUES (1704059, "0322", "00", "P", "1546811", "APPR", "2019-04-04 07:54:23:539", "1106853801", "", "0210",  "01", "D", "2022-02-01 09:01:11", 1)
2022-04-05 11:55:39.644163+0530 HCUserBook[30620:1755003] Unknown error calling sqlite3_step (11: database disk image is malformed) eu
2022-04-05 11:55:39.644244+0530 HCUserBook[30620:1755003] DB Query: INSERT OR REPLACE INTO HCUserInfo (UserID, UserCode, UserSubCode, UserType, IDNumber, Status, PB_Update_Date, SOS_ID, PCode, Precinct, PrecSub, PartyID, DateTimeStamp, isPushedToServer) VALUES (1736570, "0322", "00", "P", "1862069", "APPR", "2019-04-04 07:54:23:540", "1114139138", "", "0491",  "02", "D", "2022-02-03 13:41:16", 1)
2022-04-05 11:55:39.644329+0530 HCUserBook[30620:1755003] Unknown error finalizing or resetting statement (11: database disk image is malformed)
.
.
.

这是一个随机的问题,只发生过几次。

我从设备中提取了SQLite数据库,并使用DBBrowser在其上运行PRAGMA integrity_check_command。

我得到了以下结果

*** in database main ***
Page 19100: free space corruption
Page 22612: free space corruption
Page 22858: free space corruption
Page 19602: free space corruption
On tree page 56 cell 0: invalid page number 24126
On tree page 56 cell 2565: invalid page number 24125
On tree page 56 cell 2564: invalid page number 24124
On tree page 56 cell 2563: invalid page number 24122
On tree page 56 cell 2562: invalid page number 24121
On tree page 56 cell 2561: invalid page number 24120
On tree page 56 cell 2560: invalid page number 24119
On tree page 56 cell 2559: invalid page number 24117
On tree page 56 cell 2558: invalid page number 24115
On tree page 56 cell 2557: invalid page number 24114
On tree page 56 cell 2556: invalid page number 24112
Page 21881: free space corruption
On tree page 82 cell 36: invalid page number 24123
On tree page 58 cell 158: invalid page number 24118
On tree page 58 cell 102: invalid page number 24116
On tr
row 1 missing from index idx_HCPDR_Name
row 1 missing from index idx_HCPDR_DriverLicNo
row 1 missing from index idx_HCPDR_Birthdate
row 2 missing from index idx_HCPDR_Name
row 2 missing from index idx_HCPDR_DriverLicNo
row 2 missing from index idx_HCPDR_Birthdate
row 3 missing from index idx_HCPDR_Name
row 3 missing from index idx_HCPDR_DriverLicNo
row 3 missing from index idx_HCPDR_Birthdate
row 4 missing from index idx_HCPDR_Name
row 4 missing from index idx_HCPDR_Birthdate
row 5 missing from index idx_HCPDR_Name
row 5 missing from index idx_HCPDR_DriverLicNo
row 5 missing from index idx_HCPDR_Birthdate
row 6 missing from index idx_HCPDR_Name
row 6 missing from index idx_HCPDR_DriverLicNo
row 6 missing from index idx_HCPDR_Birthdate
row 7 missing from index idx_HCPDR_DriverLicNo
row 7 missing from index idx_HCPDR_Birthdate
row 8 missing from index idx_HCPDR_Name
row 8 missing from index idx_HCPDR_DriverLicNo
row 8 missing from index idx_HCPDR_Birthdate
row 9 missing from index idx_HCPDR_Name
row 9 missing from index idx_HCPDR_DriverLicNo
row 9 missing from index idx_HCPDR_Birthdate
row 10 missing from index idx_HCPDR_Name
row 10 missing from index idx_HCPDR_DriverLicNo
row 10 missing from index idx_HCPDR_Birthdate
row 11 missing from index idx_HCPDR_Name
row 11 missing from index idx_HCPDR_DriverLicNo
row 11 missing from index idx_HCPDR_Birthdate
row 12 missing from index idx_HCPDR_Name
row 12 missing from index idx_HCPDR_DriverLicNo
row 12 missing from index idx_HCPDR_Birthdate
row 13 missing from index idx_HCPDR_Name
row 13 missing from index idx_HCPDR_DriverLicNo
row 13 missing from index idx_HCPDR_Birthdate
row 14 missing from index idx_HCPDR_Name
row 14 missing from index idx_HCPDR_DriverLicNo
row 14 missing from index idx_HCPDR_Birthdate
row 15 missing from index idx_HCPDR_Name
row 15 missing from index idx_HCPDR_DriverLicNo
row 15 missing from index idx_HCPDR_Birthdate
row 16 missing from index idx_HCPDR_Name
row 16 missing from index idx_HCPDR_Birthdate
row 17 missing from index idx_HCPDR_Name
row 17 missing from index idx_HCPDR_DriverLicNo
row 17 missing from index idx_HCPDR_Birthdate
row 18 missing from index idx_HCPDR_Name
row 18 missing from index idx_HCPDR_DriverLicNo
row 18 missing from index idx_HCPDR_Birthdate
row 19 missing from index idx_HCPDR_Name
row 19 missing from index idx_HCPDR_DriverLicNo
row 19 missing from index idx_HCPDR_Birthdate
row 20 missing from index idx_HCPDR_Name
row 20 missing from index idx_HCPDR_DriverLicNo
row 20 missing from index idx_HCPDR_Birthdate
row 21 missing from index idx_HCPDR_Name
row 21 missing from index idx_HCPDR_DriverLicNo
row 21 missing from index idx_HCPDR_Birthdate
row 22 missing from index idx_HCPDR_Name
row 22 missing from index idx_HCPDR_DriverLicNo
row 22 missing from index idx_HCPDR_Birthdate
row 23 missing from index idx_HCPDR_Name
row 23 missing from index idx_HCPDR_DriverLicNo
row 23 missing from index idx_HCPDR_Birthdate
row 24 missing from index idx_HCPDR_Name
row 24 missing from index idx_HCPDR_DriverLicNo
row 24 missing from index idx_HCPDR_Birthdate
row 25 missing from index idx_HCPDR_Name
row 25 missing from index idx_HCPDR_DriverLicNo
row 25 missing from index idx_HCPDR_Birthdate
row 26 missing from index idx_HCPDR_Name
row 26 missing from index idx_HCPDR_DriverLicNo
row 26 missing from index idx_HCPDR_Birthdate
row 27 missing from index idx_HCPDR_Name
row 27 missing from index idx_HCPDR_DriverLicNo
row 27 missing from index idx_HCPDR_Birthdate
row 28 missing from index idx_HCPDR_Name
row 28 missing from index idx_HCPDR_DriverLicNo
row 28 missing from index idx_HCPDR_Birthdate
row 29 missing from index idx_HCPDR_Name
row 29 missing from index idx_HCPDR_DriverLicNo
row 29 missing from index idx_HCPDR_Birthdate
row 30 missing from index idx_HCPDR_Name
row 30 missing from index idx_HCPDR_DriverLicNo
row 30 missing from index idx_HCPDR_Birthdate
row 31 missing from index idx_HCPDR_Name
row 31 missing from index idx_HCPDR_DriverLicNo
row 31 missing from index idx_HCPDR_Birthdate
row 32 missing from index idx_HCPDR_Name
row 32 missing from index idx_HCPDR_DriverLicNo
row 32 missing from index idx_HCPDR_Birthdate
row 33 missing from index idx_HCPDR_Name
row 33 missing from index idx_HCPDR_DriverLicNo
row 33 missing from index idx_HCPDR_Birthdate
row 34 missing from index idx_HCPDR_Name
row 34 missing from index idx_HCPDR_DriverLicNo
row 34 missing from index idx_HCPDR_Birthdate

注意:在为我的iOS应用程序创建SQLite DB时,我设置了PRAGMA page_size=65536,然后运行Vaccum。

早些时候,我曾经通过创建一个新的SQLite数据库来解决这个问题,然后在我的iOS应用程序中使用它。但这次没用。这个问题是随机的,有时我没有任何腐败问题,有时我会。

请帮忙。

感谢

少数建议:

  1. 确保您没有试图从多个线程访问数据库同时。所有数据库操作都应该串行执行在使用sqlite时
  2. 你在不同的网站上检查过这个问题吗设备,以查看它是否发生在特定设备(iOS版本(上
  3. 如果您在iOS上使用任何库进行数据库操作,请确保库的版本是稳定的,没有任何此类问题的报告由任何其他用户执行

如果此问题已经修复,请更新此线程,以及哪些修复对您有效。

最新更新