使用ogg同步mysql数据库遇到的几个问题

系统环境

在阿里云ECS自建mysql5.6.46+ogg19.1

同步架构

问题描述

使用ogg遇到几下两类问题
一、安装问题
1、ogg19.1正常情况下解压到某个目录,进行create subdirs即可,但是更改安装目录或删除原目录并重新安装到其他目录,执行 ./ggsci报错
二、使用问题
使用ogg抽取、投递、复制遇到以下几个问题
1、通过ogg无法从mysql中抽取变化的数据(insert,update),但抽取进行是正常的遇到,通过stats extract 抽取进程名,显示no active extraction maps
2、ogg的投递正常无法获取抽取到的数据并进行正常投递
3、ogg的复制进程无法应用超大事务

解决思路与方法

一、安装问题
二、使用问题
1、抽取进程问题排查思路
步骤1、抽取进程是正常的,说明抽取进程的配置参数没有问题,已经在ECS上部署多套,其他都能正常抽取。
这里能确认ogg的版本和抽取进程参数配置文件是没有问题
步骤2、数据库配置是否正常
这里的数据库版本和my.cnf都应该是一样的(画外音,my.cnf之前修改过),后面还是找不到原因,而其他几台都没有问题,最后查看/etc/my.cnf发现里面有binlog_do_db参数时,才反映过来之前在该库上配置了同步
解决方法
1、在该库执行reset master
2、注释掉binlog_do_db参数
3、重起数据库
说明:在该库上执行reset master时,是已经确认不需要与其他库是同步操作并且属于测试环境,通过上的操作后,抽取进程能正常抽取到变化的数据(insert,update)

2、投递进程问题排查思路
本来以为这不会是一个问题,因为上一次抽取问题解决了,投递进程应该没有问题才对,抽取与投递进程在一台机器上,但问题还是出现了。
步骤1、确认投递进程的参数文件配置没有问题
步骤2、确认目标端的manager正常运行
上面两步都确认了,没有问题,但另一个ECS上的投递进程能正常将数据投递到目标端,那

3、复制进程问题排查思路
在源端执行insert into b select * from a语句,第一次执行时a表有300多万条记录,目标端正常复制完成,而第二次执行时a表700多万,但目标端正常复制失败

总结

1、实施之前做好规划与文档,可以避免安装问题与使用问题2的发生
2、对实施的环境做到心中有数,特别是自己部署的环境,有什么改动一定要有记录,可以避免问题1的发生
3、对于大事务的执行,可以从应用上拆分成多个小事务才执行,可以解决使用问题3的发生。

猜你喜欢

转载自blog.csdn.net/weixin_41561946/article/details/108111983
今日推荐