構築し、管理するためのMongoDBのレプリケーションセット(レプリカセット)

1. 3つのノードデータ格納ディレクトリ作成
位ます。mkdir -p /データ/データ/ R0
#ます。mkdir -p /データ/データ/ R1
#ます。mkdir -p /データ/データ/ R2を

2.作成し、3つのノードは、格納ディレクトリログ
#ます。mkdir -p /データ/ログを/

3. 3つのノードの複製を作成して構成キーファイルを設定し
#ます。mkdir -p /データ/キー
#エコー「このIS RS1スーパーシークレットキー」> /データ/キー/ R0
#エコー「このIS RS1スーパーシークレットキー」> /データ/キー/ R1
#エコー> /データ/キー/ R2 "RS1は、このスーパーの秘密の鍵である"
#chmodの600 /データ/キー/ R&LT *

4.启动复制集的三个MongoDBの实例
#は/ usr / local / MongoDBの/ binに/のmongod --replSet RS1 --keyfile /データ/キー/ R0 --fork --port 28010 --dbpath /データ/データ/ R0 --logpath = /データ/ログ/ r0.log --logappend
#は/ usr / local / MongoDBの/ binに/のmongod --replSet RS1 --keyfile /データ/キー/ R1 --fork --port 28011 --dbpath /データ/データ/ R1 = --logpath /データ/ログ/ r1.log --logappend
#は/ usr / local / MongoDBの/ binに/のmongod --replSet RS1 --keyfile /データ/キー/ R2 --fork --port 28012 --dbpath /データ/データ/ R2 --logpath = /データ/ログ/ r2.log --logappend

レプリケーションの構成と初期化は設定環境
#CDは/ usr / local / MongoDBの/ binに
#./mongo --port 28010
> config_rs1 ID = {_ 'RS1'、メンバー:[{_ ID:0、ホスト:「ローカルホスト:28010 '}、{_ ID :. 1、ホスト:'ローカルホスト:28011 '}、{_ ID:2、ホスト:'ローカルホスト:28012「}]}
> rs.initiate(config_rs1)。

6.ビューのレプリカの状態
> rs.Status();
> rs.isMaster();

7.マスタースレーブ動作ログとステータス表示
#CDは/ usr / local / MongoDBの/ binに
#./mongo --port 28010
>ショーデータベースを;
>ローカルでの使用;
>ショーコレクション;
> db.oplog.rs.find()
> db.printReplicationInfo()
> db.printSlaveReplicationInfo()

8.マスターから設定情報を確認してください
。#CDは/ usr / local / MongoDBの/ binに
#./mongo --port 28010
>ショーのデータベース;
>ローカルでの使用;
>ショーコレクション;
> db.system.replset.find()

9.レプリカ管理
スイッチングマスターから)1
-現在のマスター・インスタンス外の他の例(28010)と目標プライマリ例(28012)(28011)は「凍結」状態、氷30秒に設定されている
。#CDの/ usr /ローカル/ MongoDBの/ binに
#28011 ./mongo --port
> rs.freeze(30)

-現在のプライマリインスタンス(28010) "ダウングレード"は、ここで30秒をダウングレード
#CDは/ usr / local / MongoDBの/ binに
#./mongo --port 28010
> rs.stepDown(30)

-チェックステータスレプリケーションセット
#のCDは/ usr / local / MongoDBの/ binに
#./mongo --port 28010
> rs.Status()

2)別個のリードおよびライト
- Xianxiangメインライブラリー挿入データ
#CDは/ usr / local /のMongoDB /ビン
#./mongo --port 28010
> db.c1.insert({年齢:30})
> db.c1。 ()を見つけます

-ログライブラリからチェックするには
#CDは/ usr / local / MongoDBの/ binに
#./mongo --port 28011
>コレクションを表示
-データベースクエリのエラーから、この時間

-設定で読み取り可能なライブラリーから
#CDは/ usr / local / MongoDBの/ binに
#28011 ./mongo --port
> db.getMongo()setSlaveOk()。

>ショーコレクション
> db.c1.find()

3)フェールオーバ
--killメイン28010例オフ
#PS -ef | grepのモン
#-2 PIDまたは殺す殺すか殺す-9 -15 PID PID
--kill -9 MongoDBは、崩壊を起こさない使用しようとするかもしれません

-ログインノードの状態から複製セットをチェックする
#CDは/ usr / local / MongoDBの/ binに
#./mongo --port 28011
> rs.Status();

4)ノードを追加または削除
- oplogによってノードが増加し
#ます。mkdir -p /データ/データ/ R3
#エコー> /データ/キー/ R3 "RS1は、このスーパーの秘密の鍵である"
chmodの600 /データ/キー/ R3#
USR#/ /ローカル/ MongoDBの/ binに/のmongod --replSet RS1 --keyfile /データ/キー/ R3 --fork --port 28013 --dbpath /データ/データ/ R3 --logpath = /データ/ログ/ r3.log - logappend
## CDは/ usr / local / MongoDBの/ binに
#./mongo --port 28010
> rs.add( "ローカルホスト:28013")
-連続ビュー複製セット状態
> rs.status()

データ同期(初期同期の必要性メンバーは、私たちの最初の同期を行うことが一級または二級であることを)> - - (まだ初期化中)初期状態から--errmsg>初期同期の完了は(最初の同期が行われる) - >ノードの追加は、(完了しましたERRMSGが消え、stateStrは、第二になります)

- データベースのスナップショットと追加ノードoplog

-初期化データファイルとして物理的なレプリカセットのメンバーを取る
#1 -R&LT SCP /データ/データ/ R3 /データ/データ/ R4
#エコー> /データ/キー/ R4「RS1、このスーパーの秘密の鍵である」
#chmodの600 /データ/キー/ R4

-レコード挿入スナップショット取得が完了した後、メインリポジトリC1、検証するための後続の同期動作
#CDは/ usr / local /のMongoDB /ビン
#./mongo --port 28010
> db.c1.find()
> DBを.c1.insert({年齢:20})
> db.c1.find()

-启用28014新实例
#は/ usr / local / MongoDBの/ binに/のmongod --replSet RS1 --keyfile /データ/キー/ R4 --fork --port 28014 --dbpath /データ/データ/ R4 --logpath = /data/log/r4.log --logappend

-ログのプライマリ・データベース・インスタンスは、インスタンスを追加28014
#CDは/ usr / local / MongoDBの/ binに
#./mongo --port 28010
> rs.add( "ローカルホスト:28014")

-ログ28 014例検証同期
#CDは/ usr / local / MongoDBの/ binに
#./mongo --port 28014
> rs.slaveOk()
> db.c1.find()

ノードの5)削減
-メインライブラリノードでログ
は/ usr / local / MongoDBの/ binに#のCD
#./mongo --port 28010
> rs.Status()
> rs.remove( "ローカルホスト:28014")
> rs.remove( "ローカルホスト:28013")
> rs.Status()

おすすめ

転載: www.cnblogs.com/lhdz_bj/p/12124772.html