配色: 字号:
mysql数据库 slave复制异常问题解决办法
2016-09-05 | 阅:  转:  |  分享 
  
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.

献花(0)
+1
(本文系网络学习天...首藏)