美文网首页运维MySQL
深入了解复制-复制的状态信息

深入了解复制-复制的状态信息

作者: 温东 | 来源:发表于2017-04-27 12:11 被阅读23次

    1、show slave hosts命令列出了连接master的slave及相关信息。

    2、show master

    logs命令查看master的二进制日志文件。

    3、show master

    status命令给出下一个事件即将写入二进制日志的位置。注,多数情况下此命令显示的内容与show master logs的命令的最后一行内容相同。

    4、show slave

    status命令用于相看slave线程的状态。

    mysql> mhow slave status\G;

    *************************** 1. row ***************************

    Slave_IO_State: Waiting for master to send event

    Master_Host: 192.168.10.71mysql主库的ip地址

    Master_User: repl_usermaster上面的一个用户。用来负责主从复制的用户

    Master_Port: 3306master服务器的端口一般是3306

    Connect_Retry: 60连接中断后,重新尝试连接的时间间隔。默认值是60秒

    Master_Log_File:master-bin.000004当前I/O线程正在读取的主服务器二进制日志文件的名称

    Read_Master_Log_Pos: 120当前I/O线程正在读取的二进制日志的位置

    Relay_Log_File: slave-relay-bin.000013当前slave

    SQL线程正在读取并执行的relay log的文件名

    Relay_Log_Pos: 284当前slave

    SQL线程正在读取并执行的relay log文件中的位置

    Relay_Master_Log_File:master-bin.000004当前slave SQL线程读取并执行的relay

    log的文件中多数近期事件,对应的主服务器二进制日志文件的名称。

    Slave_IO_Running:Yesslave_IO线程是否在运行

    Slave_SQL_Running: Yesslave_SQL线程是否在运行

    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:相当与后面的Last_SQL_Errno和Last_SQL_Error

    Skip_Counter: 0SQL_SLAVE_SKIP_COUNTER的值,用于设置跳过sql执行步数。

    Exec_Master_Log_Pos: 120slave SQL线程当前执行的事件,对应在master相应的二进制日志中的position。

    Relay_Log_Space: 621所有原有的中继日志结合起来的总大小

    Until_Condition: None

    Until_Log_File:

    Until_Log_Pos:0

    在START SLAVE语句的UNTIL子句中指定的值

    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这个值是时间戳的差值。是slave当前的时间戳和master记录该事件时的时间戳的差值

    Master_SSL_Verify_Server_Cert: No

    Last_IO_Errno: 0

    Last_IO_Error:I/O线程停止的原因。

    Last_SQL_Errno: 0

    Last_SQL_Error:SQL线程停止的原因

    Replicate_Ignore_Server_Ids:主从复制,从库忽略的主库服务器Id号。就是不以这些服务器Id为主库。

    Master_Server_Id: 71

    Master_UUID: 0e9896a7-14f7-11e7-a0e6-000c2900551e

    Master_Info_File: /usr/local/mysql-5.6.35/data/master.info

    SQL_Delay: 0一个非负整数,表示秒数,Slave滞后多少秒于master。

    SQL_Remaining_Delay: NULL当Slave_SQL_Running_State等待,直到MASTER_DELAY秒后,Master执行的事件,此字段包含一个整数,表示有多少秒左右的延迟。在其他时候,这个字段是NULL。

    Slave_SQL_Running_State: Slave has read all relay log; waiting for theslave I/O thread to update it

    SQL线程运行状态:

    1)Reading event from the relay log

    线程已经从中继日志读取一个事件,可以对事件进行处理了。

    2)Has read all relay log; waiting for the slave I/O thread to update it

    线程已经处理了中继日志文件中的所有事件,现在正等待I/O线程将新事件写入中继日志。

    3)Waiting for slave mutex on exit

    线程停止时发生的一个很简单的状态。

    Master_Retry_Count: 86400连接主库失败最多的重试次数

    Master_Bind:

    Last_IO_Error_Timestamp:

    Last_SQL_Error_Timestamp:

    最后一次I/O线程或者SQL线程错误时的时间戳。

    Master_SSL_Crl:

    Master_SSL_Crlpath:

    Retrieved_Gtid_Set:

    Executed_Gtid_Set:

    Auto_Position: 0

    1 row in set (0.00 sec)

    Slave_IO_State描述了当前正在运行的I/O线程的状态,有如下状态:

    1) waiting formaster update

    这是connecting to

    master状态之前的状态

    2) connecting tomaster

    I/O线程正尝试连接到master

    3) checkingmaster version

    在与master建立连接后,会出现该状态。该状态出现的时间非常短暂。

    4) registeringslave on master

    在与master建立连接后,会出现该状态。该状态出现的时间非常短暂。

    5) requestingbinlog dump

    在与master建立连接后,会出现该状态。该状态出现的时间非常短暂。在这个状态下,I/O线程向master发送请求,请求binlog,位置从指定的binglog名字和binglog的position位置开始。

    6) waiting toreconnect after a failed binlog dump request

    如果因为连接断开,导致binglog的请求失败,I/O线程会进入睡眠状态。然后定期尝试重连。尝试重连的时间间隔,可以使用命令"change master to master_connect_trt=X;"改变。

    7) reconnectingafter a failed binglog dump request

    I/O进程正在尝试连接master

    8) waiting formaster to send event

    说明,已经成功连接到master,正等待二进制日志时间的到达。如果master空闲,这个状态会持续很长时间。如果等待的时间超过了slave_net_timeout(单位是秒)的值,会出现连接超时。在这种状态下,I/O线程会人为连接失败,并开始尝试重连

    9) queueingmaster event to the relay log

    此时,I/O线程已经读取了一个event,并复制到了relay

    log中。这样SQL线程可以执行此event

    10) waiting toreconnect after a failed master event read

    读取时出现的错误(因为连接断开)。在尝试重连之前,I/O线程进入sleep状态,sleep的时间是master_connect_try的值(默认是60秒)

    11) reconnectingafter a failed master event read

    I/O线程正尝试重连master。如果连接建立,状态会变成"waitingfor master to send event"

    12) waiting forthe slave sql thread to free enough relay log space

    这是因为设置了relay_log_space_limit,并且relay log的大小已经整张到了最大值。I/O线程正在等待SQL线程通过删除一些relay

    log,来释放relay log的空间。

    13) waiting forslave mutex on exit

    I/O线程停止时会出现的状态,出现的时间非常短。n

    相关文章

      网友评论

        本文标题:深入了解复制-复制的状态信息

        本文链接:https://www.haomeiwen.com/subject/npvgzttx.html