The most common task when managing a replication process is to ensure that replication is taking place and that there have been no errors between the replica and the source.
        The SHOW REPLICA STATUS
        statement, which you must execute on each replica, provides
        information about the configuration and status of the connection
        between the replica server and the source server. From MySQL
        8.0.22, SHOW SLAVE STATUS is
        deprecated, and SHOW REPLICA
        STATUS is available to use instead. The Performance
        Schema has replication tables that provide this information in a
        more accessible form. See
        Section 29.12.11, “Performance Schema Replication Tables”.
      
        The replication heartbeat information shown in the Performance
        Schema replication tables lets you check that the replication
        connection is active even if the source has not sent events to
        the replica recently. The source sends a heartbeat signal to a
        replica if there are no updates to, and no unsent events in, the
        binary log for a longer period than the heartbeat interval. The
        MASTER_HEARTBEAT_PERIOD setting on the source
        (set by the CHANGE MASTER TO
        statement) specifies the frequency of the heartbeat, which
        defaults to half of the connection timeout interval for the
        replica (specified by the system variable
        replica_net_timeout or
        slave_net_timeout). The
        replication_connection_status
        Performance Schema table shows when the most recent heartbeat
        signal was received by a replica, and how many heartbeat signals
        it has received.
      
        If you are using the SHOW REPLICA
        STATUS statement to check on the status of an
        individual replica, the statement provides the following
        information:
      
mysql> SHOW REPLICA STATUS\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: 127.0.0.1
                  Source_User: root
                  Source_Port: 13000
                Connect_Retry: 1
              Source_Log_File: master-bin.000001
          Read_Source_Log_Pos: 927
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 1145
        Relay_Source_Log_File: master-bin.000001
           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: 927
              Relay_Log_Space: 1355
              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:
             Source_Server_Id: 1
                  Source_UUID: 73f86016-978b-11ee-ade5-8d2a2a562feb
             Source_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
    Replica_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Source_Retry_Count: 10
                  Source_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Source_SSL_Crl:
           Source_SSL_Crlpath:
           Retrieved_Gtid_Set: 73f86016-978b-11ee-ade5-8d2a2a562feb:1-3
            Executed_Gtid_Set: 73f86016-978b-11ee-ade5-8d2a2a562feb:1-3
                Auto_Position: 1
         Replicate_Rewrite_DB:
                 Channel_Name:
           Source_TLS_Version:
       Source_public_key_path:
        Get_Source_public_key: 0
            Network_Namespace:The key fields from the status report to examine are:
- Replica_IO_State: The current status of the replica. See Section 10.14.5, “Replication I/O (Receiver) Thread States”, and Section 10.14.6, “Replication SQL Thread States”, for more information.
- Replica_IO_Running: Whether the I/O (receiver) thread for reading the source's binary log is running. Normally, you want this to be- Yesunless you have not yet started replication or have explicitly stopped it with- STOP REPLICA.
- Replica_SQL_Running: Whether the SQL thread for executing events in the relay log is running. As with the I/O thread, this should normally be- Yes.
- Last_IO_Error,- Last_SQL_Error: The last errors registered by the I/O (receiver) and SQL (applier) threads when processing the relay log. Ideally these should be blank, indicating no errors.
- Seconds_Behind_Source: The number of seconds that the replication SQL (applier) thread is behind processing the source binary log. A high number (or an increasing one) can indicate that the replica is unable to handle events from the source in a timely fashion.- A value of 0 for - Seconds_Behind_Sourcecan usually be interpreted as meaning that the replica has caught up with the source, but there are some cases where this is not strictly true. For example, this can occur if the network connection between source and replica is broken but the replication I/O (receiver) thread has not yet noticed this; that is, the time period set by- replica_net_timeoutor- slave_net_timeouthas not yet elapsed.- It is also possible that transient values for - Seconds_Behind_Sourcemay not reflect the situation accurately. When the replication SQL (applier) thread has caught up on I/O,- Seconds_Behind_Sourcedisplays 0; but when the replication I/O (receiver) thread is still queuing up a new event,- Seconds_Behind_Sourcemay show a large value until the replication applier thread finishes executing the new event. This is especially likely when the events have old timestamps; in such cases, if you execute- SHOW REPLICA STATUSseveral times in a relatively short period, you may see this value change back and forth repeatedly between 0 and a relatively large value.
Several pairs of fields provide information about the progress of the replica in reading events from the source binary log and processing them in the relay log:
- ( - Master_Log_file,- Read_Master_Log_Pos): Coordinates in the source binary log indicating how far the replication I/O (receiver) thread has read events from that log.
- ( - Relay_Master_Log_File,- Exec_Master_Log_Pos): Coordinates in the source binary log indicating how far the replication SQL (applier) thread has executed events received from that log.
- ( - Relay_Log_File,- Relay_Log_Pos): Coordinates in the replica relay log indicating how far the replication SQL (applier) thread has executed the relay log. These correspond to the preceding coordinates, but are expressed in replica relay log coordinates rather than source binary log coordinates.
        On the source, you can check the status of connected replicas
        using SHOW PROCESSLIST to examine
        the list of running processes. Replica connections have
        Binlog Dump in the Command
        field:
      
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: NULLBecause it is the replica that drives the replication process, very little information is available in this report.
        For replicas that were started with the
        --report-host option and are
        connected to the source, the SHOW
        REPLICAS (or before MySQL 8.0.22,
        SHOW SLAVE HOSTS) statement on
        the source shows basic information about the replicas. The
        output includes the ID of the replica server, the value of the
        --report-host option, the
        connecting port, and source 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)