C++ 无法执行检查点
返回iReturn=5(SQLITE\u忙碌)。写入程序不时醒来,向数据库中添加或删除许多行,执行检查点并再次进入睡眠状态 问题1:如果我使用WAL模式,有4个读卡器和一个写卡器,这怎么可能 问题2:在日志消息中,我看到检查点经常工作,但有时只报告SQLITE_忙碌。我是否应该关心它是否有时有效,但并非总是有效?这会损坏数据库吗C++ 无法执行检查点,c++,multithreading,sqlite,wal,C++,Multithreading,Sqlite,Wal,返回iReturn=5(SQLITE\u忙碌)。写入程序不时醒来,向数据库中添加或删除许多行,执行检查点并再次进入睡眠状态 问题1:如果我使用WAL模式,有4个读卡器和一个写卡器,这怎么可能 问题2:在日志消息中,我看到检查点经常工作,但有时只报告SQLITE_忙碌。我是否应该关心它是否有时有效,但并非总是有效?这会损坏数据库吗 问题3:我是否应该使用sqlite3\u wal\u checkpoint\u v2或SQLITE\u checkpoint\u FULL?完整的检查点要求没有并发读写
问题3:我是否应该使用sqlite3\u wal\u checkpoint\u v2或SQLITE\u checkpoint\u FULL?完整的检查点要求没有并发读写器 您可以尝试增加繁忙超时,但如果您尝试定期执行检查点,则可以忽略单个故障
int iReturn = sqlite3_wal_checkpoint_v2(m_poDB, NULL, SQLITE_CHECKPOINT_FULL, &iSizeOfWalLog, &iNumOfCheckpointedFrames);