我们使用SQLite数据库来存储来自数据分析管道的结果。数据库文件位于我们的高性能横向扩展文件存储中,该文件存储与我们的集群节点连接到同一个交换机,以确保良好的连接。
但是最近我一直无法通过python查询数据库。当许多作业尝试一次查询数据库时尤其如此。我收到错误消息,例如
sqlite3.DatabaseError: malformed database schema (primary_digest_joint) - index primary_digest_joint already exists
或
sqlite3.DatabaseError: database disk image is malformed
请注意,这些作业只是读取数据库,而不是写入数据库(没有写入数据库),我认为SQLite应该没问题。
通常,如果我停止管道,我可以很好地访问数据库,它看起来完好无损。如果我再次重新启动管道,则会在我再次收到错误之前成功完成一些作业。
知道为什么会发生这种情况或者可以做些什么来阻止它?是否有可能数据库实际上已被损坏,即使我似乎很好,并且运行PRAGMA integrity_check并不表示有任何错误。