一点关于MySQL参数delay_key_write、myisam_recover_options的使用经验

在迁移MyISAM表时遇到表损坏问题,原因是配置了`delay_key_write=ON`和`myisam_recover_options=default`。这可能导致数据不一致,因为修复尝试依赖key cache,而新环境无旧现场。解决方案是保持参数设置与源环境一致或谨慎使用`myisam_recover_options`以避免数据丢失。
摘要由CSDN通过智能技术生成
        最近在做数据库实例迁移的时候遇到了几个比较诡异的问题:
  1. MyISAM实例正常shutdown后rsync数据文件到另外一台机器上起实例后,访问表时提示表自动修复失败需要repair table。提示信息:Table './test/record_03' is marked as crashed and last (automatic?) repair failed
  2. 表损坏后,利用repair table命令将表修复时提示表里存在很多的duplicate key.
     warning  : Duplicate key for record at 129584986 against record at 62008769
     warning  : Duplicate key for record at 104678355 against record at 61426294
     warning  : Duplicate key for record at 297493788 against record at 61697778
     warning  : Duplicate key for record at 209950328 against record at 61548867
     warning  : Duplicate key for record at 105894968 against record at 61866949
...
...
补充一下当时的环境信息:
1.MySQL版本为官方版的5.5.12,表引擎是MyISAM
2.迁移的步骤:stop slave->flush tables->正常shutdown实例->rsync表文件->在新机器上起实例。rsync前后表文件MD5值一样。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值