MySQLレプリケーションの監視

データベース管理では、HeatWaveおよび外部MySQL DBシステムのMySQLレプリケーション・アクティビティおよびメトリックを監視できます。

MySQLには、MySQLサーバーから1つ以上のMySQLサーバーにデータをレプリケーションできる組込み機能があり、シームレスなフェイルオーバー、分散読取り操作および効率的なデータ冗長性を実現します。MySQLレプリケーションは、様々なレプリケーション・タイプを通じて柔軟性を提供します。それぞれに、特定のユース・ケースに合せた個別の特性と利点があります。次に、いくつかの重要なMySQLレプリケーション・タイプを示します。

  • 非同期レプリケーション: 従来のMySQLレプリケーションでは、ソースと呼ばれる1つのMySQLサーバーからのデータをレプリカと呼ばれる1つ以上のMySQLサーバーにコピーできます。レプリケーションはデフォルトで非同期であるため、レプリカはソースから更新を受け取るために永続的に接続されている必要はありません。非同期レプリケーションは、次の方法でデータ転送のパスウェイを確立するように構成できます。
    • インバウンド・レプリケーション: このMySQLサーバーで構成されたレプリケーション・チャネルを使用して、外部ソースからトランザクションを受信および適用します。
    • アウトバウンド・レプリケーション: レプリケーション・チャネルを使用して、このMySQLサーバーから別の場所にトランザクションを送信します。チャネルは常にレプリカ上で構成されます。レプリカがHeatWave DBシステムの場合、チャネルはHeatWaveサービスで構成されます。
  • グループ・レプリケーション: 一連のMySQLサーバーをまとまりのあるグループとして機能させる高可用性ソリューションで、データの一貫性とフォルト・トレランスを確保します。各MySQLサーバーは、データの完全なコピーを保持し、メッセージ・パスを介して他のグループ・メンバーと通信します。通信レイヤーは、アトミック・メッセージや合計オーダー・メッセージ配信などの一連の保証を提供します。

詳細は、次を参照してください:

データベース管理では、DBシステムのレプリケーションを監視できます。これは、データの一貫性、パフォーマンスおよび高可用性を確保するために非常に重要です。MySQLレプリケーションを監視すると、複雑なデータベース環境を効果的に管理するために必要な可視性と制御が提供されます。これにより、問題にプロアクティブに対処し、パフォーマンスを最適化し、レプリケーション設定がデータ管理要件を満たしていることを確認できます。

「レプリケーション」セクションに移動するには、MySQLデータベースの詳細ページに移動し、左側のペインの「リソース」の下にある「レプリケーション」をクリックします。

ノート

  • HeatWave DBシステムの場合、「リソース」の下の「レプリケーション」オプションは、データベース管理を有効にするときに「完全モニタリング」オプションが選択されている場合にのみ表示されます。詳細は、HeatWaveのデータベース管理の有効化を参照してください。
  • 外部MySQL DBシステムの場合、モニタリング・ユーザーにREPLICATION CLIENT権限またはREPLICATION SLAVE権限がない場合、情報は「レプリケーション」セクションに表示されず、エラーが表示されます。
  • HeatWave DBシステムでは、次の「サマリー」「高可用性」および「バイナリ・ログ」タブ情報にリストされているすべての構成パラメータおよびレプリケーションの詳細が表示されません。

