Chinaunix首页 | 论坛 | 博客
  • 博客访问: 858413
  • 博文数量: 189
  • 博客积分: 2267
  • 博客等级: 大尉
  • 技术积分: 1917
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-01 11:17
文章分类

全部博文(189)

文章存档

2016年(16)

2015年(16)

2014年(12)

2013年(32)

2012年(45)

2011年(68)

分类: Mysql/postgreSQL

2013-07-03 10:05:51

最近几天数据库同步不是很稳定,之前使用 stop  change start 三步就可以解决此问题了,今天早上稍稍有点麻烦,以下是过程,希望能帮到正在看的你。

主从同步首先是报的这个错
Last_Error: Error 'Duplicate entry '237-1' for key 'userid'' on query. Default database: 'ndsDB'. Query: 'insert into t_user_token(userid,token,client_tag) 
VALUES(237, 'e563f1e4-471a-4f57-ba04-5a29a0464826','1')'

因为最近更新过一个事件的脚步,所以我联系开发人员帮我看看是不是由于更新脚步导致的,得知:“此错误是由于主库产生token后,从库同步过去,用户异常退出主库记录删除,从库还未删除记录,用户再次登录造成记录重复报错

使用之前的步骤尝试恢复
主库查看
mysql> show master status; 
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000151 | 69750947 |              | mysql            |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
从库操作
mysql> slave stop;
mysql> change master to master_host='10.10.10.11', master_user='user', master_password='passwd', master_log_file='mysql-bin.000151', master_log_pos=69750947;
mysql> slave start;
mysql> SHOW SLAVE STATUS\G

并没有向之前一样直接恢复,报一下错
Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master'

接下来走了点弯路,直接查找error 1236
http://www.linuxidc.com/Linux/2012-02/54729.htm

折腾了半天发现不是这个问题啊。症状不一样,应该是主库 max_allowed_packet 
设置太小
有两种方法:
1. 在主库的/etc/my.cnf 下设置,需要重启mysql服务
[mysqld]
max_allowed_packet = 32M
2. 在线设置,不需要重启服务
mysql> set global max_allowed_packet = 33554432;                
 (这里要注意一下,不能直接设置为32M,会报错error,也不是一定要设置为“2*1024*1024*10”   http://blog.sina.com.cn/s/blog_56d8ea9001012un7.html


接下来执行
mysql> slave stop;
mysql> change master to master_host='10.10.10.11', master_user='user', master_password='passwd', master_log_file='mysql-bin.000151', master_log_pos=69750947;
mysql> slave start;
mysql> SHOW SLAVE STATUS\G









阅读(1925) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册