1. ホーム
  2. データベース
  3. モンゴルディーブ

MongoDBレプリカセットの構築プロセス

2022-01-21 01:06:11

    本日は、レプリカセットの構築のプロセスについてお話します。

    以下の例は、私自身がTencentのクラウドサーバーで構築したもので、全ての工程が書かれているので、それを書き出すと、ご覧のようになります。

     この操作は、マスター1台、スレーブ1台、アービトレーター1台の3ノードレプリカセットを構築するもので、以下のような流れになります。

1. ノードディレクトリの作成

mkdir -p /data/mongo_28018/{data,log}
mkdir -p /data/mongo_28019/{data,log}
mkdir -p /data/mongo_28020/{data,log}

2. 以下の内容で設定ファイルを作成します。

storage:
  dbPath: /data/mongo_28018/data
  journal:
    enabled: true

systemLog:
  destination: file
  path: /data/mongo_28018/log/mongodb.log
  logAppend: true

#security:
  #authorization: enabled ## Authentication is turned off in the test environment, but needs to be enabled in the full environment

processManagement:
  fork: true

net:
  port: 28018
  bindIp: 127.0.0.1

replication:
  replSetName: yeyz_repl0

ここで注意してほしいのは、設定ファイルのパスは通常対応するMongodbディレクトリの下にあり、設定ファイルのポートはそれぞれ異なるので、自分で調整する必要があることです。

今回構築したレプリカセットの名前はyeyz_repl0です

3. 3つのインスタンスを起動する

mongod -f /data/mongo_28018/mongodb.conf 
mongod -f /data/mongo_28019/mongodb.conf 
mongod -f /data/mongo_28020/mongodb.conf 

4. クラスタの初期化

    mongo --port=xxxxx を使ってインスタンスにログインし、レプリカセットを初期化します。

use admin
rs.initiate(
{_id:"yeyz_repl0",
"members":[
                {
                    "_id":1,
                    "host":"127.0.0.1:28018"
                },
                {
                    "_id":2,
                    "host":"127.0.0.1:28019"
                },
                {
                    "_id":3,
                    "host":"127.0.0.1:28020",
                    "arbiterOnly":true
                }
            ]
})

5. インスタンスにログインし、rs.conf を使用してインスタンスのステータスを表示します。

6. レプリカセット認証の追加

6.1 キーファイルの生成
openssl rand -base64 756 > keyFile
keyFileのパーミッションを400に変更します。
chmod 400 keyFile
6.2 各フォルダ /data/mongoxxxxx/ にコピーします。
6.3 設定ファイルを修正し、セキュリティ項目を追加します。
のセキュリティに対応しています。
  キーファイル:/data/mongo_28018/keyFile
6.4 再起動するだけ

7. いずれかのノードにログインして、デフォルトアカウントを追加するだけです

db.createUser({user:"mongod",pwd:"mongod",roles:[{role:"root",db:"admin"}]})

8. どれか1つにログインして結果を見る。

[root@VM-0-14-centos data]# repls_login 28019
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:28019/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("cfaeea74-6371-4128-83ff-bf94c01f5f78") }
MongoDB server version: 4.0.6
yeyz_repl0:PRIMARY> 
yeyz_repl0:PRIMARY> 

PRIMARYがマスターノードで、他のノードがスレーブであることを示す。

以上、MongoDBのレプリカセットを構築するプロセスの詳細を説明しました。MongoDBレプリカセットの構築については、スクリプトハウスの他の関連記事も参考にしてみてください!