MySQL 8.0 リファレンスマニュアル


17.1.4.4 匿名トランザクションのレプリケーションの検証

このセクションでは、レプリケーショントポロジを監視し、すべての匿名トランザクションがレプリケートされていることを確認する方法について説明します。 GTID トランザクションに安全に変更できることを確認できるため、これはレプリケーションモードをオンラインに変更するときに役立ちます。

トランザクションのレプリケートを待機するには、いくつかの方法があります:

トポロジに関係なく動作しますが、タイミングに依存する最も単純な方法は次のとおりです: レプリカが N 秒を超えないことが確実な場合は、N 秒を少し待機します。 または、1 日またはデプロイメントの安全性を考慮する期間を待機します。

タイミングに依存しないという意味で安全な方法: 1 つまたは複数のレプリカを持つソースしかない場合は、次の手順を実行します:

  1. ソースで、次のコマンドを実行します:

    SHOW MASTER STATUS;

    File および Position カラムの値をノートにとります。

  2. すべてのレプリカで、ソースのファイルおよび位置情報を使用して実行します:

    SELECT MASTER_POS_WAIT(file, position);

ソースと複数レベルのレプリカがある場合、またはレプリカのレプリカがある場合は、ソースから開始して各レベルでステップ 2 を繰り返し、次にすべてのダイレクトレプリカ、レプリカのすべてのレプリカなどを繰り返します。

複数のサーバーに書込みクライアントが存在する循環レプリケーショントポロジを使用する場合は、円全体が完成するまで、ソースレプリケーション接続ごとにステップ 2 を実行します。 完全な円2 回を実行するように、プロセス全体を繰り返します。

たとえば、サーバー A、B および C が 3 つあり、A -> B -> C -> A のように円でレプリケートしているとします。 その後、プロシージャは次のようになります:

  • A でステップ 1 を実行し、B でステップ 2 を実行します。

  • B でステップ 1 を実行し、C でステップ 2 を実行します。

  • C でステップ 1 を実行し、A でステップ 2 を実行します。

  • A でステップ 1 を実行し、B でステップ 2 を実行します。

  • B でステップ 1 を実行し、C でステップ 2 を実行します。

  • C でステップ 1 を実行し、A でステップ 2 を実行します。


関連キーワード:  ソース, 実行, ステップ, トランザクション, GTID, ベース, バイナリ, 構成, サーバー, ステートメント