6

我想知道 LevelDB 库的“快照”工具是否可以创建一个快照引用,即使在打开的数据库对象关闭后也可以保存该引用(因此可以在后续打开时重用)。

我怀疑不是,这导致了后续行动:是否有一种好的/推荐的方法来对数据库进行一致的备份作为快照即时,理想情况下即使其他活动仍在继续?(也就是说,没有通过 API 迭代整个快照键范围?)

(本质上,我正在寻找类似于通过某个检查点将 BerkeleyDB-JE 的仅附加 JDB 日志文件放在一边的东西。)

4

2 回答 2

3

一个好的方法是关闭数据库,然后硬链接所有 sst 文件(cp -l)并复制所有非 sst 文件。这样您实际上只复制了少量数据(日志大小,默认为 4MB)。然后您可以再次打开数据库。

发生这种情况时您必须阻止,但希望它应该很快。

于 2012-02-29T03:38:15.243 回答
1

我怀疑不是,这导致了后续行动:是否有一种好的/推荐的方法来对数据库进行一致的备份作为快照即时,理想情况下即使其他活动仍在继续?(也就是说,没有通过 API 迭代整个快照键范围?)

除了做你不想做的事情之外,我还没有在 leveldb 中看到任何可以让你保存快照的东西:创建一个新的 leveldb 实例,遍历整个当前快照键范围并将其写入新的leveldb 实例。你的情况会阻止你这样做吗?

于 2012-01-23T17:18:16.673 回答