2012-01-17 58 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