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
生成大量的worker,这些worker都从这个数据库读取(而不是写入)multiprocessing
- 问题肯定与访问数据库的多个进程有关,这在远程设置上失败,但在本地设置上失败。如果我在远程设置中只使用一个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
一起使用,确保为每个工作者创建单独的连接
显然,这会导致一些设置出现问题,有时不会