To monitor the status of replication channels the following options exist:
Using the replication Performance Schema tables. The first column of these tables is
Channel_Name
. This enables you to write complex queries based onChannel_Name
as a key. SeeSection 27.12.11, “Performance Schema Replication Tables”.Using
SHOW REPLICA | SLAVE STATUS FOR CHANNEL
. By default, if thechannel
FOR CHANNEL
clause is not used, this statement shows the replica status for all channels with one row per channel. The identifierchannel
Channel_name
is added as a column in the result set. If aFOR CHANNEL
clause is provided, the results show the status of only the named replication channel.channel
TheSHOW VARIABLES
statement does not work with multiple replication channels. The information that was available through these variables has been migrated to the replication performance tables. Using aSHOW VARIABLES
statement in a topology with multiple channels shows the status of only the default channel.
The error codes and messages that are issued when multi-source replication is enabled specify the channel that generated the error.
This section explains how to use the replication Performance Schema tables to monitor channels. You can choose to monitor all channels, or a subset of the existing channels.
监控所有通道的连接状态:
mysql> SELECT * FROM replication_connection_status\G; *************************** 1. row *************************** CHANNEL_NAME: source_1 GROUP_NAME: SOURCE_UUID: 046e41f8-a223-11e4-a975-0811960cc264 THREAD_ID: 24 SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: 046e41f8-a223-11e4-a975-0811960cc264:4-37 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 *************************** 2. row *************************** CHANNEL_NAME: source_2 GROUP_NAME: SOURCE_UUID: 7475e474-a223-11e4-a978-0811960cc264 THREAD_ID: 26 SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: 7475e474-a223-11e4-a978-0811960cc264:4-6 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 2 rows in set (0.00 sec)
In the above output there are two channels enabled, and as shown by theCHANNEL_NAME
field they are calledsource_1
andsource_2
.
The addition of theCHANNEL_NAME
field enables you to query the Performance Schema tables for a specific channel. To monitor the connection status of a named channel, use aWHERE CHANNEL_NAME=
clause:channel
mysql> SELECT * FROM replication_connection_status WHERE CHANNEL_NAME='source_1'\G *************************** 1. row *************************** CHANNEL_NAME: source_1 GROUP_NAME: SOURCE_UUID: 046e41f8-a223-11e4-a975-0811960cc264 THREAD_ID: 24 SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: 046e41f8-a223-11e4-a975-0811960cc264:4-37 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 1 row in set (0.00 sec)
Similarly, theWHERE CHANNEL_NAME=
clause can be used to monitor the other replication Performance Schema tables for a specific channel. For more information, seeSection 27.12.11, “Performance Schema Replication Tables”.channel