int iReturn = sqlite3_wal_checkpoint_v2(m_poDB, NULL, SQLITE_CHECKPOINT_FULL, &iSizeOfWalLog, &iNumOfCheckpointedFrames);
返回 iReturn = 5 (SQLITE_BUSY)。编写器不时醒来,向数据库添加或删除许多行,执行检查点并再次进入睡眠状态。
问题 1:如果我使用 WAL 模式并且有 4 个读卡器和一个写卡器,这怎么可能?
问题 2:在日志消息中,我看到检查点通常有效,但有时只报告 SQLITE_BUSY。如果它有时但并非总是有效,我应该担心吗?这会破坏数据库吗?
问题 3:我应该不使用 sqlite3_wal_checkpoint_v2 或 SQLITE_CHECKPOINT_FULL 吗?