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 slave and the master. The primary
        statement for this is SHOW SLAVE
        STATUS, which you must execute on each slave:
      
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
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
The key fields from the status report to examine are:
            Slave_IO_State — The current status
            of the slave. See Section 7.5.6.6, “Replication Slave I/O Thread States”,
            and Section 7.5.6.7, “Replication Slave SQL Thread States”, for more
            information.
          
            Slave_IO_Running — Whether the I/O
            thread for reading the master's binary log is running.
            Normally, you want this to be Yes unless
            you have not yet started replication or have explicitly
            stopped it with STOP SLAVE.
          
            Slave_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 and SQL threads when processing the
            relay log. Ideally these should be blank, indicating no
            errors.
          
            Seconds_Behind_Master — The number
            of seconds that the slave SQL thread is behind processing
            the master binary log. A high number (or an increasing one)
            can indicate that the slave is unable to handle events from
            the master in a timely fashion.
          
            A value of 0 for Seconds_Behind_Master
            can usually be interpreted as meaning that the slave has
            caught up with the master, but there are some cases where
            this is not strictly true. For example, this can occur if
            the network connection between master and slave is broken
            but the slave I/O thread has not yet noticed this —
            that is, slave_net_timeout
            has not yet elapsed.
          
            It is also possible that transient values for
            Seconds_Behind_Master may not reflect the
            situation accurately. When the slave SQL thread has caught
            up on I/O, Seconds_Behind_Master displays
            0; but when the slave I/O thread is still queuing up a new
            event, Seconds_Behind_Master may show a
            large value until the SQL thread finishes executing the new
            event. This is especially likely when the events have old
            timestamps; in such cases, if you execute
            SHOW SLAVE STATUS several
            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 slave in reading events from the master binary log and processing them in the relay log:
            (Master_Log_file,
            Read_Master_Log_Pos) — Coordinates
            in the master binary log indicating how far the slave I/O
            thread has read events from that log.
          
            (Relay_Master_Log_File,
            Exec_Master_Log_Pos) — Coordinates
            in the master binary log indicating how far the slave SQL
            thread has executed events received from that log.
          
            (Relay_Log_File,
            Relay_Log_Pos) — Coordinates in the
            slave relay log indicating how far the slave SQL thread has
            executed the relay log. These correspond to the preceding
            coordinates, but are expressed in slave relay log
            coordinates rather than master binary log coordinates.
          
        On the master, you can check the status of connected slaves
        using SHOW PROCESSLIST to examine
        the list of running processes. Slave connections have
        Binlog Dump in the Command
        field:
      
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
Because it is the slave that drives the replication process, very little information is available in this report.
        For slaves that were started with the
        --report-host option and are
        connected to the master, the SHOW SLAVE
        HOSTS statement on the master shows basic information
        about the slaves. The output includes the ID of the slave
        server, the value of the
        --report-host option, the
        connecting port, and master ID:
      
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)


User Comments
Add your own comment.