MongoDBのレプリケーションの研究ノート9--

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()。

おすすめ

転載: www.cnblogs.com/zhuozige/p/12503393.html