「レプリケーション」セクションでは、次のタブでレプリケーション構成情報およびメトリックをモニターできます:

  • 「サマリー」タブ: MySQLサーバーの様々なレプリケーション構成パラメータおよびメトリックが表示されます。
    • 構成: この項では、次のレプリケーション構成パラメータが表示されます。
      • インスタンス: レプリケーション設定のMySQLサーバー。
      • インバウンド: MySQLサーバーが別のサーバーからデータを受信するレプリケーション・チャネルの数。これは、MySQLサーバーが別のサーバーからデータを受信するように構成されていて、レプリカであるかどうかを示します。
      • インスタンス・タイプ: ソース、レプリカ、プライマリ・グループ・メンバーなど、レプリケーション・プロセスにおけるMySQLサーバーのロール。
      • サーバーID: レプリケーション・プロセスで異なるサーバーを区別するために重要な、各MySQLサーバーに割り当てられた一意の識別子。
      • サーバーUUID: MySQLサーバーの汎用一意識別子(UUID)。レプリケーション用の別の識別レイヤーを提供し、サーバーの一意性を保証します。
      • アウトバウンド: MySQLサーバーがデータを送信するレプリケーション・チャネルの数。これは、MySQLサーバーが他のサーバーにデータを送信するように構成され、ソースであるかどうかを示します。
      • 読取り専用: サーバーが読取り専用モードであるかどうかを示します。これにより、データ変更操作が制限されます。
        • ON: MySQLサーバーはread_onlyとして構成されます。
        • SUPER: MySQLサーバーはsuper_read_onlyとして構成されます。
        • OFF: MySQLサーバーは、read_onlyでもsuper_read_onlyでもありません。
      • バイナリ・ロギング: バイナリ・ロギングが有効かどうかを示します。これは、データ変更SQL文を記録する機能であり、レプリカに送信される変更の記録を提供するため、レプリケーションに不可欠です。
      • ログ形式: バイナリ・ログの形式(STATEMENTROWなど)。これにより、変更がログに記録およびレプリケートされる方法が決まります。
      • グローバル・トランザクションIDモード: GTIDベースのレプリケーションが有効かどうかを示します。グローバル・トランザクションID (GTID)は、トランザクションごとに一意の識別子を提供し、より信頼性が高く一貫性のあるレプリケーションを可能にします。
    • ステータス: このセクションでは、次のレプリケーションの詳細が表示されます:
      • アクティブな接続: MySQLサーバーへの現在アクティブな接続の数。
      • 文数: MySQLサーバーで実行されたSQL文の合計数。
      • フェッチ状態: フェッチ操作の現在のステータス。レプリカがソースからデータを正常に取得したかどうかを示します。
      • 適用状態: 適用操作の現在のステータス。変更がレプリカに正常に適用されたかどうかを示します。
      • 高可用性メンバーの状態: レプリケーション・グループ内のMySQLサーバーの現在のステータス。各種ステータスについては、Group Replication Server Statesを参照してください。
      • 平均文レイテンシ: SQL文の実行にかかった平均時間。
      • 実行されたグローバル・トランザクション識別子: MySQLサーバーで実行されたすべてのトランザクションのGTID、または明示的にパージ済として設定されます。
      • 時間遅れ: このレプリカがソース・バイナリ・ログからトランザクションを処理する際にソースより遅れる秒数。
    • 統計: この項では、次のレプリケーション・メトリック・チャートが表示されます:
      • アクティブな接続: MySQLサーバーへの現在アクティブな接続の数が表示されます。
      • 文数: MySQLサーバーで実行されたSQL文の合計数が表示されます。
      • 平均文レイテンシ(秒): SQL文の実行に要した平均時間が表示されます。
  • 「高可用性」タブ: 高可用性および障害時リカバリの構成パラメータ、MySQLサーバーのグループ・レプリケーション・メトリックおよびグループ・レプリケーション・メンバーが表示されます。このタブは、グループ・レプリケーションを利用するレプリケーション・タイプ、またはInnoDBクラスタの一部であるレプリケーション・タイプをモニターするときに表示されます。
    • 構成: この項では、次のグループ・レプリケーション高可用性パラメータが表示されます。
      • グループ名: MySQLサーバーが属するレプリケーション・グループを識別する一意の識別子。グループ内の各MySQLサーバーには同じグループ名があり、これにより、MySQLサーバーは目的のピアでのみレプリケートされます。
      • フロー制御状態: グループ・レプリケーション設定でフロー制御が現在アクティブであるかどうかを示します。これは、低速なメンバーが過剰なトランザクション・バックログを蓄積しないようにすることで、グループの安定性と一貫性を維持するのに役立ちます。
        • DISABLED: フロー制御がオフになり、スロットルは発生しません。
        • QUOTA: フロー制御がアクティブであり、グループは事前定義されたしきい値に基づいてトランザクション・フローを規制します。
      • グループの自動増分: MySQLサーバーで実行されるトランザクションの自動増分列の連続する値の間隔。
      • デプロイメント・モード: グループのデプロイメント・モードを示します。
        • 単一プライマリ: 書込み操作を受け入れるプライマリ・メンバーは1つのみです。
        • 複数プライマリ: すべてのメンバーが書込み操作を同時に受け入れることができます。
    • ステータス: このセクションでは、次のグループ・レプリケーションの詳細が表示されます:
      • ビューID: グループの現在のビュー識別子。
      • メンバー状態: レプリケーション・グループ内のMySQLサーバーの現在のステータス。各種ステータスについては、Group Replication Server Statesを参照してください。
      • GTID_EXECUTED内のトランザクション: グループ内でレプリケートされたトランザクションの数。
    • 統計: この項では、次のメトリック・チャートが表示されます:
      • キューに入っているトランザクション: キュー内の競合検出チェックを保留しているトランザクションの数が表示されます。
      • 行検証: トランザクション証明中に競合を検出するために現在検証中である行の数が表示されます。
      • チェックされたトランザクション: グループ間で競合がないかチェックされたトランザクションの数が表示されます。
      • 検出された競合: 競合検出に失敗したトランザクションの数が表示されます。
    • グループ・レプリケーション・メンバー: この項では、レプリケーション・グループ内のMySQLサーバーが、次の詳細とともにリストされます。
      • ホスト: メンバー・サーバーのネットワーク・アドレス(ホスト名またはIPアドレス)。
      • ポート: メンバー・サーバーが接続をリスニングしているポート番号。
      • 状態: メンバー・サーバーの現在のステータス。
      • ロール: メンバー・サーバーのロール。
      • サーバーUUID: メンバー・サーバーのUUID。
  • 「インバウンド」タブ: インバウンド・レプリケーション・チャネルの情報およびメトリックを表示します。このタブは、MySQLサーバーがレプリケーション・プロセスでレプリカとして構成されている場合に表示されます。
    • リレー・ログ・メトリック: この項では、すべてのインバウンド・レプリケーション・チャネルについて集計された次のリレー・ログ・メトリック・チャートが表示されます:
      • 領域使用量(バイト): レプリカ上のリレー・ログ・ファイルによって使用されているディスク領域の量が表示されます。
        ノート

        モニタリング・ユーザーにREPLICATION CLIENT権限がない場合、このメトリック・チャートにはデータは表示されません。
      • ファイルI/O読取り(バイト/秒): リレー・ログ・ファイルからデータが読み取られる速度が表示されます。
      • 書き込まれたファイルI/O (バイト/秒): データがリレー・ログ・ファイルに書き込まれる率が表示されます。
      • ファイルI/Oレイテンシ(マイクロ秒): データがリレー・ログ・ファイルから読み取られ、リレー・ログ・ファイルに書き込まれるまでの遅延が表示されます。
    • ヘルス: この項では、レシーバおよびサプライヤ・コンポーネントのヘルスに関する次の詳細が表示されます:
      • レシーバは、ソースへの接続の確立および維持を担当します。
        • ステータス: レシーバの現在の状態。レシーバが現在実行中であり、正しく機能しているかどうかを示します。
        • エラー番号: レシーバで最後に発生したエラーの数値コード。
        • エラー・メッセージ: エラー番号に対応するメッセージ。
      • 「Applier」は、レシーバによって取得されたイベントを実行し、レプリカに適用します。
        • ステータス: アプライヤの現在の状態。この状態は、現在実行中であり、正しく機能しているかどうかを示します。
        • エラー番号: アプライヤで最後に発生したエラーの数値コード。
        • エラー・メッセージ: エラー番号に対応するメッセージ。
    • 構成: この項では、次のインバウンド・レプリケーション・チャネル・パラメータが表示されます。
      • ソースは、データのレプリケート元のアップストリームMySQLサーバーです。
        • ホスト: ソースのホスト名またはIPアドレス。
        • ポート: レプリケーションのためにレプリカが接続する必要があるソースのポート番号。
        • サーバーUUID: ソースのUUID。
        • ID: ソースのサーバーID。
      • レプリカは、現在のMySQLサーバーです。
        • サーバーUUID: レプリカのUUID。
        • ID: レプリカのサーバーID。
      • 「適用」設定は、レプリカがソースから受信したトランザクションを適用する方法に影響します。
        • 遅延: このレプリカがこのチャネルのソースより遅れている必要がある構成済秒数。
        • ワーカー: レプリケーション・トランザクションをパラレルで実行するための構成済数のアプライヤ・スレッド。
        • グローバル・トランザクションIDの処理: チャネルが、GTIDを持っていないレプリケートされたトランザクションにGTIDを割り当てるかどうかを示します。
          • OFF: GTIDは割り当てられません。
          • LOCAL: このレプリカのUUIDを含むGTIDが割り当てられます。
          • <UUID>: 手動で設定されたUUIDを含むGTIDが割り当てられます。
      • 「フィルタ」は、ソースからレプリカにレプリケートされるデータを制御します。特定のデータベース、表またはその他のオブジェクトを含めるか除外するように構成できます。
    • 統計: この項では、次のインバウンド・レプリケーション・チャネルの詳細が表示されます。
      • 使用されたリレー・ログ記憶域: このチャネルに関連するリレー・ログ・ファイルによって消費されたディスク領域の合計。
      • 受信したトランザクション: レプリカがソース・サーバーから受信したトランザクションの数。
      • 適用遅延: 現在のトランザクションがソースでコミットされてからレプリカで適用されるまでにかかった時間。
      • ビジー・ワーカー: このチャネルを介してレプリカにトランザクションを適用する際に現在アクティブなレプリケーション・ワーカー・スレッドの数。
  • 「アウトバウンド」タブ: MySQLサーバーのレプリカに関する情報が表示されます。このタブは、MySQLサーバーがレプリケーション・プロセスでソースとして構成されている場合に表示されます。
    • 構成: この項では、現在のMySQLサーバーのレプリカを次の詳細とともにリストします。
      • ホスト: --report-hostオプションを使用してレプリカで指定されたレプリカのホスト名。
      • ポート: --report-portオプションを使用してレプリカに指定されている、レプリカがリスニングしているポート。
      • サーバーID: レプリカのサーバーID。
      • サーバーUUID: レプリカのUUID。
  • 「バイナリ・ログ」タブ: MySQLサーバーのバイナリ・ログ構成パラメータ、詳細およびメトリック・チャートの概要が表示されます。
    • 構成: この項では、次のバイナリ・ログ構成パラメータが表示されます:
      • 有効: バイナリ・ロギングがサーバーでアクティブかどうかを示します。
      • ログ形式: 変更がバイナリ・ログに記録される形式を示します:
        • STATEMENT: データを変更するSQL文をログに記録します。
        • ROW: 実際のデータ変更を行レベルで記録します。
        • MIXED: 文の性質に応じて、文ベースのレプリケーションと行ベースのレプリケーションを切り替えます。
      • ログ圧縮: ディスク領域の使用量とネットワーク帯域幅を削減するために、圧縮を有効にしてバイナリ・ログに適用するかどうかを示します。
    • ステータス: この項では、次のバイナリ・ログの詳細が表示されます:
      • バイナリ・ログ名: MySQLサーバーで使用されている現在のバイナリ・ログ・ファイル。
      • バイナリ・ログの位置: MySQLサーバーが書き込むアクティブなバイナリ・ログ・ファイル内の現在の位置。
      • ログ圧縮率: ログ圧縮が有効になっている場合、バイナリ・ログ・ファイルに対して達成された圧縮の割合。
    • 統計: この項では、次のバイナリ・ログ・メトリック・チャートが表示されます:
      • ストレージ領域使用量(バイト): バイナリ・ログ・ファイルで使用される合計ディスク領域が表示されます。
      • I/O読取り(バイト/秒): バイナリ・ログ・ファイルからデータが読み取られる速度が表示されます。
      • 書き込まれたI/O (バイト/秒): データがバイナリ・ログ・ファイルに書き込まれる速度が表示されます。
      • I/Oレイテンシ(マイクロ秒): バイナリ・ログ・ファイルの読取りまたは書込み時の遅延を表示します。