0

很长一段时间以来,我一直在尝试解决这个问题,并查看了所有正常的解决方案。我正在尝试在 sqlite 数据库上运行 .backup。我认为这并不重要,但这个特定的数据库正在被 Membase 使用,并且也在亚马逊云上运行。我要备份到的文件夹和数据库来自的文件夹都具有 777 权限(这是此消息的正常原因)。如果我 sudo 备份命令,它会在备份过程中进行,然后进程会在消耗 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 .

我已经尝试解决这个问题一个多星期了,任何新的想法都将不胜感激。应该注意的是,这是一个生产环境,所以重启不是一个选项。

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

谢谢!

4

1 回答 1

0

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

您可以关闭 Membase 进程以进一步测试吗?如果是这样,此时尝试进行备份(确保“memcached”进程已停止)将排除软件访问文件的任何问题。如果此时它仍然不起作用,我知道有工具可以验证 sqlite DB(只是不要让它们脱离我的头脑)。

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

佩里

于 2011-09-13T21:43:06.157 回答