Latest web development tutorials

MongoDBのコピー(レプリカセット)

MongoDBのレプリケーションは、複数のサーバー間でデータの同期のプロセスです。

コピーは、データの可用性を向上させるために複数のサーバー上でデータの冗長バックアップデータとストアのコピーを提供し、データのセキュリティを保証することができます。

コピーはまた、ハードウェア障害やサービスの中断からデータを回復することができます。


コピーとは何ですか?

  • データセキュリティセーフガード
  • データの高可用性(24 * 7)
  • 災害復旧
  • ダウンタイムのメンテナンスません(バックアップなど、インデックスを再構築し、圧縮)
  • 分散データが読み出されます

MongoDBのレプリケーションの動作

MongoDBのレプリケーションは、少なくとも2つのノードが必要です。 プライマリノードの一つは、クライアント要求を処理する責任があり、残りはプライマリノードでデータを複製する責任ノードからのものです。

道と共通のMongoDBの各ノード:マスタ・スレーブ、マスターマルチスレーブ。

マスターノードから取得したすべての操作はoplogれているマスタレコードは、定期的にマスターノードとの整合性を確保するために、データから独自のデータのコピーに対してこれらの操作を実行した後、これらの操作をポーリングします。

MongoDBは以下に示された構造をレプリケート:

MongoDBのレプリケーションチャート

合計の上記構成は、全クライアントのマスターノードがデータを読み出すが、クライアントデータは、プライマリ・ノードに書き込まれたノードからのデータの整合性を保証するために、マスターノードとのデータ交換です。

レプリカセットの特徴:

  • N個のクラスタノード
  • 任意のノードがマスタノードとして使用することができ
  • プライマリノード上のすべての書き込み操作
  • 自動フェイルオーバー
  • 自動復旧

MongoDBのレプリカセットの設定

このチュートリアルでは、以下の手順を実行して実験を行うのと同じマスタースレーブのMongoDBはMongoDBを使用します。

1.閉じるのMongoDBサーバが実行されています。

今度は、MongoDBの--replSetオプションを指定することで起動してみましょう。 次のように--replSet基本的な構文は次のとおりです。

mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"

mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0

上記の例はRS0と呼ばれるMongoDBのインスタンスを起動し、ポート番号は27017です。

ボックスと接続MongoDBのサービスを開始した後、コマンドプロンプトを開きます。

Mongoのクライアントでは、新しいレプリカセットを起動するために)(コマンドrs.initiateを使用しています。

我々は、レプリカセットの構成を表示するにはrs.conf()を使用することができます

rs.status()コマンドを使用してレプリカセットの状態を確認してください


レプリカセットは、メンバーを追加します

レプリカセットのメンバーを追加し、我々はMongoのサービスを開始するために複数のサーバーを使用する必要があります。 Mongoのクライアントを入力して、レプリカセットのメンバーを追加する()メソッドをrs.add使用します。

文法

次のようにrs.add()コマンドの基本構文は次のとおりです。
>rs.add(HOST_NAME:PORT)

あなたはmongod1.netと呼ばれるグループ、モンゴサービスのポート番号27017を開始したとします。 次のようにレプリカセットに追加しrs.add()コマンドを使用して、クライアント・コマンド・ウィンドウでは、コマンドは次のとおりです。

>rs.add("mongod1.net:27017")
>

あなたが唯一のノードをマスターできるのMongoDBが、サービスが現在のコマンドdb.isMasterを使用することができますMongoのプライマリノードが実行されているか否かが判断され、レプリカセットにMongoのサービスを追加します()。

ホストがダウンしているすべてのサービスが停止され、上下セットのホストレプリカた後、コピーがプライマリノードを引き継ぐマスターノードになり、ダウンタイムが表示されません後、私たちの共通マスタとスレーブで設定MongoDBのレプリカは、マスターと異なっています状況。