レプリケーション プロセスを管理するときの一般的なタスクとして、レプリケーションが正確に行われ、スレーブとマスタの間でエラーが発生していないかどうかを確認することがあります。
これに対するプライマリのコマンドは、SHOW
SLAVE STATUS
であり、それぞれのスレーブで実行します。
mysql> SHOW SLAVE STATUS\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: master1 Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000004 Read_Master_Log_Pos: 931 Relay_Log_File: slave1-relay-bin.000056 Relay_Log_Pos: 950 Relay_Master_Log_File: mysql-bin.000004 Slave_IO_Running: Yes Slave_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_Master_Log_Pos: 931 Relay_Log_Space: 1365 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 1 row in set (0.01 sec)
検査するステータス レポートからのキー フィールド
Slave_IO_State
—
スレーブのカレント ステータスを示す。
項5.5.3. 「スレーブ レプリケーションの I/O スレッド状態」 および
項5.5.4. 「スレーブ レプリケーションの SQL スレッド状態」 を参照。
Slave_IO_Running
—
マスタのバイナリ ログを読む IO
スレッドが実行されているかどうかを示す。
Slave_SQL_Running
— バイナリ
ログのイベントを実行する SQL
スレッドが作動しているかどうかを示す。
Last_Error
— リレー
ログを処理したときに最後に登録されたエラーを示す。これがブランクの場合は、エラーがないことを示す。
Seconds_Behind_Master
—
スレーブ SQL スレッドがマスタのバイナリ
ログに遅れた時間を示す。この数字が大きい、または上昇している場合は、スレーブがマスタからの大量クエリに対応できないことを示す。
マスタでは、実行プロセスのリストをチェックしてスレーブのステータスを調べることができます。スレーブは
Binlog Dump
コマンドを実行します。
mysql> SHOW PROCESSLIST \G; *************************** 4. row *************************** Id: 10 User: root Host: slave1: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
SLAVE HOSTS
ステートメントが接続しているスレーブに関する基本的な情報を示します。
mysql> SHOW SLAVE HOSTS; +-----------+--------+------+-------------------+-----------+ | Server_id | Host | Port | Rpl_recovery_rank | Master_id | +-----------+--------+------+-------------------+-----------+ | 10 | slave1 | 3306 | 0 | 1 | +-----------+--------+------+-------------------+-----------+ 1 row in set (0.00 sec)
この出力は、スレーブ サーバの ID、
--report-host
オプションの値、接続レポート、マスタ
ID、バイナリ ログ
アップデート受信に関するスレーブの優先順位などを含みます。