MongoDBのレプリケーションセット
MongoDBのレプリケーションセットとは何ですか?
セットは、複数のサーバ間でのデータ同期からなる同じデータセットとセットのクラスタ複製MongoDBの例で、(ほとんどのコンセプトからMySQLのマスターコピーなど)
レプリケーションセットの利点: 1.高いデータセキュリティ、災害復旧
2.大規模なデータの可用性は、ダウンタイムメンテナンスなし(バックアップなど、インデックスの再構築、フェイルオーバー)
3.読むズーム(余分なコピーが読み)、セットのコピーは、アプリケーションプログラムに対して透過的です
(下図参照)、複製セットをワークス
複数のノードからなるMongoDBの複製セット(少なくとも二つのノード)、マスタ・ノードはクライアント要求を処理する責任であり、残りはノードからのものでは、プライマリノード上のデータをコピーするための責任があります
MongoDBは、一般的にマスタースレーブまたはからマスターマルチウェイのミックスで構成され、すべてのoplogレコードにマスターノード操作、ノードマスターノードは、その後、これらの操作を取得し、定期的にポーリングし、その後、データの独自のコピーでこれらの操作を実行し、メインことを確認するために、一貫性のあるデータノード
選挙の原則のセットをコピーします。
ノードの3つのタイプがあります。
標準ノード(ホスト):データの記憶、それがアクティブ(プライマリ)ノードとして選択することができる、投票権
パッシブノード(パッシブ):パッシブノードが完全なコピーを持って、アクティブノードになることができない、投票する権利
調停ノード(アービタ):選挙の責任は、データを格納しない、マスターとスレーブノードとして使用することはできません
選挙のルール:
1.のみ標準ノードが投票する権利、アクティブノード(パッシブ)として選出され、パッシブノードは完全なコピーを持っていますが、アクティブノードに選出することができない、投票権、調停ノードがデータをコピーしない、それがアクティブノードに選出することはできません投票への唯一の権利
2.標準とパッシブノードとの間の差:優先順位の高い値は、標準的なノードである、パッシブノードは低いです
高い票を獲得する最後の男の3選挙は、優先順位の優先順位はあまり、0から1000の間で余分なチケットのと同じです
ビルドのMongoDB複製セットの設定
1. 4つのインスタンスを作成します(下図のように)MongoDBは起動ダウンロードしてインストール
2.編集メインの設定ファイル
vimの/usr/local/mongodb/bin/mongodb1.conf
注:このパラメータのバックreplSet値をに使用されます
他のプロファイルは、ポート、DBPATH、ログパスパラメータを変更することができます
3.コピー初期設定とログセット
別名モンゴ= "は/ usr / local / MongoDBの/ binに/モンゴ" " モンゴ
> CFG = { "_ ID": "WMZ"、 "メンバー":[{ "_ ID":0、 "ホスト": "192.168.0.102:27017"},{"_id":1,"host":"192.168 .0.102:27018 "}、
{" _id ":2、"ホスト":" 192.168.0.102:27019" }]}
追加:あなたのような、時にノード構成を設定することができます
> CFG = { "_ ID": "WMZ"、 "メンバー":[{ "_ ID":0、 "ホスト": "192.168.0.102:27017","priority":100},{"_id":1、 "ホスト": "192.168.0.102:27018","priority":100}、
{" _id ":2、"ホスト":" 192.168.0.102:27019","priority":0},{"_id」: 2、 "ホスト": "192.168.0.102:27019","arbiterOnly":true}]}
>:レプリケーションセットリセット)(rs.reconfigを
州選挙の複製セットを見る:> rs.isMasterを()
4. [レプリカのステータス情報: > rs.Status()
PRIMARY状態:
SECONDARY 2つの状態
注:健康である健康の代表、0は、ダウンタイムを表し、状態があるマスタノードの代表として代表ノードから2
5.手動での追加ノード:> rs.add()
以下のように正常に追加:
[ノードの削除:> rs.remove()
以下のように正常に削除:
自動的に転送テストの失敗
実行mongodb1を停止
/ usr / local / MongoDBの/ binに/のmongod --config /usr/local/mongodb/bin/mongodb1.conf --shutdown
OK 27017ポートマスターノードが停止
MongoDBのデータベースビューの状態に27018件のポートログをログイン
モンゴ--port 27018
その後、マスターノードPRIMARY成功を収める192.168.0.102:27018が見つかりました
故障シミュレーションも、このコマンドを使用することができます
rs.freeze(30) //暂停30s不参与选举
rs.stepDown(60,30) //告诉主节点交出主节点位置,维持从节点状态不少于60秒,等待30秒使主节点和从节点日志同步
ノードのデフォルトからデータを読み取ることができません:> rs.slaveOK()
コピー管理の設定
手動で削除・ノード・サーバーを追加します
> rs.add()和> rs.remove()
レプリケーションのステータス情報を見ます
> rs.printReolicationInfo()
> rs.printSlaveReplicationInfo()
oplogログ
ログステータス情報を表示します> db.oplog.rs.stats()
oplogのサイズを変更します。> db.runCommand()
認定コピーセット
認証:
私たちは、レプリケーションセットを使用する際に認証の設定パラメータによって証明機関を開くが、この認証方法は、スタンドアロンのノードにのみ適しているために、どのようにオープンな認証局は、レプリケーションセットを確保する必要があります
シングルポイントの認証
vimの/usr/local/mongodb/bin/mongodb1.conf
AUTH =真
キーファイル認証
1.変更設定ファイル:vimの/usr/local/mongodb/bin/mongodb1.conf
clusterAuthMode =キーファイル
キーファイル=は/ usr / local / MongoDBの/ .keyFile
コンテンツkgcrskeyにファイルを作成します。2.
タッチ/usr/local/mongodb/.keyFile
3.設定キーファイルのアクセス権を与えるために、ファイル
ファイルの具体的な内容は、実際に彼の文字列ですが、ファイルをコピーするための要件を設定したキーファイル
内容:濃度で書かれたbase64でエンコードされた文字、すなわち、文字列を含めることができ、AZ、AZ、+、/
長さが1000のバイトを超えてはなりません
最大600社の許可、chmodのパーミッション少なくとも600キーファイル
opensslランド-base64 102> /usr/local/mongodb/.keyFile
chmodの600 /usr/local/mongodb/.keyFile
注:各ノードは、この操作を行うべきです