我一直试图找出这个问题已经有一段时间了,并且已经查看了所有正常的解决方案。我试图在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 .
我一直试图解决这个问题一个多星期了,任何新想法都会受到赞赏。应该注意的是,这是一个生产环境,因此重启不是一种选择。
编辑:我检查过,我可以备份较小的“默认”文件,而不是更大的数据库,因此这排除了文件夹权限的任何问题。任何帮助将非常感激。
谢谢!
答案 0 :(得分:0)
这似乎是一个sqlite问题。我们已经看到其他客户偶然发生此错误,但尚无法追踪或解决它。根据sqlite专家的说法,这绝不应该发生; - )
您可以关闭Membase进程以进一步测试吗?如果是这样,此时尝试进行备份(确保'memcached'进程已停止)将排除访问该文件的软件的任何问题。如果它在这一点上仍然不起作用,我知道有一些工具可以验证一个sqlite数据库(只是不要把它们放在我的头顶)。
你也可以通过sqlite使用“.dump”和“.restore”的组合,但我不建议在正在运行的Membase节点上运行它,因为我们还没有测试过效果。
佩里