前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次innobackupex导致的从库无法同步的问题

记一次innobackupex导致的从库无法同步的问题

作者头像
bsbforever
发布2020-08-19 15:52:51
4620
发布2020-08-19 15:52:51
举报
文章被收录于专栏:时悦的学习笔记

1. 现象

一套MySQL主从复制出现异常

start slave 时报错

代码语言:javascript
复制
 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000077' position 1027952423.  

2. 原因查找

2.1 查看error日志

首先我们查看error日志

发现如下报错

代码语言:javascript
复制
[ERROR] Slave SQL for channel '': Could not execute Write_rows event on 
table safe.safelog; Duplicate entry '6101370' for key 'PRIMARY', 
Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's 
master log mysql-bin.000077, end_log_pos 1027953607, Error_code: 1062

可以看到报错原因为主键冲突

2.2 查看复制状态

我们执行

代码语言:javascript
复制
show slave status\G
1.png
1.png

可以看出是同样的报错

2.3 继续分析

一般这种情况是从库没有设置只读,检查过已经设置为只读

同时确认了该重复值在开始复制前就已存在,所以可能为复制的起始点错误导致

备份主库时一般使用mysqldump命令 加上--master-data参数可得到起始点

该主从使用的是innobackupex 工具

备份

代码语言:javascript
复制
innobackupex --parallel=16 --throttle=4000  --user=root --password=XXXX --slave-info    /data/

还原

代码语言:javascript
复制
innobackupex  --defaults-file=/etc/my.cnf    --apply-log     /data/2019-01-24_13-56-05

innobackupex  --defaults-file=/etc/my.cnf    --copy-back    /data/2019-01-24_13-56-05

使用的复制起始点是 xtrabackup_binlog_pos_innodb 文件的内容

代码语言:javascript
复制
cat  xtrabackup_binlog_pos_innodb

mysql-bin.000077        1027950562

一切看起来都设正常的,问题出在哪里呢

3. 问题解决

上面获取复制点的 xtrabackup_binlog_pos_innodb 文件引起了注意

一般我们用的xtrabackup_binlog_info 这个文件

这2个文件有什么区别呢

xtrabackup_binlog_pos_innodb 只记录innodb引擎的变化,而不会记录其他的引擎

接下来我们查询这2个文件的信息是否相同

最后发现xtrabackup_binlog_info的值要略大于xtrabackup_binlog_pos_innodb的值

这时原因找到了 是由于该数据库同时还有MyISAM引擎的表导致这2个文件的值不相同

最后我们使用xtrabackup_binlog_info里面的值,复制正常

5. 参考链接

https://blog.51cto.com/jschu/1704848

https://www.percona.com/doc/percona-xtrabackup/2.3/howtos/setting_up_replication.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 现象
  • 2. 原因查找
    • 2.1 查看error日志
      • 2.2 查看复制状态
        • 2.3 继续分析
        • 3. 问题解决
        • 5. 参考链接
        相关产品与服务
        云数据库 MySQL
        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档