- July 9, 2007 3:32 PM
MySQLのレプリケーションは非同期型であるため、バイナリログの伝送遅延とSQLの実行遅延の二つの遅延が発生する。
1.伝送遅延
伝送遅延の確認方法は次の通りとなる。
1. マスター側でSHOW MASTER STATUSを実行する
mysql> show master status\G
*************************** 1. row ***************************
File: OC210515012-bin.000005
Position: 98
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
SHOW MASTER STATUS結果
2. スレーブ側でSHOW SLAVE STATUSを実行する
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: localhost
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: OC210515012-bin.000005
Read_Master_Log_Pos: 98
Relay_Log_File: OC210515012-relay-bin.000037
Relay_Log_Pos: 241
Relay_Master_Log_File: OC210515012-bin.000005
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: 98
Relay_Log_Space: 241
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)
SHOW SLAVE STATUS結果
3. ファイル名とポジションを比較する。
表の各ファイル名と各ポジションを確認する。ファイル名が同一で、ポジションが同じ数値であれば、伝送遅延はゼロということになる。
|
|
バイナリログ @マスター |
リレーログ @スレーブ |
|
ファイル名 |
FILE |
MASTER_LOG_FILE |
|
ポジション |
POSITION |
READ_MASTER_LOG_PO |
スレーブ側のリレーログへは伝送されているが、未だSQLスレッドが実行していない更新クエリが存在する場合、その差分を「実行遅延」と呼ぶ。
実行遅延の確認は次の通りとなる。
1. スレーブ側でSHOW SLAVE STATUSを実行する。
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: localhost
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: OC210515012-bin.000005
Read_Master_Log_Pos: 98
Relay_Log_File: OC210515012-relay-bin.000037
Relay_Log_Pos: 241
Relay_Master_Log_File: OC210515012-bin.000005
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: 98
Relay_Log_Space: 241
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)
SHOW SLAVE STATUS結果
2. ファイル名とポジションを確認する。
図の各ファイル名と各ポジションを確認する。ファイル名が同一で、ポジションが同じ数値であれば、伝送遅延はゼロということになる。
|
|
IOスレッド読み込み @スレーブ |
SQLスレッド実行 @スレーブ |
|
ファイル |
MASTER_LOG_FILE |
RELAY_MASTER_LOG_FILE |
|
ポジション |
READ_MASTER_LOG_POS |
EXEC_MASTER_LOG_POS |