背景
应用场景
Portal控制中心迁移
迁移步骤:Oracle数据迁移到MySQL;
前端只读SPA页面上线;
MySQL数据实时同步到Oracle,
老Portal控制中心相关Oracle表锁写
前端可写SPA页面(开发)上线;
Portal老页面下线;
完成控制中心模块的迁移,MySQL->Oracle实时同步直至老Portal所有读控制中心相关Oracle数据表接口下线所有。
在此次迁移过程中需==要一段时间内将MySQL数据实时同步到Oracle==来保证==新旧模块并行==直至旧模块全部下线。
需求指定数据表迁移
支持字段的增删
支持字段的大小写转换
不停机同步
数据流方向:MySQL -> Oracle
工具选型
yugong暂时不支持MySQL数据源,基于异构数据库迁移的工具选型分析,采用otter进行MySQL->Oracle的数据同步。
探究otter
定位:基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。
功能异构库同步
单机房同步数据库版本升级
数据表迁移
异步二级索引
异地机房同步机房容灾
双向同步避免回环算法
数据一致性算法 (保证双A机房模式下,数据保证最终一致性)
文件同步站点镜像 (进行数据复制的同时,复制关联的图片,比如复制产品数据,同时复制产品图片).
原理
原理描述基于Canal开源产品,获取数据库增量日志数据。Canal[kə’næl]?
典型管理系统架构,manager(web管理)+node(工作节点)manager运行时推送同步配置到node节点
node节点将同步状态反馈到manager上
基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.
Canal简介
基于数据库增量日志解析,提供增量数据订阅&消费,目前开源版本支持5.7及以下mysql