MongoDB レプリケーション

MongoDB レプリケーション

レプリケーションとは

  • データベースサーバーを複数のマシンにわたって分散させて管理すること
  • MongoDBでは、2つのレプリケーションがある
    • マスター・スレーブレプリケーション
    • レプリカセット
    • プライマリーノードがすべての書き込みを行う
    • セカンダリノードが読み取りと書き込みの自身への非同期での適用を行う
  • マスター・スレーブレプリケーションとレプリカセットが行うレプリケーションのメカニズムは一緒
  • レプリカセットはさらに自動化されたフェイルオーバー?を保証
  • マスター・スレーブレプリケーション(マスターとスレーブがある状態のこと)を強いて使うよりも、高機能なレプリカセットによるレプリケーションを使うべき(容易なリカバリなどを始めとした機能があるため)

レプリケーションの重要性

  • 停電などの障害
  • 物理的にサーバーが故障する可能性でデータ損失をしないため

レプリケーションユースケース

  • レプリケーションによって実現されること
    • 冗長性
    • フェイルオーバー
    • メンテナンス性
    • ロード・バランシング
  • レプリケーションとは冗長性のための設計
  • レプリケーションされたノードをプライマリに対して一定の遅延させることもできる(間違えてコレクションを消してしまった時などに戻せる!)
  • 冗長化できてるからといって、レプリカセットはバックアップにはならない
  • フェイルオーバー
    • 自動切り替え -> 便利

レプリカセット