ホームページ >データベース >mysql チュートリアル >Mysql の GTID ベースのレプリケーション モードを理解する

Mysql の GTID ベースのレプリケーション モードを理解する

coldplay.xixi
coldplay.xixi転載
2020-12-28 10:12:212387ブラウズ

#mysql チュートリアルこのコラムでは、Mysql の GTID ベースのレプリケーション モードとは何かを紹介します。

Mysql の GTID ベースのレプリケーション モードを理解する

#推奨 (無料): mysql チュートリアル

##GTID 定義GTID (グローバル トランザクション識別子) グローバル トランザクション識別子。 GTID は、バージョン 5.6 で導入されたマスター/スレーブ レプリケーションの大幅な改良です。ビンログ ファイルの位置に基づく以前のバージョンのマスター/スレーブ レプリケーションと比較して、GTID ベースのマスター/スレーブ レプリケーションは、より高いデータ一貫性とより堅牢なマスター/スレーブ データ レプリケーションを備えています。スイッチオーバーとフェイルオーバーはエラーが発生しにくく、人間の介入がほとんど必要ありません。

表現方法GTID = server_uuid:transaction_id

GTID は通常、MySQL システム変数に記録されます

@@GLOBAL .gtid_executed
とシステム テーブル mysql.gtid_executed では、システム変数 @@GLOBAL.gtid_executed はメモリ内にあり、非永続ストレージに属しますが、システム テーブル mysql. gtid_executed は永続ストレージに属します。

従来のレプリケーションに対する GTID の利点

マスター/スレーブ レプリケーションの構築が容易
  1. 実装が容易フェイルオーバー (マスター/スレーブ切り替え) の場合、以前のように
  2. log_file
  3. log_posGTID を段階的に見つける必要はありません。GTID は連続しており、ホールが発生し、データの一貫性が保証されます。
  4. #レプリケーション クラスターには、レプリケーションの場所を識別するための統一された方法があり、クラスター管理が便利になります。
GTID 制限

Innodb や myisam などのエンジンを 1 つのトランザクションに混在させると、複数の GTIDS が発生します

    CREATE TABLE…..SELECT
  1. は使用できません
  2. CREATE TEMPORARY TABLE および DROP TEMPORARY TABLE はトランザクション内では使用できません
  3. ##マスター/スレーブ レプリケーション フローチャート

GTID ライフ サイクル

トランザクションがメイン データベースで実行およびコミットされるとき、その後、このトランザクションにはメイン ライブラリの uuid に関連付けられた gtid が割り当てられ、この gtid はメイン ライブラリの binlog ファイルに書き込まれます。 binlog ファイルが最大サイズに達してローテーションされるか、MySQL Server がシャットダウンされると、前の binlog ファイル内のトランザクション GTID が mysql.gtid_executed テーブルに書き込まれます。

    トランザクションが送信されると、トランザクションの gtid はすぐにシステム変数
  1. @@GLOBAL.gtid_executed
  2. に追加されますが、システム テーブル mysql.gtid_executed には追加されません。 binlog では、mysql に書き込む前に、binlog のローテーションまたは mysqlServer がシャットダウンされるまで待つ必要があります。
  3. gtid_executed表内。
  4. メイン ライブラリのビンログは、マスター/スレーブ レプリケーション プロトコルを通じてスレーブ ライブラリに転送され、スレーブのリレー ログ (リレー ログ) に書き込まれます。リレー ログ内の gtid と対応するトランザクション情報については、
  5. gtid_next を gtid 値に設定します。これにより、スレーブ ライブラリは gtid 値を使用して対応するトランザクション を適用します。 複数のスレッドが同時に同じトランザクションを適用する場合 (複数のスレッドが gtid_next を同じ値に設定する場合など)、MySQL Server はスレッドの 1 つだけの実行を許可します。 GTID.
  6. 従来の代替 GTID レプリケーション モード
  7. GTID の構成

すべてのサーバー設定global.read_onlyパラメータ、マスター サーバーとスレーブ サーバーを待機しています 同期が完了しました;

mysql> SET @@global.read_only = ON;
マスター サーバーとスレーブ サーバーを順番に再起動します;
    変更マスターを使用してマスターとスレーブを更新します構成;
    mysql> CHANGE MASTER TO
    MASTER_HOST = host,
    MASTER_PORT = port,
    MASTER_USER = user,
    MASTER_PASSWORD = password,
    MASTER_AUTO_POSITION = 1;
    5. レプリケーションを有効にする
    mysql> START SLAVE;
    6、マスター/スレーブのレプリケーションを確認する
    mysql> show slave status \G

以上がMysql の GTID ベースのレプリケーション モードを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。