MySQLのマスター(半同期レプリケーション非同期レプリケーション)からコピーします

1.MySQlマスタースレーブのレプリケーション

  • 原理は:マスターデータから一貫性のある状態を達成するために、再び実行するために、サーバからマスタサーバのbinlogのログをコピーします。

  • プロセス:、ライブラリからBINLOGメインライブラリーをログに記録する要求をI / Oスレッドを開きます。マスターノードのbinlogダンプスレッドのターンは、彼らのバイナリログをチェックし、スレーブノードを送信し、リレーログにライブラリーから受信したデータを保存するリレーでは、追加のSQLスレッドを開いて、操作を(リレーをログ)マシン自体で再度実行します

  • 長所
    • バックアップデータベースとして、トラフィックに影響を与えません。
    • 読んで、分離、一般的に書くためのライブラリを作成してください、異なるサーバーに分散さ1つの以上のライブラリを、読み、およびデータベース・サーバのパフォーマンスを十分に発揮するが、データの整合性を確保するために

ログフォーマットのマスターコピー2.

ステートメントおよび行(MIX)の複製に基づく声明ベースのレプリケーション、行の行ベースのレプリケーション、:ここでフォーマットは3つの形式でバイナリログを意味するログ。設定の際に考慮すべき、より良いデータリポジトリの一貫性を確保するための主からの行ベースのレプリケーション方法が、ログに大量の、ディスクスペースの問題

show variables like ‘%binlog%format%’;    #查看当前使用的binlog的格式
set binlog_format = ‘row’;                #设置格式,这种方法只在当前session生效
set global binlog_format = ‘row’;       #在全局下设置binlog格式,会影响所有的Session

3.コピーアーキテクチャ

3.1、マスターマルチスレーブ・アーキテクチャ

要求されたメインタンク圧力が非常に大きい場合、構成は、ロードバランシングからデータを読み出すことによって、要求を複数のデータベースまでの非常に高い要求ではないリアルタイムの大量の読み書き別マルチコピーマスタ - スレーブ・アーキテクチャによって達成低減することができますメインライブラリーの圧力を読み込みます。そして、メインライブラリーのダウンタイムは、サービスを提供し続けるために銀行からスイッチベースの銀行することができたときに

3.2、マルチレベルのレプリケーションのアーキテクチャ

メインライブラリでライブラリーからの各そうライブラリの数の増加、IO圧とメインライブラリネットワークの圧力も、この時間を増加させる、多段で、バイナリログログをダンプバイナリログをプッシュする別のスレッドを有するのでコピーアーキテクチャはされて入ってきました。

唯一の複数のレプリケーションマスタに基づいて多段アーキテクチャ、及びメインライブラリのそれぞれと、2つの主要ライブラリ間からライブラリMASTER2を加算し、二つの主要なライブラリは本体のみライブラリに使用され、そのバイナリログにプッシュログには、プッシュメインライブラリーの圧力を緩和するために、ライブラリから個別にプッシュ。

しかし、その欠点は、遅延の複製を増やす、ライブラリから到達するために二回コピーするBINLOGログです。

我々は、二次、低いレイテンシマルチレベルのレプリケーションでライブラリからBlackholストレージエンジン(ブラックホールエンジン)を適用することによって、この問題を解決することができます。

「ブラックホールエンジンは、」データテーブルに書かれているブラックホールはディスクに書き込まれていないので、テーブルは常にでのみBINLOGでレコードを削除/データ/更新を挿入するために、空のブラックホールのリストである、およびライブラリから行くためにそれをコピーします。 。

3.3、デュアルマスター・レプリケーション/デュアルマスターアーキテクチャ

スイッチングマスターからシーンのすべてのために意図ダブルレプリケーション・スキーム

アーキテクチャでは、サービスを提供し続けるために銀行からのスイッチベースの銀行になる主なライブラリがダウンしている唯一の主要図書館、そこにあります。元のメインライブラリそこにはデータソースがありませんし、新しいメインライブラリが新しいデータを受け取ったときに、元のマスターデータベースが同期されませんでしたので、そのデータはますます大きい、元は、メインのライブラリになることができませんレプリケーション環境からメイン1。場合は正常に戻って、元のプライマリ・データベースは、レプリケーション環境に追加する必要があります。

主なライブラリを追加問題の繰り返しを避けるために、2つのマスターコピーはされて入ってきました。主に互いに二つのデータベース、回復ダウンメインライブラリー、それはまだ新しいメインライブラリにデータをコピーしますので、それは、マシンからライブラリ(現在はメインライブラリー)からのオリジナルですので。かかわらず、メインライブラリースイッチの役割は、元のプライマリ・データベースがレプリケーション環境の外にはならないだろうかの。

4.レプリケーション

2つの複製、非同期レプリケーションからMySQLのマスターコピーと半同期されています

4.1非同期レプリケーション

1、ロジック、

これは、デフォルトのMySQLのレプリケーションは非同期である、クライアントから提出されたトランザクションの実行が完了した後の主なライブラリはすぐにクライアントに結果を返します、そしてそれは、ライブラリからの治療を受けているかどうかを気にしないので、メインの場合は、問題があるでしょうこの時点で、メイン力を強化するかどうかをクラッシュし、提出された主な取引上のこの時間は、新しいプライマリ上の不完全なデータにつながる可能性があり、ライブラリーから転送することはできません。

2、技術的に

BINLOGは本体のみのライブラリダンプスレッドがこれらの新しいBINLOGについての通知を送信し、プライマリ・データベースは、コミット操作の処理を続行しますが、今回はこれらのBINLOGという保証を広めないであろう、その場合には、バイナリログファイルにイベントを書き込むメイン図書館業務ライブラリーからのノード。

4.2完全同期レプリケーション

1、ロジック、

それは、トランザクションを実行するクライアントにメインライブラリーを戻したとき、ライブラリのすべてのトランザクションを実行していることを意味します。すべてのために全体の同期レプリケーションのパフォーマンスが深刻な影響を受けるためにバインドされているので、返すために、ライブラリから実行トランザクションの完了を待つ必要が。

2、技術的に

プライマリ・データベースのトランザクションがコミットされると、すべてのノードが適用され、フォローアップ操作を行うには継続して取引、メインスレッドライブラリを提出し、ライブラリーから受信しなければなりません。しかし、欠点は、トランザクション時間を完了するための主要なライブラリは、性能低下を伸ばしされるということです。

4.3半同期レプリケーション

1、ロジック、

ライブラリーからのライブラリからマスターノードへのすべてのプライマリ・データベースリポジトリのフィードバックを待たずに、できる完全な非同期レプリケーションのコピー、唯一のプライマリ・データベースと完全に同期の間に介在し、少なくとも一つのログファイルをリレーするフラッシュBINLOGを受け取る待っています。一方、ここでのフィードバックが完全に完了し、提出されたフィードバックを、そう、多くの時間を節約されていない、受信されました。

2、技術的に

あなたは、クライアントから提出されたトランザクションを実行した後、マスター・データベース、非同期レプリケーションと完全に同期レプリケーションの間ですぐにクライアントに返されますが、少なくとも一つのリレーログにライブラリーから受信し、クライアントにそれを書く待つことはありません。非同期レプリケーションに関しては、遅延は、少なくともTCP / IP往復時間で、半同期レプリケーションは、データのセキュリティを向上させるが、それはまた、いくつかの遅延を引き起こしました。したがって、半同期は、好ましくは、低遅延のネットワークで使用されています。

おすすめ

転載: www.cnblogs.com/bigox/p/11530540.html