SQLite3:无法打开数据库

时间:2011-09-10 15:56:45

标签: sqlite amazon-web-services membase

我一直试图找出这个问题已经有一段时间了,并且已经查看了所有正常的解决方案。我试图在sqlite数据库上运行.backup。我认为这不重要,但Membase正在使用这个特定的数据库,并且该数据库也在亚马逊云上运行。我备份的文件夹和数据库来自的文件夹都具有777权限(这是此消息的正常原因)。如果我sudo backup命令,它会在备份中途进行,然后进程只会在消耗CPU使用率时挂起并导致我最终终止sqlite进程。我甚至经历了chmod 777数据库文件本身。

以下是发生的事情:

/opt/membase/bin/sqlite3 /mnt/data-store/default-data/default-0.mb '.backup /mnt/data-backup/mbfiles/test.mb'

Error: unable to open database file

当我ls -la文件夹时:

drwxrwxrwx 2 membase membase      4096 Sep 10 15:41 .
drwxrwxrwx 4 membase root         4096 Aug  5 01:10 ..
-rw-r--r-- 1 membase membase     53248 Sep 10 15:41 default
-rwxrwxrwx 1 membase membase 849593344 Sep 10 15:41 default-0.mb

备份文件夹:

drwxrwxrwx 2 ec2-user ec2-user 4096 Sep 10 15:41 .
drwxrwxrwx 4 root     root     4096 Sep  3 00:26 ..

另外,因为我认为重要,所以/ tmp

的许可
drwxrwxrwt  3 root root 4096 Sep 10 03:32 .

我一直试图解决这个问题一个多星期了,任何新想法都会受到赞赏。应该注意的是,这是一个生产环境,因此重启不是一种选择。

编辑:我检查过,我可以备份较小的“默认”文件,而不是更大的数据库,因此这排除了文件夹权限的任何问题。任何帮助将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

这似乎是一个sqlite问题。我们已经看到其他客户偶然发生此错误,但尚无法追踪或解决它。根据sqlite专家的说法,这绝不应该发生; - )

您可以关闭Membase进程以进一步测试吗?如果是这样,此时尝试进行备份(确保'memcached'进程已停止)将排除访问该文件的软件的任何问题。如果它在这一点上仍然不起作用,我知道有一些工具可以验证一个sqlite数据库(只是不要把它们放在我的头顶)。

你也可以通过sqlite使用“.dump”和“.restore”的组合,但我不建议在正在运行的Membase节点上运行它,因为我们还没有测试过效果。

佩里