您可以将存储引擎为X-Engine的RDS MySQL一键升级至PolarDB MySQL版,其采用了一键升级功能的逻辑迁移方式。本文汇总了该场景下的注意事项、前提条件、迁移步骤、费用说明等相关内容。
前提条件
本迁移方案为一键升级功能的逻辑迁移方式,源RDS MySQL实例无版本限制。
如果源RDS MySQL实例创建了触发器,请先删除RDS的触发器,再单击继续迁移,或者单击取消迁移后手动去DTS控制台页面创建迁移任务。具体可参见源库存在触发器时如何配置同步作业。
如果RDS处于高安全模式(数据库代理模式),需要创建有高权限账号(请参见创建账号),或者切换到高性能模式(参见【产品/功能变更】RDS网络链路升级说明),才能进行一键升级。
使用限制
仅支持将RDS MySQL一键升级至相同版本或更高版本的PolarDB MySQL版,不支持降版本升级。如不支持从RDS MySQL 5.7一键升级至PolarDB MySQL版 5.6,不支持从RDS MySQL 8.0.2一键升级至PolarDB MySQL版 8.0.1。
带地址切换中,当前不支持IPv6地址的带地址切换。
暂不支持跨地域迁移。
迁移期间不允许对源RDS实例执行参数设置的操作。
仅支持迁移库、表、视图、存储过程、函数这五类结构。
对源库有如下限制:
类型
说明
源库限制
待同步的表需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标数据库中出现重复数据。
如同步对象为表级别,且需进行编辑(如表列名映射),则单次同步任务仅支持同步至多1000张表。当超出数量限制,任务提交后会显示请求报错,此时建议您拆分待同步的表,分批配置多个任务,或者配置整库的同步任务。
Binlog日志:
需开启Binlog,开启方法请参见设置实例参数,并且binlog_row_image为full。否则预检查阶段提示报错,且无法成功启动数据同步任务。
如为增量同步任务,DTS要求源数据库的本地Binlog日志保存24小时以上,如为全量同步和增量同步任务,DTS要求源数据库的本地Binlog日志至少保留7天以上(您可在全量同步完成后将Binlog保存时间设置为24小时以上),否则DTS可能因无法获取Binlog而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的Binlog日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。如源为RDS MySQL,具体操作请参见管理本地日志(Binlog)。
注意事项
源RDS和目标PolarDB集群对应连接地址的SSL开启状态需保持一致:
如果源RDS的连接地址开启了SSL,并且您选择带地址切换并切换该地址,请确保PolarDB集群对应的连接地址已开启SSL。
如果源RDS的连接地址未开启SSL,则请确保目标PolarDB集群对应连接地址的SSL功能也保持关闭。
逻辑迁移过程中,全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。
逻辑迁移过程中,全量数据初始化时会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。
逻辑迁移过程中,请勿手动释放DTS任务。
全量数据同步需要一定时间,耗时与数据量大小有关,在此期间,目标端状态为创建中,请耐心等待。
费用说明
迁移费用
一键升级过程中,整个迁移过程不收取额外费用,仅收取目标PolarDB MySQL版集群的费用。
您可以在迁移过程中通过配置是否开启热备集群以及选择不同的存储类型来控制目标PolarDB MySQL版集群的成本。
示例:
假设源RDS MySQL实例为基础系列实例,且为包年包月集群,计算节点规格为2核8 GB,存储为ESSD PL1云盘500 GB。在进行一键迁移时,您可以选择同规格的PolarDB MySQL版企业版集群,存储类型选择PSL4,并关闭热备集群。
实例类型 | 实例规格 | 费用示例 (以中国内地地域为例) |
源RDS MySQL实例 | RDS MySQL基础系列 2核8 GB mysql.n4.medium.1 ESSD PL1云盘,500 GB | 总费用 = 计算节点费用 + 存储费用 = 190元/月 + 500元/月 = 690元/月 |
目标PolarDB MySQL版集群 | PolarDB MySQL版企业版 2核8 GB polar.mysql.g2.large.c PSL4,500 GB 关闭热备集群 | 总费用 = 计算节点费用 + 存储费用 = 280元/月 + 375元/月 = 655元/月 |
更多配置的价格对比,可使用下方的价格计算器或者在PolarDB售卖页配置后进行对比。
操作步骤
存储引擎为X-Engine的RDS MySQL实例一键升级到PolarDB MySQL版的操作步骤整体可参考一键升级操作步骤。但针对存储引擎为X-Engine的RDS MySQL实例,各个步骤中有如下特殊注意事项:
在进行步骤一:从RDS同步时:
目前仅PolarDB MySQL版企业版支持InnoDB & 高压缩引擎,因此在创建目标PolarDB MySQL版集群时,产品版本请选择企业版,存储引擎请选择InnoDB & 高压缩引擎,并配置高压缩引擎比例。
目标PolarDB集群PolarDB MySQL版集群建议选择按量付费。按量付费实例在迁移过程中不计费。
在进行步骤二:迁移切换时:
正向迁移同步时,源RDS MySQL实例的数据库同步到目标PolarDB集群时,都会被设置为X-Engine引擎。因此开始迁移后,请检查目标PolarDB集群的表引擎是否为X-Engine引擎。若为InnoDB,请提交工单联系我们处理。
迁移切换后到迁移结束前,PolarDB数据库将反向同步到源RDS MySQL实例,反向同步的表引擎与PolarDB数据库建表时一致。
目标PolarDB集群,建表默认使用Innodb引擎,而不是X-Engine。若您需要创建X-Engine引擎表,请在执行DDL时指定引擎类型,即显式指定
engine=xengine
。您可以在PolarDB控制台修改参数
default_storage_engine
=xengine
,从而将建表的默认引擎设置为X-Engine。说明修改该参数后,需要重启集群内的所有节点,新的参数值才会生效。重启前,请提前做好业务安排,谨慎操作。
迁移后申请转单优惠退款
对于包年包月的RDS MySQL X-Engine存储引擎的实例,从RDS MySQL迁移到PolarDB完成后,若确定业务已在PolarDB上稳定运行且不再需要RDS时,您可以申请转单优惠退款,避免浪费闲置的RDS资源,详情请参见包年包月RDS迁移至PolarDB后申请转单优惠退款。