MongoDB レプリケーション
MongoDB レプリケーション
レプリケーションとは
- データベースサーバーを複数のマシンにわたって分散させて管理すること
- MongoDBでは、2つのレプリケーションがある
- マスター・スレーブレプリケーション
- レプリカセット
- プライマリーノードがすべての書き込みを行う
- セカンダリノードが読み取りと書き込みの自身への非同期での適用を行う
- マスター・スレーブレプリケーションとレプリカセットが行うレプリケーションのメカニズムは一緒
- レプリカセットはさらに自動化されたフェイルオーバー?を保証
- マスター・スレーブレプリケーション(マスターとスレーブがある状態のこと)を強いて使うよりも、高機能なレプリカセットによるレプリケーションを使うべき(容易なリカバリなどを始めとした機能があるため)
レプリケーションの重要性
- 停電などの障害
- 物理的にサーバーが故障する可能性でデータ損失をしないため
レプリケーションのユースケース
- レプリケーションによって実現されること
- 冗長性
- フェイルオーバー
- メンテナンス性
- ロード・バランシング
- レプリケーションとは冗長性のための設計
- レプリケーションされたノードをプライマリに対して一定の遅延させることもできる(間違えてコレクションを消してしまった時などに戻せる!)
- 冗長化できてるからといって、レプリカセットはバックアップにはならない
- フェイルオーバー
- 自動切り替え -> 便利