2012-01-17 25 views
5

我想知道如果性LevelDB庫的「快照」工具可以創建甚至可以打開的數據庫對象的結束後保存(從而重用在後續開放)快照參考。在關閉數據庫時LevelDB快照能夠存活嗎?

我不懷疑,這導致了後續:有沒有做數據庫的一致的備份作爲一個快照瞬間,甚至理想而其他活動繼續好/推薦的方式? (也就是說,通過API迭代整個快照關鍵字?)

(本質上,我正在尋找類似於通過特定的檢查點來保存BerkeleyDB-JE的僅追加JDB日誌文件的東西。 )

回答

3

一個好的辦法是關閉數據庫,然後硬鏈接的所有SST文件(CP-1)和複製所有非SST文件。這樣,您只能實際複製少量數據(日誌大小,默認4MB)。然後你可以再次打開數據庫。

你必須阻止,而出現這種情況,但希望它應該很快。

+0

啊哈 - 這正是我一直在尋找的! (而且,非常相似,我和BDB-JE日誌文件完成的。)我懷疑這樣的事情是可能的,但忽略了所有寫操作都是合併成新的文件/索引節點。我可以暫時關閉。 – gojomo 2012-03-02 20:55:52

1

我不懷疑,這導致了後續:有沒有做數據庫的一致的備份作爲一個快照瞬間,甚至理想而其他活動繼續好/推薦的方式? (也就是說,短期通過API遍歷整個快照KeyRange中的?)

我還沒有看到任何性LevelDB,將讓你從做你做什麼不真正保存快照,除了想做的事:創建一個新的leveldb實例,迭代整個當前快照鍵範圍並將其寫入新的leveldb實例。你的情況阻止你這麼做嗎?

+0

創建手動抓拍(副本)會是一個回退的做法。另一個將依靠文件系統/卷管理器時間點,寫時複製快照功能。但是,爲了提高效率和簡單性,在圖書館本身具備這種能力將會是一個優點。 – gojomo 2012-01-24 02:26:52