我的应用程序日志中有此错误:
sqlite3.OperationalError: database or disk is full
Run Code Online (Sandbox Code Playgroud)
由于有足够的磁盘空间可用,并且我的SQLite数据库似乎没有损坏(integrity_check没有报告任何错误),为什么会发生这种情况,我该如何调试呢?
我正在使用Lustre文件系统(带有flockset),直到现在,它都运行良好。
版本是:
小智 5
原始海报可能为时已晚,但我只是遇到了这个问题,无法找到答案,所以我将记录在案,以期对其他人有所帮助:
事实证明,即使有足够的磁盘空间,SQLite数据库实际上也可以充满,因为它限制了数据库文件中的页面数:
http://www.sqlite.org/pragma.html#pragma_max_page_count
在我的情况下,值为1073741823,这意味着与1024字节的页面大小结合使用时,数据库最大容量为1 TB,并返回“ database or disk is full”错误。
好消息是您可以提高限制。例如通过发行将它加倍PRAGMA max_page_count = 2147483646;。
但是,该限制似乎并未保存在数据库文件中,因此每次打开数据库时都必须在应用程序中运行该限制。
| 归档时间: |
|
| 查看次数: |
2355 次 |
| 最近记录: |