mysql数据库slave复制异常问题解决办法
slave是主从复制了,但小编在测试mysqlslave主从复制出现了问题了,在此PHP粉丝网小编来为各位介绍mysql数据库slave复制异常问题解决办法,希望文章对各位有用.
以下是两种slave复制异常的情况。导致的原因都是由于跨机房同步,slave的机房突然掉电导致的。
案例一:这个错误大原因是Read_Master_Log_Pos:1028687822的pos号在主库上是没有的.
处理方法:获取这个pos号的前一个pos号,从新开启同步,这里注意如果是row模式的话就没有问题.如果是mix的或者statement的话,就需要去分析binlog,确认具体执行到哪个pos号了,不然可能会导致数据不一致.
(andy:db:)[(none)]11:18:39>showslavestatus\G
1.row
Slave_IO_State:
Master_Host:192.168.11.24
Master_User:slave
Master_Port:3306
Connect_Retry:10
Master_Log_File:mysql-bin.000342
Read_Master_Log_Pos:1028687822
Relay_Log_File:localhost-relay-bin.000767
Relay_Log_Pos:4
Relay_Master_Log_File:mysql-bin.000342
Slave_IO_Running:No
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:1028687822
Relay_Log_Space:120
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:NULL
Master_SSL_Verify_Server_Cert:No
Last_IO_Errno:1236
Last_IO_Error:Gotfatalerror1236frommasterwhenreadingdatafrombinarylog:慍lientrequestedmastertostartreplicationfromposition>filesize;thefirstevent憁ysql-bin.000342 ′at1028687822,thelasteventreadfrom‘./mysql-bin.000342′at4,thelastbytereadfrom‘./mysql-bin.000342′at4.’
Last_SQL_Errno:0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id:1024
Master_UUID:e9143523-c116-11e2-a8a1-0022195d25da--phpfensi.com
Master_Info_File:/usr/local/mysql-6/data/master.info
SQL_Delay:0
SQL_Remaining_Delay:NULL
Slave_SQL_Running_State:Slavehasreadallrelaylog;waitingfortheslaveI/Othreadtoupdateit
Master_Retry_Count:86400
Master_Bind:
Last_IO_Error_Timestamp:14072506:55:26
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position:0
1rowinset(0.00sec)
案例二:这个是由于slave的relay-log损坏了.可以考虑使用Exec_Master_Log_Pos:439512771pos号,从新开启同步.或者使用relay_log_recovery=ON参数启动.
(root:bi:)[(none)]10:56:01>showslavestatus\G
1.row
Slave_IO_State:Waitingformastertosendevent
Master_Host:172.20.100.16
Master_User:slave
Master_Port:3306
Connect_Retry:10
Master_Log_File:mysql-bin.000076
Read_Master_Log_Pos:474667384
Relay_Log_File:localhost-relay-bin.000137
Relay_Log_Pos:212337426
Relay_Master_Log_File:mysql-bin.000076
Slave_IO_Running:Yes
Slave_SQL_Running:No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:1594
Last_Error:Relaylogreadfailure:Couldnotparserelaylogevententry.Thepossiblereasonsare:themaster’sbinarylogiscorrupted(youcancheckthisbyrunning‘mysqlbinlog’onthebinarylog),theslave’srelaylogiscorrupted(youcancheckthisbyrunning‘mysqlbinlog’ontherelaylog),anetwwww.shanxiwang.netorkproblem,orabuginthemaster’sorslave’sMySQLcode.Ifyouwanttocheckthemaster’sbinarylogorslave’srelaylog,youwillbeabletoknowtheirnamesbyissuing‘SHOWSLAVESTATUS’onthisslave.
Skip_Counter:0
Exec_Master_Log_Pos:439512771
Relay_Log_Space:474669681
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:NULL
Master_SSL_Verify_Server_Cert:No
Last_IO_Errno:0
Last_IO_Error:
Last_SQL_Errno:1594
Last_SQL_Error:Relaylogreadfailure:Couldnotparserelaylogevententry.Thepossiblereasonsare:themaster’sbinarylogiscorrupted(youcancheckthisbyrunning‘mysqlbinlog’onthebinarylog),theslave’srelaylogiscorrupted(youcancheckthisbyrunning‘mysqlbinlog’ontherelaylog),anetwww.sm136.comworkproblem,orabuginthemaster’sorslave’sMySQLcode.Ifyouwanttocheckthemaster’sbinarylogorslave’srelaylog,youwillbeabletoknowtheirnamesbyissuing‘SHOWSLAVESTATUS’onthisslave.
Replicate_Ignore_Server_Ids:
Master_Server_Id:1016
Master_UUID:7b6b6934-b981-11e3-bc82-c81f66de76ac
Master_Info_File:/data/mysql/data/master.info
SQL_Delay:0
SQL_Remaining_Delay:NULL
Slave_SQL_Running_State:
Master_Retry_Count:86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:14072510:54:50
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position:0
1rowinset(0.00sec)
[root@localhostdata]#mysqlbinloglocalhost-relay-bin.000137>a.txt
ERROR:ErrorinLog_event::read_log_event():‘readerror’,data_len:7736,event_type:31
ERROR:Couldnotreadentryatoffset215681738:Errorinlogformatorreaderror.
WARNING:Therangeofprwww.hunanwang.netintedeventsendswitharoweventoratablemapeventthatdoesnothavetheSTMT_END_Fflagset.Thismightbebecausethelaststatementwasnotfullywrittentothelog,orbecauseyouareusinga-stop-positionor-stop-datetimethatreferstoaneventinthemiddleofastatement.Theevent(s)fromthepartialstatementhavenotbeenwrittentooutput.
总结:这两个错误的导致的原因是机房掉电,也就是没有crashsafe.
|
|