6

実稼働環境で 3 メンバーの MongoDB レプリカ セットを実行しています。

内部分析を行うには、「ミラー」と呼ばれるそのレプリカセットのクローンを維持する必要があります。このミラーはリアルタイムである必要はありませんが、最新であるほど良いです (最大で 1 日遅れる可能性があります)。

このようなミラーリングされたデータベースを維持するための最も適切な方法は何ですか? (このミラーは、1 メンバーの replset またはスタンドアロン インスタンスのいずれかであることに注意してください)

参考までに、2 つのオプションを試しましたが、速度が許容できませんでした。

  1. Oplog の再生。しかし、これには非常に時間がかかりました (replset のプライマリから oplog を再生するのに約 40 時間)。
  2. 本番replsetのスナップショットを定期的に使用していますが、ウォームアップされていないため、新しいボリューム(スナップショットから作成された)は非常に遅かったです(AWS EBSを使用しているため、ウォームアップには約12時間かかりました)

Update #1: また、ミラーを replset メンバーにしようとしましたが、ミラーを replset から分離したかったため、このオプションは要件を満たしていません。

Update #2: このミラーを replset メンバーにしたくない理由: このミラーに対して大量のクエリを実行し、リソース クレジット (ディスク IO、ネットワーク IO、CPU) を使い果たし、インスタンスが一時的に使用できなくなりました。これにより、replset 構造全体が変更されました (ノードが 1 つ失われたため)。インスタンスが再び使用可能になると、replset 構造が再び変更されました (ノードが 1 つ追加されました)。これらの変更は replset に大きな影響を与えました。

ありがとうございました。

4

2 に答える 2