我的数据库大约有25 MB,我已经确认访问它的用户名以及文件权限在几个月内没有更改。我遇到了一个问题,查询失败,提示“数据库或磁盘已满”,有时还会出现“数据库磁盘映像文件损坏”的问题。
除非我读错了,否则我的磁盘远未满(这是一个Ubuntu服务器,版本是9.10,如果有任何区别的话)。
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 19610300 2389596 16224560 13% /
udev 10240 128 10112 2% /dev
none 254136 0 254136 0% /dev/shm
none 254136 36 254100 1% /var/run
none 254136 0 254136 0% /var/lock
none 254136 0 254136 0% /lib/init/rw
我刚刚进行了一个添加新记录的测试,它运行正常。我正在试图找出是否有特定的操作失败了。然而,在插入记录后(并验证其已存在),数据库在磁盘上的字节数未发生任何变化(既不增加也不减少)。
使用命令行实用程序会导致类似以下的结果,这明显是失败的:)
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> pragma integrity_check;
*** in database main ***
On tree page 2 cell 0: 2nd reference to page 26416
On tree page 2 cell 1: 2nd reference to page 26417
On tree page 2 cell 2: 2nd reference to page 26434
On tree page 2 cell 3: 2nd reference to page 26449
On tree page 2 cell 4: 2nd reference to page 26464
On tree page 2 cell 5: 2nd reference to page 26358
On tree page 2 cell 6: 2nd reference to page 26494
On tree page 2 cell 7: Child page depth differs
On tree page 2 cell 8: 2nd reference to page 26190
On tree page 2 cell 8: Child page depth differs
... etc., etc. ...
有什么建议可以告诉我接下来应该看哪里?表格的行数是否存在问题?我已经阅读了关于SQLite3最大值的一些内容,并且据我所知,我的数据库内容距离这些最大值还很远。然后我查看了我的每日备份,我发现数据库备份在3-4天内的文件大小没有改变 - 非常奇怪。我恢复了一个在它的文件大小不变之前的数据库备份副本,但仍然出现了奇怪的问题。
我认为我必须(1)从早期的备份中还原,和(2)重新运行我的Rails迁移来修复问题。