Golfreeze.packetlove.com: Life style of Golfreeze Canon400D Family kammtan.com Jazz Freebsd Unix Linux System Admin guitar Music

All about unix linux freebsd and FAQ for Packetlove.com Web hosting , Mail hosting , VoIP + IP PBX server => all application on unix knowledges by golfreeze => Topic started by: golfreeze on มีนาคม 17, 2018, 10:24:19 PM

Title: เจอปัญหา mysql slave Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND
Post by: golfreeze on มีนาคม 17, 2018, 10:24:19 PM
วันนี้ระบบลูกค้า มีปัญหาเรื่อง slave mysql ไม่สามารถ sync กับ master node ได้ครับ
จาก tracking error log เจอประมาณนี้

Last_SQL_Error: Could not execute Update_rows event on table test.abc; Can't find record in 't1', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000999, end_log_pos 492
แล้วทำให้ตัว
      Slave_IO_Running: Yes
      Slave_SQL_Running: NO

ซึ่งลองแก้ไขปัญหาคือที่ node
mysql> stop slave;
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> START SLAVE;

ก็ยังไม่หาย
หรือเพิ่มขนาด skip counter แล้วก็ยังไม่หายครับ
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1000;

สรุปเลยต้องทำการ dump db จาก master แล้ว import ลงใหม่ที่ node slave
##master node
##Lock tables read only on master node
mysql>FLUSH TABLES WITH READ LOCK;

##แล้วออกมา dump dbครับ @ master-node
mysqldump -uabc -p testdb  --master-data > testdb_.sql
mysql>UNLOCK TABLES;
scp testdb_.sql abc@slavenode:/home/abc/.

###Slave node
ทำการปรับจูนนิ่ง

systemctl restart mysql
mysql>STOP SLAVE;
mysql>quit
mysql -uabc -p testdb < testdb.sql

mysql>start slave;

หลังจากนั้นทำการเพิ่ม configure นี้ใน mysqld.cnf ในเครื่อง slave node ครับ
[mysqld]
slave-skip-errors=1032

แล้วทำการ restart mysql @ slave-db
systemctl restart mysql

ก็แก้ไขปัญหาได้ครับผม : )
Packetlove.com Team.

##Reference link
https://www.fromdual.ch/replication-troubleshooting-classic-vs-gtid
https://dev.mysql.com/doc/refman/5.6/en/replication-gtids-failover.html#replication-gtids-failover-empty
https://www.opsdash.com/blog/mysql-replication-howto.html
https://dba.stackexchange.com/questions/23921/some-mysql-slave-errors
https://github.com/chilumbugeorge/database/wiki/MySQL-Performance-Tuning:-innodb_flush_log_at_trx_commit-benchmark-result