MongoDBのデータベース複製セット--MongoDB

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 

注:各ノードは、この操作を行うべきです

 

公開された37元の記事 ウォンの賞賛6 ビュー10000 +

おすすめ

転載: blog.csdn.net/feili12138/article/details/104914165
おすすめ