我正在运行一个主从MySQL二进制日志复制系统(phew!)对于某些数据来说,这是不同步的(也就是说,主数据比从数据多)。但是,在最轻微的MySQL错误上,从站经常停止,这能被禁用吗?(可能是复制从服务器的my.cnf设置-忽略--复制-错误或某些排序;)
这就是经常发生的事情,当奴隶试图复制一个不存在的物品时,奴隶就会死掉。快速检查显示从状态\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
发布于 2008-08-27 18:58:09
是的,在my.cnf中,带有--从-跳过的错误= xxx,其中xxx是'all‘或一个逗号sep列表中的错误代码。
发布于 2009-07-29 15:30:36
停止从;设置全局sql_slave_skip_counter=1;启动从;
您只能忽略当前错误并继续复制过程。
发布于 2008-08-27 17:41:40
首先,您真的想忽略错误吗?如果您得到一个错误,很可能数据不再同步。也许您想要的是删除从数据库,并在收到错误时重新启动同步进程。
第二,我认为当您复制一个不存在的项时(这意味着什么?)--看起来您正在复制一个已经存在于从数据库中的项。
我怀疑这个问题主要是因为没有从一个干净的数据副本开始。似乎主人已经被复制到奴隶;然后复制被关闭(或者失败);然后它又重新启动,但是没有给奴隶一个机会去追赶它错过的东西。
如果您有一段时间可以关闭主程序以进行写入访问,以便克隆数据库并将其导入从服务器,则可能会解决这些问题。
https://stackoverflow.com/questions/30660
复制相似问题