SQLITE3/Python-数据库磁盘映像格式不正确,但完整性检查正常

SQLITE3/Python-数据库磁盘映像格式不正确,但完整性检查正常,python,sqlite,select,multiprocessing,malformed,Python,Sqlite,Select,Multiprocessing,Malformed,我的实际问题是pythonsqlite3模块抛出的数据库磁盘映像格式不正确 现在肯定有一百万个可能的原因。但是,我可以提供一些线索: 我正在使用pythonmultiprocessing生成大量的worker,这些worker都从这个数据库读取(而不是写入) 问题肯定与访问数据库的多个进程有关,这在远程设置上失败,但在本地设置上失败。如果我在远程设置中只使用一个worker,它可以工作 同样的6GB数据库在我的本地机器上运行得非常好。我用git复制了它,后来又用scp复制到远程。与原始数据库副

我的实际问题是
python
sqlite3
模块抛出的
数据库磁盘映像格式不正确

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

  • 我正在使用
    python
    multiprocessing
    生成大量的worker,这些worker都从这个数据库读取(而不是写入)

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

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

  • 现在,如果我在遥控器上执行
    PRAGMA integrity\u check
    ,它会在一段时间后返回
    ok
    ,即使是在问题发生之后

  • 以下是版本(操作系统都是Ubuntu):

  • 本地:
    sqlite3.version>>2.6.0
    sqlite3.sqlite\u version>>3.22.0
  • 远程:
    sqlite3.version>>2.6.0
    sqlite3.sqlite\u version>>3.28.0

您对如何允许保存“并行”
选择有什么想法吗?

问题的原因如下(我以前也遇到过):

多处理
sqlite3
一起使用,确保为每个工作者创建单独的连接

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