SQLITE3 / Python - 数据库磁盘映像格式不正确,但integrity_check正常



我的实际问题是pythonsqlite3模块抛出database disk image malformed

现在必须有一百万个可能的原因。但是,我可以提供一些线索:

  • 我正在使用pythonmultiprocessing生成许多工作线程,这些工作线程都从此数据库读取(而不是写入(

  • 问题肯定与访问数据库的多个进程有关,这些进程在远程设置上失败,但在本地设置上失败。如果我在远程设置中只使用一个工作人员,它可以工作

  • 相同的 6GB 数据库在我的本地计算机上运行良好。我用git复制了它,后来又用scp复制到远程。那里与原始数据库副本相同的脚本给出错误

  • 现在,如果我在遥控器上PRAGMA integrity_check,它会在一段时间后返回ok- 即使在问题发生后

  • 以下是版本(操作系统均为Ubuntu(:

    1. 本地:sqlite3.version >>> 2.6.0sqlite3.sqlite_version >>> 3.22.0
    2. 遥控器:sqlite3.version >>> 2.6.0sqlite3.sqlite_version >>> 3.28.0

您有一些想法如何允许保存"并行"SELECT吗?

问题的原因如下(以前发生在我身上(:

multiprocessingsqlite3一起使用,确保为每个工作线程创建一个单独的连接

显然,这会导致某些设置出现问题,有时不会。

最新更新