サーチ…


レプリカセットとしてのモンゴブ

mongodbを3つのインスタンスを持つレプリカセットとして作成します。 1つのインスタンスはプライマリであり、他の2つのインスタンスはセカンダリである。

わかりやすくするために、mongodbのインスタンスが3つあるレプリカセットを同じサーバー上で実行する予定です。これを実現するために、3つのmongodbインスタンスはすべて異なるポート番号で実行されます。

単一のサーバー上で稼働するmongodb専用のインスタンスを持つ実稼働環境では、同じポート番号を再利用できます。

  1. データディレクトリを作成する(mongodbデータがファイルに保存されるパス)
- mkdir c:\data\server1 (datafile path for instance 1)
- mkdir c:\data\server2 (datafile path for instance 2)
- mkdir c:\data\server3 (datafile path for instance 3)
  1. a。最初のmongodインスタンスを開始する
  • コマンドプロンプトを開き、次のようにEnterキーを押します。
mongod --replSet s0 --dbpath c:\data\server1 --port 37017  --smallfiles --oplogSize 100

上記のコマンドは、mongodbのインスタンスをレプリカセット名 "s0"に関連付け、mongodbの最初のインスタンスをoplogSize 100MBのポート37017で開始します

  1. b。同様にMongodbの2番目のインスタンスを開始する
mongod --replSet s0 --dbpath c:\data\server2 --port 37018  --smallfiles --oplogSize 100

上記のコマンドは、mongodbのインスタンスをレプリカセット名 "s0"に関連付け、mongodbの最初のインスタンスをoplogSize 100MBのポート37018で開始します

  1. c。 Mongodbの3番目のインスタンスを開始する
mongod --replSet s0 --dbpath c:\data\server3 --port 37019  --smallfiles --oplogSize 100

上記のコマンドは、mongodbのインスタンスをレプリカセット名 "s0"に関連付け、mongodbの最初のインスタンスをoplogSize 100MBのポート37019で開始します

3つのインスタンスがすべて開始されると、これら3つのインスタンスは現在互いに独立しています。これらのインスタンスをレプリカセットとしてグループ化する必要があります。これはconfigオブジェクトの助けを借りて行います。

3.a mongoシェルを介してmongodサーバーのいずれかに接続します。これを行うには、コマンドプロンプトを開いて入力します。

mongo --port 37017

mongoシェルに接続したら、configオブジェクトを作成します

   var config = {"_id":"s0", members[]};

この設定オブジェクトには2つの属性があります

    1. _id:レプリカセットの名前( "s0")
    2. メンバ:[](メンバはmongodインスタンスの配列です。これを空白にしておくと、pushコマンドでメンバを追加します。

3.b設定オブジェクトのメンバ配列にmongodインスタンスをプッシュ(追加)する。モンゴシェルタイプ

 config.members.push({"_id":0,"host":"localhost:37017"});
 config.members.push({"_id":1,"host":"localhost:37018"});
 config.members.push({"_id":2,"host":"localhost:37019"});

各mongodインスタンスに_idとホストを割り当てます。 _idには任意の一意の番号を指定できます。ホストには、実行されるサーバーのホスト名の後にポート番号を続けます。

  1. mongoシェルの次のコマンドでconfigオブジェクトを起動します。
rs.initiate(config)
  1. 数秒待ってから、サーバ上で実行されている3つのmongodインスタンスの複製セットがあります。次のコマンドを入力してレプリカセットの状態を確認し、どちらがプライマリで、どちらがセカンダリであるかを確認します。
rs.status();


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow