免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6634 | 回复: 5
打印 上一主题 下一主题

mysql 双向同步执行reset slave命令后出现数据错乱的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-28 13:41 |只看该作者 |倒序浏览
如题,在mysql双向同步中使用了 reset slave 出现了问题了
具体情况如下

A 机和 B机 做的双向同步
A机 重启后 同步便连不上了
stop slave ;正常
start slave ;就出错 ,提示Could not initialize master info structure; more error messages can be found in the MySQL error log
找了下 说是 删掉 master.info  和 relay-log.info 这俩文件就好了
遂尝试 删掉这俩文件 ,然后再 stop slave ;start slave 同步是可以了,可是 同步的数据 混乱了,他把以前已经执行过的更新又给执行了一遍。这样的更新在添加和修改记录上面体现不出问题。但是在那种 set 字段= 字段 +100 这样的句子下面就出现问题,比如说 本该 +100 的 他会不停的 +100 导致数据出错

再一个问题 就是A机重启了 ,不用删掉master.info 这些文件,执行 stop slave;reset slave;start slave;命令后,也出现那种 累加的情况

但是在B机上 却没有这种情况,B机的情况是 是 执行 reset 命令后 系统 就找不到日志了 必须手动 change master to 指定一下日志才行 数据倒不会有问题。

两个机器的 my.cnf 配置是一样的,所以不知道问题在哪里了。哪位有这方面处理经验的帮忙看一下了。

论坛徽章:
0
2 [报告]
发表于 2009-11-29 14:15 |只看该作者
"start slave 同步是可以了,可是 同步的数据 混乱了" -- 要先change master到执行完的同步点上
"reset slave;start slave;命令后,也出现那种 累加的情况" --  reset后还能恢复同步?把同步帐户不设成默认的就好了

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
3 [报告]
发表于 2009-11-29 20:48 |只看该作者
希望有MYSQL DBA高手来解决问题!

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
4 [报告]
发表于 2009-11-30 09:49 |只看该作者
首先,删除master.info和reset slave的作用是一样的。都是把同步的位置信息归0。因此,当你start salve的时候,自然会把它所能找到的binlog都重新同步一遍。mysql-replication默认在重启数据库时不需要人为干预,下一次数据库启动时,它会自动读取master.info的内容,从上次同步的结束位置继续同步。
接下来解决,为什么你B机器会报“Could not initialize master info structure; more error messages can be found in the MySQL error log ” 我猜测可能是你服务器非正常关机,或者关机前没有先关数据库,导致master.info的内容错乱。

我的建议是:
1. 重启机器前,先保证数据库已经关闭。
2. 任何情况下,我都不推荐reset slave。这样会丢失同步的历史信息。

论坛徽章:
0
5 [报告]
发表于 2010-01-14 14:41 |只看该作者
模拟的环境就是 非正常重启
比如 我正在访问我的网站 突然 机房断电了 这样的情况下 重启 就报错了

正常重启是没有问题的

另外在虚拟机上面 我直接 关掉虚拟就 再启动虚拟机 也是没有问题的  
最怕断电。。。

论坛徽章:
0
6 [报告]
发表于 2010-01-14 14:44 |只看该作者
另外找了 heartbeat   这个 心跳测试的方案 和 mmm 这个软件的同步方案 都需要用到 虚拟ip,但是 如果 我的mysql 两台服务器在不同的机房,则虚拟ip用不了 很是郁闷
最后一种解决方案 mysql-cluster 从网站下 下载了 这个 但是安装老出问题。。。(系统是centos  之前老版本的mysql 是 yum方式安装的)很是郁闷啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP