首页 > 科技 >

手把手教你如何不停机将海量数据从DB2全量数据迁移到MySQL

2018-08-21 19:28:57 网络整理 阅读:189 评论:0

本文和大家分享苏宁易购分布式数据库迁移及数据规整的一次成功实践,特有双库方案,利用 CDC+RDRS+MyCat 协同方式实现数据迁移。

手把手教你如何不停机将海量数据从DB2全量数据迁移到MySQL

背景

苏宁易购某原子服务系统,因历史原因,使用的是 DB2 数据库。当时的设计:业务表分 2 个库、100 分表模式。如图:

手把手教你如何不停机将海量数据从DB2全量数据迁移到MySQL

数据库示意图

随着业务的发展,该系统数据量由百万级到千万级,再到亿级别,单个分表的数据量已经达到百万级。这样的数据库分表策略已经难以满足业务发展的需求。

此外,作为典型的收费数据库,DB2 的使用成本和维护成本,随着数据量的增加,也是十分高昂的。

对此,系统面临两个紧迫的诉求:使用 MySQL 数据库替换 DB2数据库横向扩展

该系统作为核心的原子服务系统,是要做到 7*24 小时无间断运行的,因此我们要做到不停机的迁移和扩展。这是数据迁移的前提条件。

常规双库方案

要使用 MySQL 数据库替换 DB2,且服务不中断,则需保证业务系统一段时间内,同时支持新、老数据库操作。

最简单的做法是同时配置两种数据库连接,业务代码判断、控制走 DB2 还是 MySQL 库。我们可以在代码中增加路由模块,根据路由关键字判断使用 DB2 数据库的连接,还是使用 MySQL 数据库连接。如图示:

手把手教你如何不停机将海量数据从DB2全量数据迁移到MySQL

代码实现双库切换

相关文章