PolarDB支持将RDS MySQL一键升级至PolarDB MySQL,升级后PolarDB集群包含源RDS实例的账号、数据库、IP白名单和必要的参数。
方案优势
- 可保留数据库原连接地址,无需应用程序修改任何连接配置即可切换至PolarDB。
- 无需DTS等数据迁移工具,仅需PolarDB控制台即可完成整个迁移流程。
- 迁移完全免费。
- 迁移过程数据0丢失。
- 支持增量迁移,停机时间小于10分钟。
- 支持在线热迁移,迁移过程仅闪断一次(即当业务从RDS切换至PolarDB时)。
- 支持回滚,迁移失败可以在10分钟内恢复。
- 从RDS迁移到PolarDB完成后,若确定业务已在PolarDB上稳定运行且不再需要RDS时,您可以申请RDS无责退款,避免浪费闲置的RDS资源,详情请参见从RDS迁移到PolarDB后可申请无责退款。
前提条件
- 源RDS实例版本需为RDS MySQL 5.6或5.7高可用版,且存储类型为本地SSD盘。
-
- 针对RDS MySQL 5.6,内核小版本需为20190130或以上版本。
- 针对RDS MySQL 5.7,内核小版本需为20200331或以上版本。
- 源RDS实例未开启TDE和SSL。
- 源RDS实例的表存储引擎为InnoDB。
- 如果RDS处于高安全模式(数据库代理模式),需要创建有高权限账号(请参见创建高权限账号),或者切换到高性能模式(参见【重要】RDS网络链路升级说明),才能进行一键升级。
带地址切换
一键升级RDS至PolarDB时支持带地址切换,系统会自动交换RDS和PolarDB上的连接地址,您无需在应用程序端修改任何配置即可自动连接到PolarDB。选择该切换方式后,RDS连接地址对应的PolarDB连接地址如下图所示。
使用带地址切换功能时,需注意以下几点:
- 带地址切换只会切换RDS和PolarDB的域名,Vswitch、Vip等配置不会切换。
- 仅当源RDS和目标PolarDB集群同时存在的连接地址才支持相互切换,默认情况下仅私网主地址支持带地址切换。
- 如需切换其他连接地址,您需在切换前创建好对应的连接地址,否则不会切换。关于如何为PolarDB集群和RDS实例创建连接地址,请参见新增自定义集群地址和设置连接地址。
- 带地址切换不会切换端口,请确保RDS和PolarDB的连接端口一致(PolarDB和RDS默认使用的端口号均为3306),如需修改端口,请参见修改内外网地址和端口(RDS)或修改连接地址和端口(PolarDB)。
- 切换域名后,可能会存在DNS解析缓存问题,在缓存过期时间内可能会出现连接不上数据库或数据库只支持读操作无法执行写入操作等情况,建议您刷新一下服务器的DNS缓存。
- 切换域名后,如果您需要使用DMS登录PolarDB数据库,必须使用新版本的DMS并且使用集群ID来进行登录,连接串无法登录。
功能限制
- 暂不支持跨地域迁移。
- 迁移期间不允许对源RDS实例执行参数设置的操作。
费用
- 从RDS迁移到PolarDB的操作完全免费,您只需承担购买PolarDB集群的费用。关于PolarDB集群的费用,详情请参见计费项概览。
- 从RDS迁移到PolarDB完成后,若确定业务已在PolarDB上稳定运行且不再需要RDS时,您可以申请RDS无责退款,避免浪费闲置的RDS资源,详情请参见从RDS迁移到PolarDB后可申请无责退款。
迁移流程介绍
步骤 | 说明 |
---|---|
1、从RDS迁移 | 本操作将创建一个与源RDS实例数据相同的PolarDB集群,源RDS实例的增量数据会实时同步到该PolarDB集群。 |
2、迁移切换 |
说明 迁移切换完成后,如果您发现数据存在异常等问题,可以执行
迁移回滚,快速恢复至迁移前的状态。 |
3、完成迁移 |
|
步骤一:从RDS迁移
本操作将创建一个与源RDS实例数据相同的PolarDB集群,源RDS实例的增量数据会实时同步到该PolarDB集群。
步骤二:迁移切换
步骤三:完成迁移
迁移回滚(可选)
在完成迁移前,如果您发现数据存在异常等问题,可以进行回滚操作,快速恢复至迁移前的状态(RDS实例为可读可写,PolarDB集群为只读,同时会将RDS实例的数据同步到PolarDB集群)。
迁移常见问题
- Q:一键升级RDS MySQL至PolarDB MySQL、一键克隆RDS MySQL至PolarDB MySQL和从RDS MySQL迁移至PolarDB MySQL三者有什么区别?
A:3者间的区别如下表:
对比项 一键升级RDS MySQL至PolarDB MySQL 一键克隆RDS MySQL至PolarDB MySQL 从RDS MySQL迁移至PolarDB MySQL 是否需要DTS工具 × × √ 是否支持迁移或同步增量数据 √ × √ 是否影响源RDS操作 × × × 源和目标的MySQL版本能否不同 × × √ 说明 表中√表示支持或需要,×表示不支持或不需要。 - Q:升级后的PolarDB MySQL节点规格需要和源RDS MySQL的实例规格保持一致吗?
A:您可以按需选择PolarDB MySQL的规格,建议不低于源RDS实例规格。所有集群版的PolarDB节点均为独享型,性能稳定可靠。详情请参见计费项概览。
- Q:升级前是否需要先购买PolarDB MySQL集群?
A:您无需提前购买PolarDB MySQL集群,步骤一:从RDS迁移即包含购买和创建一个与源RDS实例数据相同的PolarDB集群的操作。
- Q:从RDS迁移会影响源RDS实例吗?
A:不会影响源RDS实例的正常运行。
- Q:平滑迁移对源RDS实例性能有影响吗?
A:迁移不会影响源RDS实例上的使用操作,但数据迁移涉及查询操作,会消耗源RDS实例一部分的查询性能。
- Q:平滑迁移对业务有影响吗?
A:平滑迁移能够保证迁移过程不丢失数据,停机(即暂停业务,不产生增量数据,而非停用数据库)时间小于10分钟,如果有需要还可以进行回滚。
- Q:取消迁移会有什么影响?
A:取消迁移后,源RDS实例可以修改参数;PolarDB集群恢复可读可写,且数据不会释放。手动取消时可以选择是否关闭PolarDB集群的Binlog,自动取消时不会关闭。
- Q:升级完成后,将业务切换到PolarDB,应用程序端的连接地址是否需要修改?
A:您可以在迁移切换时选择带地址切换(应用程序不用改连接配置),系统会自动交换RDS和PolarDB上的连接地址,您无需在应用程序端修改任何配置即可自动连接到PolarDB。
- Q:迁移切换时选择了带地址切换(应用程序不用改连接配置),迁移完成后-为什么PolarDB集群仍然使用新的连接地址?
A:仅当源RDS和目标PolarDB集群同时存在的连接地址才支持相互切换,默认情况下仅私网主地址支持带地址切换。如需切换其他连接地址,您需在切换前创建好对应的连接地址,否则不会切换。关于如何为PolarDB集群和RDS实例创建连接地址,请参见新增自定义集群地址和设置连接地址。
- Q:源RDS实例中还包含只读实例,若选择带地址切换(应用程序不用改连接配置),只读实例的连接地址能否一并切换?
A:不能。一键升级至PolarDB不会迁移源RDS只读实例的连接地址,仅支持迁移源RDS主实例的连接地址和读写分离地址。您需要在应用程序端手动修改源RDS只读实例的连接地址为PolarDB的连接地址。
- Q:业务成功切换后,为什么连接不上PolarDB数据库或连接成功但只支持读操作无法执行写入操作?
A:切换域名后,可能会存在DNS解析缓存问题,在缓存过期时间内可能会出现连接不上数据库或数据库只支持读操作无法执行写入操作等情况,建议您刷新一下服务器的DNS缓存。
- Q:一键升级到PolarDB前,能否先进行兼容性测试并简单评估迁移工作量?
A:您可以先通过一键克隆RDS MySQL至PolarDB MySQL功能克隆一份数据到PolarDB进行兼容性测试和评估迁移工作量,测试没有问题后再参照本文操作一键升级至PolarDB。
- Q:迁移切换后,为什么在PolarDB控制台上看不见完成迁移按钮?
A:若您已经执行过完成迁移操作,该按钮将会消失,避免您重复执行相同操作。
- Q:一键升级至PolarDB后,还需要在目标PolarDB集群中创建与源RDS实例相同的账号和密码吗?
A:不需要。升级后PolarDB集群将包含源RDS实例的账号密码、数据库、IP白名单和必要的参数等信息。
- Q:源RDS实例已开启了TDE或SSL,如何再迁移至PolarDB集群?
A:已开启了TDE或SSL的RDS实例不支持一键升级至PolarDB集群,您可以选择使用DTS将源RDS迁移至PolarDB。更多详情,请参见从RDS MySQL迁移至PolarDB MySQL。
- Q:一键升级是否支持跨版本升级?如将RDS MySQL 5.6升级至PolarDB MySQL 8.0?
A:暂不支持。若需要将RDS MySQL 5.6跨版本升级至PolarDB MySQL 8.0,您可以通过DTS进行迁移。更多详情,请参见从RDS MySQL迁移至PolarDB MySQL。
- Q:若在一键升级至PolarDB MySQL前,源RDS实例已开启了DTS数据同步任务,升级时是否会影响该任务?
A:不会。通过一键升级进行迁移时,会先从RDS复制一份全量数据至一个新的PolarDB集群,然后将增量数据保持同步至该PolarDB集群。源RDS上DTS数据同步任务的数据源仍然是源RDS,数据迁移至PolarDB并不会影响源RDS上的运行和操作。
但迁移完成后,如果您将业务切换到新的PolarDB,且源RDS停止使用了,DTS的数据源是不会自动改到新PolarDB集群的,此时,您需要重新创建DTS同步任务,将数据源改为PolarDB集群。
相关API
API | 描述 |
---|---|
CreateDBCluster | 创建PolarDB集群。
说明 一键升级时,参数
CreationOption取值需要为 MigrationFromRDS。 |
DescribeDBClusterMigration | 查询PolarDB集群的迁移状态。 |
ModifyDBClusterMigration | 修改迁移任务,进行任务的切换或回滚。 |
CloseDBClusterMigration | 取消或完成迁移。 |