2011-09-10 108 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