本章节介绍了一键克隆RDS MySQL至PolarDB MySQL引擎的方案简介、两种克隆方式及其优势和对比、克隆前提条件、使用限制、收费规则等。
注意事项
通过一键克隆方式迁移到PolarDB集群,源RDS实例的增量数据不会同步到PolarDB集群。
方案概述
PolarDB支持从RDS MySQL一键克隆数据至新的PolarDB MySQL引擎集群。一键克隆功能将会新建一个与源RDS实例的数据相同的PolarDB集群,PolarDB集群包含源RDS实例的账号、数据库、IP白名单和必要的参数。
当前支持一键克隆的源RDS MySQL的版本和存储类型,以及目标PolarDB MySQL引擎的版本情况如下:
- 支持源RDS MySQL所有版本以及所有存储类型实例的迁移。不管是RDS MySQL 5.6、5.7还是8.0,本地SSD盘还是云盘存储,都支持一键克隆至PolarDB MySQL引擎。
说明 当前仅RDS MySQL高可用版系列支持一键克隆至PolarDB MySQL引擎。
- 支持迁移RDS MySQL至相同或不同版本的PolarDB MySQL引擎。如支持RDS MySQL 5.6一键克隆至PolarDB MySQL引擎 5.6,也支持RDS MySQL 5.6克隆至PolarDB MySQL引擎 8.0。
物理迁移和逻辑迁移对比
当前的一键克隆功能支持通过物理迁移(物理复制)和逻辑迁移(DTS数据同步)两种方式实现。
- 物理迁移(物理复制)方式:通过物理复制的方式,从源RDS MySQL实例复制全量数据至创建的PolarDB MySQL引擎集群中。
- 逻辑迁移(DTS数据同步)方式:通过数据传输服务DTS,创建数据同步任务,将源RDS MySQL实例的库表结构和全量数据同步至创建的PolarDB MySQL引擎集群中。
物理迁移(物理复制)和逻辑迁移(DTS数据同步)方式有如下区别:
对比项 | 物理迁移(物理复制) | 逻辑迁移(DTS数据同步) |
---|---|---|
是否需要DTS工具 | 不需要 | 需要 |
是否支持迁移或同步增量数据 | 不支持 | 不支持 |
是否影响源RDS操作 | 不影响 | 不影响 |
源和目标的MySQL版本能否不同 | 仅支持5.6和5.7本地盘实例相同版本升级 | 支持相同版本和跨版本升级 |
升级后是否需要在PolarDB集群中创建数据库账户 | 不需要,升级后PolarDB集群包含源RDS实例的账号 | 不需要,升级后PolarDB集群包含源RDS实例的账号 |
是否支持新增库的迁移 | 不支持 | 不支持 |
此外,这两种方式所支持的MySQL版本和存储类型的具体对应关系如下:
迁移方式 | 源RDS MySQL实例版本和存储类型 | 目标PolarDB MySQL引擎集群版本 |
---|---|---|
物理迁移(物理复制) | RDS MySQL 5.6高可用版,且存储类型为本地SSD盘。 | 与RDS MySQL相同版本的PolarDB MySQL引擎集群。 |
RDS MySQL 5.7高可用版,且存储类型为本地SSD盘。 | ||
逻辑迁移(DTS数据同步) | RDS MySQL 5.6高可用版,且存储类型为本地SSD盘。 | 与RDS MySQL不同版本的PolarDB MySQL引擎集群。 |
RDS MySQL 5.7高可用版,且存储类型为云盘(ESSD PL1 云盘、ESSD PL2 云盘、ESSD PL3 云盘)。 |
|
|
RDS MySQL 8.0高可用版,且存储类型为云盘(ESSD PL1 云盘、ESSD PL2 云盘、ESSD PL3 云盘)。 | ||
RDS MySQL 8.0高可用版,且存储类型为本地SSD盘。 |
方案优势
- 克隆过程完全免费
- 克隆过程数据0丢失
前提条件
- 不管是通过物理迁移还是逻辑迁移方式进行一键克隆,源RDS实例版本需满足如下条件:
- 针对RDS MySQL 5.6,内核小版本需为20190815或以上版本。
- 针对RDS MySQL 5.7,内核小版本需为20200331或以上版本。
- 针对RDS MySQL 8.0高可用版,目前无内核小版本要求。
说明 您可以执行show variables like '%rds_release_date%';
命令查看源RDS实例的内核小版本。如果源RDS实例的内核小版本低于上述指定版本,您可以将内核小版本升级到最新版。关于如何升级内核小版本,请参见升级内核小版本。 - 源RDS实例未开启TDE和SSL。若已开启,您可以选择手动创建DTS数据迁移任务将源RDS迁移至PolarDB。更多详情,请参见RDS MySQL迁移至PolarDB MySQL。
- 源RDS实例的表存储引擎为InnoDB。
- 如果RDS处于高安全模式(数据库代理模式),需要创建有高权限账号(请参见创建账号),或者切换到高性能模式(参见【重要】RDS网络链路升级说明),才能进行一键克隆。
使用限制
- 物理迁移(物理复制)方式的使用限制如下:
- 暂不支持跨地域迁移。
- 迁移期间不允许对源RDS实例执行参数设置的操作。
- 逻辑迁移(DTS数据同步)方式的使用限制如下:
- 暂不支持跨地域迁移。
- 迁移期间不允许对源RDS实例执行参数设置的操作。
- 对源库有如下限制:
类型 说明 源库限制 - 待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
- 如同步对象为表级别,且需进行编辑(如表列名映射),则单次同步任务仅支持同步至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务。
- Binlog日志:需开启Binlog,开启方法请参见设置实例参数,并且binlog_row_image为full。否则预检查阶段提示报错,且无法成功启动数据同步任务。
- 其他限制:
类型 说明 其他限制 - 建议源和目标库版本保持一致,或者从低版本同步到高版本以保障兼容性。如为高版本同步至低版本,可能存在数据库兼容性问题。
- 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。
- 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。
- 如同步对象为单个或多个表(非整库),那么在数据同步时,勿对源库的同步对象使用gh-ost或pt-online-schema-change等类似工具执行在线DDL变更,否则会导致同步失败。
您可以使用数据管理DMS(Data Management Service)来执行在线DDL变更,请参见不锁表结构变更。
- 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。
- DTS默认同步到目标数据库中时会取消外键约束,因此源数据库的级联、删除等操作不会同步到目标数据库。
收费规则
- 物理迁移(物理复制)方式的收费规则如下:
- 从RDS迁移到PolarDB的操作完全免费,您只需承担购买PolarDB集群的费用。关于PolarDB集群的费用,详情请参见计费项概览。
- 对于包年包月的RDS实例,从RDS迁移到PolarDB完成后,若确定业务已在PolarDB上稳定运行且不再需要RDS时,您可以申请转单优惠退款,避免浪费闲置的RDS资源,详情请参见包年包月RDS迁移至PolarDB后申请转单优惠退款。
- 逻辑迁移(DTS数据同步)方式的收费规则如下:
您除了需承担购买PolarDB集群的费用之外,还需承担DTS所创建的同步任务产生的费用。但现阶段该功能处于试用阶段,创建的同步任务七天内不收取任何费用。具体如下:
迁移对象 费用 库表结构同步和全量数据同步 创建同步任务后,七天内不收取任何费用。 超过七天后,将会取消创建的同步任务。
说明- 您可以前往新版DTS同步任务的列表页面查看同步任务的剩余时间。
- 若您对同步任务的时间有更长的需求,请提交工单联系阿里云技术支持申请延长,但同步任务若超过10天,将收取费用。
接下来将为您介绍如何进行一键克隆RDS MySQL至PolarDB MySQL引擎。
前置检查:检查是否已创建PolarDB服务关联角色(仅限逻辑迁移)
在使用逻辑迁移(DTS数据同步)方式进行一键克隆前,请先检查当前阿里云账号下是否已创建PolarDB服务关联角色。具体步骤如下:
步骤一:从RDS克隆
本操作将创建一个与源RDS实例数据相同的PolarDB集群。
步骤二:查看数据同步任务详情(仅限逻辑迁移)
若您是通过逻辑迁移(DTS数据同步)方式进行一键克隆,请单击集群ID进入集群基本信息页,查看迁移状态。若遇到迁移报错(如预检查失败)或者其他异常状态(如复制延迟异常高)时,您可以前往对应的DTS数据同步任务的详情页,查看数据同步任务的具体信息。
常见问题
- Q:一键升级RDS MySQL至PolarDB MySQL引擎和一键克隆RDS MySQL至PolarDB MySQL引擎两者有什么区别?
A:两者间的区别如下表:
对比项 一键升级RDS MySQL至PolarDB MySQL引擎 一键克隆RDS MySQL至PolarDB MySQL引擎 是否支持迁移或同步增量数据 支持 不支持 是否影响源RDS操作 不影响 不影响 源和目标的MySQL版本能否不同 可以不同 可以不同 -
Q:从RDS克隆会影响源RDS实例吗?
A:不会影响源RDS实例的正常运行。
- Q:取消迁移会有什么影响?
A:取消迁移后,源RDS实例可以修改参数;PolarDB集群恢复可读可写,且数据不会释放。手动取消时可以选择是否关闭PolarDB集群的Binlog,自动取消时不会关闭。
相关API
API | 描述 |
---|---|
CreateDBCluster | 创建PolarDB集群。
说明 一键克隆时,参数CreationOption取值需要为CloneFromRDS。
|
后续步骤
请尽快将应用的数据库连接地址修改为PolarDB的地址,详情请参见申请集群地址和主地址。