MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

17.1.7.1 レプリケーションステータスの確認

レプリケーションプロセスを管理する場合の最も一般的なタスクは、レプリケーションが実行され、レプリカとソースの間にエラーがないことを確認することです。

各レプリカで実行する必要がある SHOW REPLICA | SLAVE STATUS ステートメントは、レプリカサーバーとソースサーバー間の接続の構成およびステータスに関する情報を提供します。 MySQL 8.0.22 から、SHOW SLAVE STATUS は非推奨になり、かわりに SHOW REPLICA STATUS を使用できます。 パフォーマンススキーマには、この情報をよりアクセスしやすい形式で提供するレプリケーションテーブルがあります。 セクション27.12.11「パフォーマンススキーマレプリケーションテーブル」を参照してください。

パフォーマンススキーマレプリケーションテーブルに表示されるレプリケーションハートビート情報を使用すると、ソースが最近レプリカにイベントを送信していない場合でも、レプリケーション接続がアクティブであることを確認できます。 ソースは、ハートビート間隔より長い期間バイナリログに更新がなく、未送信のイベントがない場合に、ハートビートシグナルをレプリカに送信します。 (CHANGE MASTER TO ステートメントで設定された) ソースの MASTER_HEARTBEAT_PERIOD 設定では、ハートビートの頻度を指定します。これは、レプリカ (slave_net_timeout) の接続タイムアウト間隔の半分にデフォルト設定されます。 replication_connection_status「パフォーマンススキーマ」テーブルには、レプリカが最新のハートビートシグナルをいつ受信したか、および受信したハートビートシグナルの数が表示されます。

SHOW REPLICA | SLAVE STATUS ステートメントを使用して個々のレプリカのステータスを確認している場合、ステートメントは次の情報を提供します:

mysql> SHOW REPLICA STATUS\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for master to send event
                  Source_Host: source1
                  Source_User: root
                  Source_Port: 3306
                Connect_Retry: 60
              Source_Log_File: mysql-bin.000004
          Read_Source_Log_Pos: 931
               Relay_Log_File: replica1-relay-bin.000056
                Relay_Log_Pos: 950
        Relay_Source_Log_File: mysql-bin.000004
           Replica_IO_Running: Yes
          Replica_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Source_Log_Pos: 931
              Relay_Log_Space: 1365
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_SSL_CA_File:
           Source_SSL_CA_Path:
              Source_SSL_Cert:
            Source_SSL_Cipher:
               Source_SSL_Key:
        Seconds_Behind_Source: 0
Source_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids: 0

ステータスレポートの中で調査すべき主要フィールドは、次のとおりです。

フィールドのいくつかのペアは、ソースバイナリログからイベントを読み取り、リレーログでそれらを処理する際のレプリカの進行状況に関する情報を提供します:

ソースでは、SHOW PROCESSLIST を使用して接続レプリカのステータスを確認し、実行中のプロセスのリストを調べることができます。 レプリカ接続では、Command フィールドに Binlog Dump があります:

mysql> SHOW PROCESSLIST \G;
*************************** 4. row ***************************
     Id: 10
   User: root
   Host: replica1:58371
     db: NULL
Command: Binlog Dump
   Time: 777
  State: Has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL

これはレプリケーションプロセスを駆動するレプリカであるため、このレポートで使用できる情報はほとんどありません。

--report-host オプションで開始され、ソースに接続されているレプリカの場合、ソースの SHOW REPLICAS | SHOW SLAVE HOSTS ステートメントにレプリカに関する基本情報が表示されます。 出力には、レプリカサーバーの ID、--report-host オプションの値、接続ポートおよびソース ID が含まれます:

mysql> SHOW REPLICAS;
+-----------+----------+------+-------------------+-----------+
| Server_id | Host     | Port | Rpl_recovery_rank | Source_id |
+-----------+----------+------+-------------------+-----------+
|        10 | replica1 | 3306 |                 0 |         1 |
+-----------+----------+------+-------------------+-----------+
1 row in set (0.00 sec)