RDS-DRS-DWS数据复制链路优化方案比对

举报
可乐鸡翅 发表于 2021/06/24 11:57:12 2021/06/24
【摘要】 背景介绍• 随着业务的发展,RDS的负载在逐渐增长,同时还会有新的RDS到DWS的表级同步链路需求• 随着链路数量的增加,RDS上的资源在数据同步上消耗越来越大• 为了提高系统的可靠性,建议采用增加中间库方案来优化数据复制链路方案一:通过主库实现表级同步方案解释:• 表级同步的全量同步和增量同步都是从RDS生产库上获取数据• 同步的全量阶段,对源端RDS生产库上有一定压力,可在业务低峰期实施...

背景介绍

随着业务的发展,RDS的负载在逐渐增长,同时还会有新的RDSDWS的表级同步链路需求
随着链路数量的增加,RDS上的资源在数据同步上消耗越来越大
为了提高系统的可靠性,建议采用增加中间库方案来优化数据复制链路

方案一:通过主库实现表级同步

方案解释:

• 表级同步的全量同步和增量同步都是从RDS生产库上获取数据
• 同步的全量阶段,对源端RDS生产库上有一定压力,可在业务低峰期实施

优势:

• 无需额外的RDS实例和DRS链路,成本较低
• 生产库有HA机制,如果主库挂了,备库承接同步任务的源端角色,保证了同步链路的可靠性
• 执行online ddl时,数据同步没有时延

劣势:

• 全量阶段或者同步任务较多时,对生产库有一定压力


方案二:通过备库全量主库增量实现表级同步

方案解释:

• 表级同步的全量同步从生产备库实例,增量同步从RDS生产库主实例获取数据

优势:

• 无需额外的RDS实例和DRS链路,成本较低执行online ddl时,数据同步没有时延

劣势:

• 对于生产主库的可靠性有影响


方案三:通过中间库实现表级同步

方案解释:

• 创建一个RDS中间库,利用DRS的在线迁移能力,一次性从RDS生产库获取全量数据,并实时从RDS生产库同步增量数据
• 所有到DWS的表级同步任务,都从RDS中间库实施全量+增量同步

优势:

• 所有表级同步任务都从RDS中间库抽取数据,对RDS生产库没有任何影响
• 满足一定条件,从RDS生产库到DWS的无时延
• DRS在线迁移阶段有限流能力,所以全量迁移阶段对RDS生产库影响较小

劣势:

• 增加了一个DRS在线迁移任务和一个RDS中间库(主备),成本增加
• 如果在RDS生产库上做online DDL会导致RDS中间库的时延较大


方案四:通过只读节点实现表级同步

方案解释:

• 在RDS生产库上创建一个只读实例,在RDS生产库只读实例上打开log_slave_update参数
• 所有到DWS的表级同步任务,都从RDS生产库只读上实施全量+增量同步

优势:

• 所有表级同步任务都从RDS生产库只读上抽取数据,对RDS生产库没有任何影响

劣势:

• 增加了一个RDS生产库只读(单机),成本增加
• 只读节点挂掉,需要修复只读节点,并重试任务,影响表级同步链路的可靠性
• 需要在只读节点上后台修改log_slave_update参数,属于非标操作
• 如果在RDS生产库上做online DDL会导致RDS生产库只读的时延较大

logo.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。