V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hydrazt
V2EX  ›  程序员

Mysql Slave 服务器 crash 后出现 duplicate key error

  •  
  •   hydrazt · 2015-05-21 11:51:05 +08:00 · 2106 次点击
    这是一个创建于 3263 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Mysql Slave 服务器内存较小,没有swap分区,跑一些比较重的程序时,Mysql申请不到内存,就直接shutdown了。
    重启后,有时会出现 duplicate key error, Slave也就停止同步了。

    google 后的方案无非时 skip_error_count = 1 或者 skip duplicate error。
    都不太满意,v2er有没有其他解决方案?
    8 条回复    2015-05-22 17:22:36 +08:00
    yanze0613
        1
    yanze0613  
       2015-05-21 16:03:58 +08:00
    用innodbbackup 直接重建,因为跳过这个错误,以后也会遇到数据不一致问题
    hydrazt
        2
    hydrazt  
    OP
       2015-05-21 17:25:18 +08:00
    @yanze0613 目前是这么操作的。
    但是有没有办法,即使mysql crash 也不出现这种问题?
    可以容忍性能上的损失
    yanze0613
        3
    yanze0613  
       2015-05-22 12:00:06 +08:00
    @hydrazt 如果环境允许,可以试验使用基于GTID的复制模式,因为在基于row的复制和基于语句的复制,好像都会遇到duplicate key error这个问题
    julyclyde
        4
    julyclyde  
       2015-05-22 12:12:30 +08:00
    @yanze0613 lz显然用的不是innodb啊
    hydrazt
        5
    hydrazt  
    OP
       2015-05-22 16:54:46 +08:00
    @yanze0613 @julyclyde 还是给系统加swap吧,主要是把服务器的配置压的太低,提高配置也是一个方案啦
    julyclyde
        6
    julyclyde  
       2015-05-22 17:04:49 +08:00
    InnoDB才是终极解决方案
    MyISAM的代码质量貌似很差
    hydrazt
        7
    hydrazt  
    OP
       2015-05-22 17:21:28 +08:00
    @julyclyde
    目前
    select 600次/s
    insert 300次/s
    yanze0613
        8
    yanze0613  
       2015-05-22 17:22:36 +08:00
    @hydrazt 堆硬件是究极方案,很多问题,只要堆硬件,都能解决
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2732 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:29 · PVG 10:29 · LAX 19:29 · JFK 22:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.