我正在运行一个主从MySQL二进制日志复制系统(p!),对于某些数据,它不同步(意味着,主机拥有的数据多于从机).但是奴隶经常在最轻微的MySQL错误上停止,这可以被禁用吗?(也许是复制奴隶的my.cnf设置ignore-replicating-errors或者某种类型;))
这就是发生的事情,当奴隶试图复制一个不存在的物品时,奴隶就会死亡.快速查看SHOW SLAVE STATUS\G; 给
Slave-IO-Running: Yes Slave-SQL-Running: No Replicate-Do-DB: Last-Errno: 1062 Last-Error: Error 'Duplicate entry '15218' for key 1' on query. Default database: 'db'. Query: 'INSERT INTO db.table ( FIELDS ) VALUES ( VALUES )'
我通过执行以下操作立即修复(一旦我意识到奴隶已经停止):
STOP SLAVE; RESET SLAVE; START SLAVE;
... ...最近这已经变得有点烦人了,在我吐出某种PHP为我做这个之前,我想知道是否有一些my.cnf条目在第一次错误时不会杀死奴隶.
干杯,
/ MP
停止奴隶; set global sql_slave_skip_counter = 1; 开始奴隶;
您只能忽略当前错误并继续复制过程.
是的,在my.cnf中使用--slave-skip-errors = xxx,其中xxx是'all'或逗号sep错误代码列表.