首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL二进制日志复制:可以将其设置为忽略错误吗?

问MySQL二进制日志复制:可以将其设置为忽略错误吗?
EN

Stack Overflow用户
提问于 2008-08-27 17:11:09
回答 6查看 18.9K关注 0票数 12

我正在运行一个主从MySQL二进制日志复制系统(phew!)对于某些数据来说,这是不同步的(也就是说,主数据比从数据多)。但是,在最轻微的MySQL错误上,从站经常停止,这能被禁用吗?(可能是复制从服务器的my.cnf设置-忽略--复制-错误或某些排序;)

这就是经常发生的事情,当奴隶试图复制一个不存在的物品时,奴隶就会死掉。快速检查显示从状态\G;给出

代码语言:javascript
复制
       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 )'

一旦我意识到奴隶已经被阻止了,我就立即修复这个问题,方法如下:

代码语言:javascript
复制
STOP SLAVE;
RESET SLAVE;
START SLAVE;

..。最近,这有点令人厌烦,在我说出一些为我做这件事的PHP之前,我想知道是否有一些my.cnf条目不会在第一个错误时杀死奴隶。

干杯,

/mp

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-08-27 18:58:09

是的,在my.cnf中,带有--从-跳过的错误= xxx,其中xxx是'all‘或一个逗号sep列表中的错误代码。

票数 12
EN

Stack Overflow用户

发布于 2009-07-29 15:30:36

停止从;设置全局sql_slave_skip_counter=1;启动从;

您只能忽略当前错误并继续复制过程。

票数 15
EN

Stack Overflow用户

发布于 2008-08-27 17:41:40

首先,您真的想忽略错误吗?如果您得到一个错误,很可能数据不再同步。也许您想要的是删除从数据库,并在收到错误时重新启动同步进程。

第二,我认为当您复制一个不存在的项时(这意味着什么?)--看起来您正在复制一个已经存在于从数据库中的项。

我怀疑这个问题主要是因为没有从一个干净的数据副本开始。似乎主人已经被复制到奴隶;然后复制被关闭(或者失败);然后它又重新启动,但是没有给奴隶一个机会去追赶它错过的东西。

如果您有一段时间可以关闭主程序以进行写入访问,以便克隆数据库并将其导入从服务器,则可能会解决这些问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档