9

おそらくmongodumpを使用して、単一のmongodbデータベースを毎日バックアップしたいと考えています。データを失わないように、これをインクリメンタルにしたいので、その日の途中で何か問題が発生した場合、mongorestore を実行した後、障害が発生するまでその日の変更を再生できる必要があります。

これには oplog を使用する必要があることを正しく理解していますか? それともジャーナリングが答えですか?私は次のことを試しました:

  1. 私のmongoデータベースを1つのレプリカセットに変えて、oplogを作成します。(これはかなりハックな気がします)
  2. --oplog オプションを使用して mongod を再起動する
  3. oplog に記録する必要がある変更の実行

ただし、oplog には何も保存されません。このような増分バックアップを行う最善の方法は何ですか? 私は基本的に、mysql binlog を再生するための同様のアプローチを探しています。

ありがとう

4

2 に答える 2

7

MongoDB はそのままでは増分バックアップ オプションを提供しませんが、ファイル スナップショットを実行して oplog を再生することは可能です。ドキュメントに記載されている手順に従って、サーバーをレプリカ セットとしてセットアップしましたか? http://www.mongodb.org/display/DOCS/Replica+Sets+-+Basics

これらのバックアップの目的も教えてください。データの耐久性のために、レプリカ セットに 2 つ目のノードを追加することを検討しましたか?

サーバーをレプリカ セットのメンバーとしてセットアップする手順を実行した場合、シェルで rs.status() を実行できますか?

もう 1 つ注意 (明確にするため) - ジャーナリングはバックアップ戦略を意図したものではありません。ジャーナリングは、フェイルオーバーが発生した場合にデータベースが一貫した状態に戻ることを保証するだけです。ジャーナリングを有効にして実行することを強くお勧めします。

バックアップに関する MongoDB のドキュメントは次のとおりです: http://www.mongodb.org/display/DOCS/Backups

于 2012-08-16T17:01:56.837 に答える