MongoDB
レプリカセットとしてのモンゴー
サーチ…
レプリカセットとしてのモンゴブ
mongodbを3つのインスタンスを持つレプリカセットとして作成します。 1つのインスタンスはプライマリであり、他の2つのインスタンスはセカンダリである。
わかりやすくするために、mongodbのインスタンスが3つあるレプリカセットを同じサーバー上で実行する予定です。これを実現するために、3つのmongodbインスタンスはすべて異なるポート番号で実行されます。
単一のサーバー上で稼働するmongodb専用のインスタンスを持つ実稼働環境では、同じポート番号を再利用できます。
- データディレクトリを作成する(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)
- a。最初のmongodインスタンスを開始する
- コマンドプロンプトを開き、次のようにEnterキーを押します。
mongod --replSet s0 --dbpath c:\data\server1 --port 37017 --smallfiles --oplogSize 100
上記のコマンドは、mongodbのインスタンスをレプリカセット名 "s0"に関連付け、mongodbの最初のインスタンスをoplogSize 100MBのポート37017で開始します
- b。同様にMongodbの2番目のインスタンスを開始する
mongod --replSet s0 --dbpath c:\data\server2 --port 37018 --smallfiles --oplogSize 100
上記のコマンドは、mongodbのインスタンスをレプリカセット名 "s0"に関連付け、mongodbの最初のインスタンスをoplogSize 100MBのポート37018で開始します
- 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つの属性があります
- _id:レプリカセットの名前( "s0")
- メンバ:[](メンバは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には任意の一意の番号を指定できます。ホストには、実行されるサーバーのホスト名の後にポート番号を続けます。
- mongoシェルの次のコマンドでconfigオブジェクトを起動します。
rs.initiate(config)
- 数秒待ってから、サーバ上で実行されている3つのmongodインスタンスの複製セットがあります。次のコマンドを入力してレプリカセットの状態を確認し、どちらがプライマリで、どちらがセカンダリであるかを確認します。
rs.status();