备库show slave status\G信息如下:
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 1.1.1.1
Master_User: replicator
Master_Port: 3214
Connect_Retry: 60
Master_Log_File: mysql-bin.000669
Read_Master_Log_Pos: 37646194
Relay_Log_File: slave-relay.001993
Relay_Log_Pos: 1196395
Relay_Master_Log_File: mysql-bin.000667
Slave_IO_Running: Yes
Slave_SQL_Running: No
Last_Error: Cannot schedule event Write_rows_v1, relay-log name /home/mysql/data3214/mysql/slave-relay.001993, position 1196581 to Worker thread because its size 240108247 exceeds 167772160 of slave_pending_jobs_size_max.
问题原因:
由于pending job占用内存大于slave_pending_jobs_size_max参数,写入报错
解决办法:内存足够的情况下调大slave_pending_jobs_size_max,调大到比报错大一点就行
mysql> stop slave;
Query OK, 0 rows affected (0.04 sec)
mysql> set global slave_pending_jobs_size_max=250000000;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.01 sec)
Slave_IO_Running: Yes
Slave_SQL_Running: Yes