OGG用于跨云RDS for MySQL之间配置双主实时同步--OGG远程捕获和投递

0    1074    11

👉 本文共约1902个字,系统预计阅读时间或需8分钟。

问题引出

客户需要将华为云rds for MySQL和天翼云rds for MySQL做一个双向同步,当华为云rds宕机的时候,可以切换到天翼云继续提供服务,而且此时,天翼云的数据也可以自动同步到华为云rds,平时只使用华为云的rds,和双A方案有点差异,需要注意的是rds环境不能安装任何的软件,所以,我目前想到的方案有:

1、用MySQL自带的主从复制。这个方案最简单,但是不可行,因为华为云和天翼云都禁用了super权限,在执行change master的时候会报权限不足的错误,“ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation”。

2、使用华为云或天翼云自带的数据同步功能。这个也不可行,翻阅了一下文档,同步只能全量+增量同步,这对于双向同步来说不可行。

3、使用ogg远程捕获投递。ogg for MySQL从MySQL 5.7和ogg 19c开始支持远程捕获(Remote Capture)和远程投递(Remote Delivery),所以配置双向同步,该方案经过验证也是可行的!

4、使用阿里的开源工具otter,这个方案经过验证是可行的。阿里数据同步工具Otter和Canal简介请参考:https://www.xmmup.com/alishujutongbugongjuotterhecanaljianjie.html

otter和ogg优缺点

1、otter不能同步无主键的表(会导致同步任务停止),而ogg可以

2、otter可以单向同步ddl语句,而ogg对于MySQL 5.7不可以(5.7需要安装插件),ogg对MySQL 8.0支持DDL同步

3、otter有图形界面操作,OGG只有命令行操作,但是ogg的微服务也可以全程图形化

ogg for MySQL简介

ogg19c开始支持 mysql >=5.7 远程捕获和投递,但是不支持远程捕获DDL语句。

从OGG 21C开始,对于mysql 8.0,开始支持远程捕获DDL语句。

  • 官方文档:

https://docs.oracle.com/en/middleware/goldengate/core/21.3/index.html

https://docs.oracle.com/en/middleware/goldengate/core/21.3/gghdb/understanding-whats-supported-mysql.html

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
  • 完整的新功能列表可参考:

https://docs.oracle.com/en/middleware/goldengate/core/21.3/release-notes/whats-new-this-release.html

  • 下载:

https://www.oracle.com/middleware/technologies/goldengate-downloads.html

OGG用于跨云RDS for MySQL之间配置双主实时同步--OGG远程捕获和投递

下载后,校验md5值:

安装:

配置双向同步

OGG用于跨云RDS for MySQL之间配置双主实时同步--OGG远程捕获和投递

注意以下问题:

1、双向同步需要配置2条链路。

2、为了避免数据回环错误,需要在extract参数中加入如下内容,且必须使用checkpoint表:

配置华为云到天翼云

配置天翼云到华为云

经过验证,双向同步正常!

压测

华为云到天翼云rds

在OGG检查:

可以看到,正常同步,观察延迟Lag at Chkpt不超过1分钟。

天翼云到华为云rds

在OGG检查:

可以看到,正常同步,观察延迟Lag at Chkpt不超过1分钟。

扩展

当然,也可以使用如下的架构,需要添加Pump进程,但是我感觉没有必要,除非是源端和目标端距离非常远,一个在国内,一个在国外:

OGG用于跨云RDS for MySQL之间配置双主实时同步--OGG远程捕获和投递

其他有关更多OGG的内容,请联系麦老师。

    头像

    小麦苗

    学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

    您可能还喜欢...

    发表评论

    您的电子邮箱地址不会被公开。

    19 − 16 =

     

    嘿,我是小麦,需要帮助随时找我哦
    • 18509239930
    • 个人微信

    • 麦老师QQ聊天
    • 个人邮箱
    • 点击加入QQ群
    • 个人微店

    • 回到顶部
    返回顶部