2011-09-10 121 views
0

我一直试图弄清楚这个问题很长一段时间,并已看过所有正常的解决方案。我正试图在sqlite数据库上运行.backup。我认为它不重要,但是这个特定的数据库正在被Membase使用,并且也在Amazon云上运行。我备份的文件夹以及数据库来自的文件夹都具有777权限(这是此消息的正常原因)。如果我sudo备份命令,它通过备份中途,然后该过程挂起,同时消耗CPU使用率,并导致我最终杀死sqlite进程。我甚至通过chmod 777数据库文件本身。SQLite3:无法打开数据库

这里是发生了什么:

/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

这看起来像一个sqlite问题。我们已经看到其他客户偶尔发生此错误,但无法追踪或解决此错误。根据sqlite专家,这应该永远不会发生;-)

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

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

Perry