6

LevelDBライブラリの「snapshot」機能が、開いているデータベースオブジェクトを閉じた後でも保存できる(したがって、その後の開いたときに再利用できる)スナップショット参照を作成できるかどうか疑問に思っています。

そうではないと思いますが、これはフォローアップにつながります。スナップショットの時点で、理想的には他のアクティビティが継続している間でも、データベースの一貫したバックアップを作成するための適切な/推奨される方法はありますか?(つまり、APIを介してスナップショットキー範囲全体を反復することはできませんか?)

(基本的に、BerkeleyDB-JEの追加専用のJDBログファイルを特定のチェックポイントの場所まで保存するのに似たものを探しています。)

4

2 に答える 2

3

DBを閉じてから、すべてのsstファイルをハードリンクし(cp -l)、すべての非sstファイルをコピーすることをお勧めします。この方法では、実際には少量のデータ(ログのサイズ、デフォルトでは4MB)のみをコピーします。その後、DBを再度開くことができます。

これが発生している間はブロックする必要がありますが、うまくいけば迅速に実行できるはずです。

于 2012-02-29T03:38:15.243 に答える
1

そうではないと思いますが、これはフォローアップにつながります。スナップショットの時点で、理想的には他のアクティビティが継続している間でも、データベースの一貫したバックアップを作成するための適切な/推奨される方法はありますか?(つまり、APIを介してスナップショットキー範囲全体を反復することはできませんか?)

leveldbには、本当にやりたくないことを行う以外に、スナップショットを保存できるものはありません。新しいleveldbインスタンスを作成し、現在のスナップショットキー範囲全体を反復処理して、新しいものに書き込みます。 leveldbインスタンス。あなたの状況はあなたがそれをするのを妨げていますか?

于 2012-01-23T17:18:16.673 に答える