本文介绍如何通过任务编排实现周期性地将MySQL InnoDB表中的历史数据迁移至MySQL X-Engine表,实现低成本的RDS X-Engine存储方案。
前提条件
- 源库为RDS MySQL InnoDB数据库。
- 目标库为RDS MySQL X-Engine数据库,创建方法请参见创建RDS MySQL实例。
- 管控模式均为安全协同。
- 源库和目标库均已开启跨库查询,开启方法请参见编辑实例。
说明 本案例中RDS MySQL InnoDB引擎对应的DBLink名称为dblink_src_rds,RDS MySQL X-Engine引擎对应的DBLink名字为dblink_target_rds。
背景信息
为解决企业随着业务的发展,数据库存储膨胀而导致存储成本急剧上升、数据库性能出现下降等问题,阿里云推出基于X-Engine存储引擎的低成本存储方案。通过将现有MySQL
InnoDB表中的历史数据迁移至MySQL X-Engine引擎上,仅保留最近的热数据的方式,可降低企业存储成本,提高数据库安全及可用性。
说明 X-Engine是阿里云自研的OLTP数据库存储引擎,已经广泛应用在阿里集团内部诸多业务系统中,包括交易历史库、钉钉历史库等核心应用,大幅缩减了业务成本,同时也作为双十一大促的关键数据库技术,挺过了数百倍平时流量的冲击。X-Engine的性能与InnoDB存储引擎相似,但是存储成本远低于InnoDB,因此拥有极高的性价比。更多信息请参见X-Engine简介。
流程如下图所示:

您可以使用DMS的任务编排功能实现历史数据定期、自动地迁移到X-Engine上,降低人工操作的成本。
本文将介绍在DMS任务编排中,创建可周期性地(每天)将MySQL InnoDB表中的历史数据(一个月前)迁移至MySQL X-Engine表上,然后对InnoDB表进行历史数据清理和表空间优化的任务流。随着任务流的周期运行,MySQL InnoDB表中将只保留最近一个月的数据,而大量历史数据则保存至低成本的X-Engine引擎上。
创建任务流
创建任务节点
本章节将介绍在Rds_innodb_to_X-Engine任务流中创建4个任务节点:
- 创建X-Engine表:创建数据转储的目标表。
- 历史数据迁移:利用DSQL跨库查询的能力将InnoDB表的数据迁移至X-Engine表上。
- 删除InnoDB表的历史数据:删除InnoDB表中已迁移的数据。
- 优化InnoDB表:历史数据删除后,可通过OPTIMIZE命令对InnoDB表空间进行优化,以节省存储空间。
在文档使用中是否遇到以下问题
更多建议
匿名提交