MySQLのスレーブノードマルチスレッドレプリケーション

遅延線のMySQLスタンバイ大きい、マスターノードがスレーブノードでも書き込み大リレーログを蓄積することができない、頻繁に書き込みます。

参考:https://www.cnblogs.com/conanwang/p/6006444.html

  1. なぜリレーログの数が多い
    最初のMySQL同期機構、同期で開始するすべての必要性- >準同期
    トランザクションをコミットすると同時に、データベースインスタンスのマスターノードの同時実行複数のスレッドは、トランザクションが時間のロジック(そのデータベースLSN)に従って提出します順次バイナリログログを書き込む、スレーブノードは、I / Oスレッドローカルリレーログログを書き込む順序が矛盾している場合、データの整合待機を確保するために、スレーブノードは、同じ順序で実行する必要があり、容易に一貫性のないスタンバイ・データ・リポジトリを引き起こしますリスク。しかし、スレーブノードは、トランザクションがメイン図書館に提出されたログ再生にSQLリレーログを実行するための唯一の単一のスレッドを持って、スタンバイ・データベースによる遅延があります

  2. 治療
    勧告は、物理的に解決し、直接物理的に処理することができます

。ディスクのSSDを使用します

B。ディスクグループRAID10

C。最適化のファイルシステムレベルの問題/カーネルレベルからIOを扱います

MySQLの治療
スレーブのマルチスレッド実行リレーログインできるようにする方法を考える
のMySQLに5.6リリースでは、スキーマ・レベルの同時実行をコピーするの核となるアイデアに基づいて、同時レプリケーション(スキーマ・レベル)を導入:「別のスキーマの下に提出され、表の同時データ、すなわち、お互いに影響を与えません。スレーブノードは、トランザクションログの再生がメインのライブラリとのデータの一貫性を保ち、メインのライブラリに提出された中継するために、異なるスキーマにログイン中継するために割り当てられたそれぞれとSQLのようなスレッドで機能することができます。」

事業別のデータベースライブラリ上のデータが、実際の生産は、多くの場合、ほとんどまたはデータ表は、このシナリオでは、同じスキーマ内に配置されているすべての事業であるとき、スキーマ・レベルに基づいてのMySQL 5.6はあっても、並行コピーテーブルを解決することができますslave_parallel_workers > 0の設定は、メインライブラリリレーログレコードで同時に実行することができないのデータを提出しました。スレーブは、スキーマの下で業務データテーブルと同時に実行することができないので、高い並行性の場合は、依然として一次および遅延の場合をもたらすであろう。

MySQLの> 0 slave_parallel_workersとglobal.slave_parallel_type =「LOGICAL_CLOCK」は、次のスキーマをサポートする5.7導入強化ムーティスレッドスレーブ、スレーブ構成は、同時にメインリレーログデータベーストランザクションの送信を実行するワーカースレッドをslave_parallel_workers。しかし、バイナリのMySQL 5.6は、バイナリログ・グループがコミット導入しているが、トランザクションを同時にマークされ、実行されることはありませんが、マスターマシンマークを提出するにはログイントランザクションで同時に実行することができる上記の機能を実現します。

MySQLの5.7 GA版は、アクティブとスタンバイ・データ・レプリケーションの遅延のリリース前に問題を解決するためのパラメータは次のとおりです機能を開いて、強化されたマルチスレッドスレーブ機能を導入しました:

# slave机器
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-type=DATABASE #兼容MySQL 5.6基于schema级别的并发复制
slave-parallel-workers=4 #开启多线程复制
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON

おすすめ

転載: www.cnblogs.com/mikeguan/p/11313857.html