ダウンタイムなしでバックアップを実行するためのMongoDBのさまざまな設定について読んでいます。どの戦略が最良か、それとも比較することができますか?MongoDbホットバックアップ - data/db VSレプリカセットをfsyncLockでコピー
ジャーナリングを有効にして、単に
/data/db
ディレクトリをコピー - これは十分であるかどうかは私には不明である - MongoDBのホームページにそれはあなたが「それをスナップショット」する必要があり、それは例として、SANとLVM上で動作することを述べて。質問:
は、スナップショットは、このコンテキストでは何を意味するのでしょうスナップショットとしてコピーコマンド数? NTFSを使用してWindowsサーバにMongoDB(2.0+)のジャーナリングデータディレクトリをコピーするのは不要ですか?あなた自身のファイルシステムとセットアップで安全に実行することを、どのように保証しますか?
2台のサーバーとアービターでレプリカセットを確立します。次に、
rs.status()
とfsyncLock
/unlockを使用して、バックアップ中にセカンダリサーバーでのみデータが読み取れるようにします。> db.fsyncLock function() { return db.adminCommand({fsync:1, lock:true}); } > db.fsyncUnlock function() { return db.getSiblingDB("admin").$cmd.sys.unlock.findOne(); }
質問:
あなたはレプリカでロックを使用する場合は、書き込み、読み込みが全体のレプリカセットのためにロックすることができ、this bugが固定されていないようだし?
バックアップが進行中にセカンダリがプライマリとして投票されるとどうなりますか?バックアッププロセスが停止するか、レプリカセットがロック解除されるまで書き込み要求に応答しなくなりますか?
考慮事項:
今の私はシンプルなソリューションを好きで、単にジャーナルファイルを
data
/db
ディレクトリをコピーして、レプリカセットで待機していました。 MongoDBは、64ビットWindowsサーバー(RackSpace Cloud)上で動作します。