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レプリカセットの構築については、スクリプトハウスの他の関連記事も参考にしてみてください!
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン