1)基本的な考え方
レプリケーションは、スケーラビリティ、持続可能性/信頼性と分離を実現するために使用することができます。
バックアップや他の保守活動のための柔軟性を提供しながら、通常、ハードウェア障害またはデータベースの破損を防止するために使用される複製は、システム上でほとんどまたは全く効果が得られ、大きな影響を与えます。
レプリケーションが含まれます:マスタ/スレーブ複製、マスター/マスター・レプリケーション、レプリケーションペアを。
2)サーバー
サーバーの種類:
マスター:特定の時間内にコピー元のデータセット。唯一の焦点は、ノードが書き込むことができますコピーすることで、他のすべてのノードは、そのデータから、ここでのコピーを持っています。
セカンダリサーバー:マスターサーバーは、非会員のデータを持っていることが理論的にプライマリサーバーになる可能性があります。できるだけ近くにリアルタイムでプライマリサーバからそのデータをコピーしながらノードが、読まれます。
仲裁サーバ:イニシアチブの焦点のメンバーのコピー数が偶数の場合、調停はデータが含まれていないサーバ・ノードである、それは追加のアクティブなメンバーを提供するために使用されます。それは決定票を投じるか、直接マスターサーバであるノード決定が、プライマリサーバのノードになることを決めた主のメンバーとして参加することはありません。仲裁サーバは、「スプリットブレイン」の問題を回避するために使用することができます。
3)での綿密な研究のoplog
oplog(操作ログ)は、固定サイズのコレクションである、二次サーバー上の目的の再実行操作が整合した状態でデータベースことを確実にするために、データベースレコードを変更するプライマリサーバインスタンスを保持しています。
oplogは、一般的に一定の大きさを持っています。
oplog現在のインスタンスが作成されていない場合は、使用--oplogSize起動オプションは、oplogのサイズを設定することができます。LinuxとWindows64ビットシステム、oplogSizeのデフォルト設定が使用可能なディスク容量の5%、1ギガバイトの最小値、50ギガバイトまでです。
適切な大きさの重要なoplogを計算する場合、プライマリサーバー上のすべてのデータベースの更新頻度を考慮。db.printReplicationInfo()コマンドを実行することにより、いくつかの基準サイズのoplogエリアを取得します。
4)複製セットを実装
プライマリサーバによってコピーセット、またはセカンダリサーバ仲裁複数のサーバ。
セットはまた、メンバーのパッシブとアクティブなメンバーを提供してコピーします。現在のプライマリサーバーが使用できない場合は、パッシブサーバーが新しいプライマリサーバの選挙に参加していません。その代わり、彼らはメンバーのプライマリサーバの資格反対票を投じることができます。
4-1)、複製セットを作成します
振幅セットがホスト名の場合に通常使用。あなたはhostnameコマンドによって現在のホスト名を見つけることができます。
4-2)レプリカセットのメンバーを開始します
$ MKDIR -p / DP / active1 /データ(アクティブ)
$のmongod --dbpath / DB / active1 /データ--port 27021 -replSet TESTSET
$ MKDIR -p / DP / passive1 /データ(パッシブ)
$のmongod --dbpath / DB / active1 /データ--port 27022 -replSet TESTSET
初期化レプリケーションセット:
rs.initiate()
4-3)、複製セットにサーバーを追加します
rs.add( "[ホスト名]:27021")
使用rs.status()あなたは進行状況を監視することができます。
コンフィギュレーションファイルをコピーして変更する必要がある場合は、それを使用することができます。
CONF = rs.conf()
あなたは隠されたノードとして設定すると、優先度が0であれば、それはベースのサーバーに選出されることはありませんので(例えば、第三の要素で)次のように、コマンドが動作します。
conf.members [2] .hidden =真
conf.members [2] = 0 .priority
conf.members [2] = 0 .votes
引数として新しい設定ファイルは、あなたがrs.reconfig()コマンド、rs.reconfig(CONF)を行うことができます。
4-4)仲裁サーバを追加します。
$ MKDIR -p / DP / arbiter1 /データ(パッシブ)
$のmongod --dbpath / DB / arbiter1 /データ--port 27023 -replSet TESTSET -rest
新しい定足数サーバーを追加するrs.addArb()コマンドを使用します。
rs.addArb( "[ホスト名]:27023")
4-5)、複製セットチェーン
MongoDBの中にコピーセットチェーンは、デフォルトの動作です
conf.chainingAllowed =偽
4-6)、複製セットを管理
使用rs.Status()状態の検出例
使用rs.stepDown()新しい選挙を強制します。60秒を終了するには、ホストサーバを強制するには、このコマンドを使用します。コマンドは、新しいマスターの選出を強制します。rs.stepDown()コマンドも最初は長い再びサーバーを支配したときに禁止選挙を現在のマスターサーバーstepDownSecondsを決定するために使用され、2つのオプションのパラメータがあります。第二は、新しいプライマリサーバがコピーする前に、長い秒間待つべき選挙の前にcatchUpPerid表現です。
メンバーベースのサーバかどうかを決定するために使用db.isMaster()。