一键升级RDS MySQL至PolarDB MySQL版

更新时间: 2025-04-21 11:05:16

PolarDB支持将RDS MySQL实例一键升级至PolarDB MySQL版集群。在升级流程中,将自动同步RDS实例的账号、数据库、IP白名单及必要的参数配置。此外,您还可以选择保留原有数据库连接地址,从而使应用程序无需修改任何连接配置即可顺利切换至PolarDB集群。这一流程显著降低了迁移难度,支持业务平滑过渡。

您能够将RDS实例一键升级至相同或更高版本PolarDB集群,例如:

  • RDS MySQL 5.6实例一键升级至PolarDB MySQL版5.6、5.7、8.0.1或8.0.2。

  • RDS MySQL 5.7实例一键升级至PolarDB MySQL版5.7、8.0.1或8.0.2。

  • RDS MySQL 8.0实例一键升级至PolarDB MySQL版8.0.1或8.0.2。

    说明
    • PolarDB MySQL版8.0.1完全兼容社区MySQL-8.0.13及更低的版本,8.0.2完全兼容社区MySQL-8.0.18及更低的版本。

    • PolarDB MySQL版8.0.1与8.0.2所支持的产品功能有所差异,具体信息请参见内核版本功能对比

迁移方式

在一键升级流程中,迁移方式分为物理迁移(物理复制)逻辑迁移(DTS数据同步)。系统将根据RDS实例的MySQL版本、产品系列及存储类型自动选择适用的迁移方式,且不支持手动修改。具体区分如下:

对比项

物理迁移(物理复制)

逻辑迁移(DTS数据同步)

适用实例

RDS MySQL 5.6和5.7高可用版且存储类型为本地SSD盘的实例,升级至相同版本的PolarDB MySQL版集群

说明

实例存在内核小版本限制:

  • 针对RDS MySQL 5.6高可用版,内核小版本需为20190815或以上版本。

  • 针对RDS MySQL 5.7高可用版,内核小版本需为20200331或以上版本。

除属于物理迁移(物理复制)方式外,其余形态的RDS MySQL实例升级至相同或不同版本的PolarDB MySQL版集群。

说明

无内核小版本限制。

实现方式

通过物理复制的方式,先从RDS实例复制全量数据,然后保持增量同步至PolarDB集群。

重要

增量同步过程中,所有创建的非InnoDB表都会被转成InnoDB表。

通过数据传输服务DTS创建数据同步任务,先同步RDS实例的库表结构和全量数据至PolarDB集群,再保持增量数据同步。

是否需要DTS工具

不需要。

需要。

迁移MySQL版本

仅支持迁移至相同版本。

支持迁移至相同版本或更高版本,但不支持降低版本。

升级流程时长限制

需在30天内完成。到期后,将关闭迁移功能。

需在30天内完成。到期后,将关闭迁移功能。

是否支持跨地域迁移

不支持。

不支持。

是否支持增量同步

支持。

支持。

是否支持新增库的迁移

支持。

不支持。

说明

如需同步新增库,请前往DTS控制台修改同步对象,将新增库配置到正向和反向任务中。

是否支持结构迁移

支持。

仅支持迁移库、表、视图、存储过程、函数这五类结构。

方案优势

  • 逻辑迁移(DTS数据同步)时,DTS数据同步任务在30天内免费。该免费活动不适用于虚商用户、聚石塔用户、国际站用户以及RAM用户(子账号)等类型的账户。

  • 带地址切换:可保留原有数据库连接地址,应用程序无需修改任何连接配置即可切换至PolarDB集群。

  • 一键升级流程中,数据0丢失。

  • 支持增量迁移。

  • 支持在线热迁移。一键升级流程中仅闪断一次且停机时间小于10分钟(即在业务从RDS实例切换PolarDB集群时)。

  • 支持迁移回滚。迁移失败后,可以在10分钟内恢复。

  • 转单优惠退款:对于包年包月的RDS实例,当您从RDS实例迁移至PolarDB集群后,若业务已在PolarDB集群上稳定运行且不再需要RDS实例。支持为您办理转单优惠退款,相比于您自主退订享有一定优惠。

使用须知

RDS实例影响

在一键升级流程中,RDS实例的某些操作将受到限制,且部分操作可能会导致RDS实例出现闪断或负载上升的情况。具体情况如下所示:

  • 一键升级流程中,不可修改实例参数。

  • 在进行业务切换操作时,若您选择使用带地址切换,切换过程中业务可能会中断1~5分钟。若您选择使用不带地址切换,则需尽快修改应用程序的连接配置,以便将其连接到PolarDB集群。

  • 根据迁移方式,若您是通过逻辑迁移(DTS数据同步)进行一键升级,则会存在以下影响

    • 若已创建触发器(Trigger),需先删除RDS实例中的触发器,否则会导致迁移中断。

    • 全量数据初始化时,请勿执行库或表结构变更的DDL操作,否则会导致数据同步任务失败。

    • 全量数据初始化时,会占用RDS实例和PolarDB集群的读写资源(如CPU和IOPS),可能导致RDS实例的负载上升。

前提条件

您的RDS实例需满足以下条件:

  • 实例基本信息:

    MySQL版本

    基础系列

    高可用系列

    集群系列

    5.6

    -

    本地SSD盘

    -

    5.7

    云盘

    本地SSD盘云盘

    云盘

    8.0

    云盘

    本地SSD盘云盘

    云盘

  • 数据表的存储引擎类型需为InnoDBX-Engine

  • 根据迁移方式,若您将通过逻辑迁移(DTS数据同步)进行一键升级,则RDS实例还需满足以下条件:

    • 不存在DTS双向同步任务。若存在DTS双向同步任务,在进行一键升级时可能会导致数据不一致的情况,请勿进行一键升级操作。

    • 若已创建触发器(Trigger),需先删除RDS实例中的触发器,否则会导致迁移中断。

    • RDS实例默认已开启Binlog,您需确保参数binlog_row_image的值为full,否则预检查阶段会提示错误,且无法成功启动数据同步任务。

    • DTS要求RDS实例的本地日志(Binlog)至少保留7天以上,否则DTS可能因无法获取本地日志Binlog而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的本地日志Binlog保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。

  • 根据迁移方式,若您希望通过物理迁移(物理复制)进行一键升级,则RDS实例版本需满足以下条件:

    • 针对RDS MySQL 5.6高可用版,内核小版本需为20190815或以上版本。

    • 针对RDS MySQL 5.7高可用版,内核小版本需为20200331或以上版本。

    说明
    • 您可以前往RDS控制台 > 实例详情页 > 基本信息页面,在配置信息区域查看RDS实例的小版本信息。如果低于上述指定版本,您可以将内核小版本升级至最新版本

    • 物理迁移(物理复制)时,建议将本地日志(Binlog)的保留时长设置为至少24小时或以上。

使用限制

  • 带地址切换功能,不支持IPv6地址的切换。

  • 根据迁移方式,若您将通过逻辑迁移(DTS数据同步)进行一键升级,则存在以下使用限制:

    • 在DTS同步期间,不允许有除DTS外的数据写入目标库,否则会导致源库与目标库数据不一致。例如,有除DTS外的数据写入目标库时,使用DMS执行在线DDL变更,可能引起目标库数据丢失。

    • DTS默认同步到目标数据库中时会取消外键约束,因此源数据库的级联、删除等操作不会同步到目标数据库。

    • 支持增量同步的SQL语句:

      操作类型

      SQL语句

      DML

      INSERTUPDATEDELETE

      DDL

      • ALTER TABLEALTER VIEW

      • CREATE FUNCTIONCREATE INDEXCREATE PROCEDURECREATE TABLECREATE VIEW

      • DROP INDEXDROP TABLE

      • RENAME TABLE

      • TRUNCATE TABLE

注意事项

迁移阶段

说明

迁移前

迁移时

  • 创建PolarDB集群时,全量数据同步需要一定的时间,耗时与数据量的大小相关。在此期间,集群的状态为创建中,请您耐心等待。

  • (可选)带地址切换时,仅当RDS实例和PolarDB集群同时存在的连接地址才支持相互切换,您需在切换前在集群上创建好对应的连接地址,否则不会切换。

  • 连接地址的SSL加密状态需保持一致:

    • 如果RDS实例的连接地址开启了SSL加密,且您在切换时选择带地址切换并切换该地址,请确保PolarDB集群对应的连接地址同样已开启SSL加密

    • 如果RDS实例的连接地址未开启SSL加密,请确保PolarDB集群对应的连接地址同样未开启SSL加密

  • 逻辑迁移(DTS数据同步)时:

    • 全量数据初始化时,会并发执行INSERT操作,导致PolarDB集群中的表产生碎片,因此全量初始化完成后PolarDB集群的表空间会比RDS实例的表空间大。

    • 请勿手动释放DTS数据同步任务。

费用说明

迁移费用

逻辑迁移(DTS数据同步)方式

逻辑迁移(DTS数据同步)方式中,不收取DTS数据同步任务的费用(不支持虚商用户、聚石塔用户、国际站用户以及RAM用户(子账号)等账号参加该免费活动),仅收取目标PolarDB集群的费用。

  • DTS数据同步任务:

    30天内免费,超过30天将开始计费。费用信息,请参见DTS计费概述

  • 目标PolarDB集群:

    • 计费类型按量付费时,则集群在整个升级流程中不计费,而是在如下操作后才开始正常按量计费:

      • 迁移完成后(包括升级流程中完成迁移操作)。

        说明
        • 迁移完成以中断RDS实例和PolarDB集群的DTS数据同步链路为准。

        • 迁移需在30天内完成。到期后,将关闭迁移功能,RDS实例和PolarDB集群均恢复读写状态,脱离复制关系。

      • 停止迁移后(包括预校验失败时的放弃迁移操作以及升级流程中取消迁移操作)。

        此时目标PolarDB集群已创建,但一键升级流程已停止。若您不需要使用目标PolarDB集群,请及时释放集群

    • 计费类型Serverless时,则在集群的状态变为运行中后,即开始计费。

    • 计费类型包年包月时,则在创建集群时需预支付对应的费用。

物理迁移(物理复制)方式

物理迁移(物理复制)方式中,整个升级流程不收取额外费用,仅收取目标PolarDB集群的费用。

  • 计费类型按量付费时,则集群在整个升级流程中不计费,而是在如下操作后才开始正常按量计费:

    • 迁移完成后(包括升级流程中完成迁移操作)。

      说明
      • 迁移完成以中断RDS实例和PolarDB集群的同步链路为准。

      • 迁移需在30天内完成。到期后,将关闭迁移功能,RDS实例和PolarDB集群均恢复读写状态,脱离复制关系。

    • 停止迁移后(包括预校验失败时的放弃迁移操作以及升级流程中取消迁移操作)。

      此时目标PolarDB集群已创建,但一键升级流程已停止。若您不需要使用目标PolarDB集群,请及时释放集群

  • 计费类型Serverless时,则在集群的状态变为运行中后,即开始计费。

  • 计费类型包年包月时,则在创建集群时需预支付对应的费用。

转单优惠退款

转单优惠退款:对于包年包月的RDS实例,当您从RDS实例迁移至PolarDB集群后,若业务已在PolarDB集群上稳定运行且不再需要RDS实例。支持为您办理转单优惠退款,相比于您自主退订享有一定优惠。

如何使用

1. 迁移评估

为了保证迁移链路的顺利进行和更好的迁移体验,PolarDB提供了迁移评估功能,您可以在开始迁移前,对实例状态、迁移任务依赖、实例属性信息等前提条件进行预校验,从而提前识别并处理可能影响迁移进度的前置条件,降低一键升级流程中的处理成本和资源成本。

2. 升级步骤

【推荐】控制台操作

以下为您简要说明一键升级操作流程。详细操作步骤说明,请参见升级步骤

  1. (可选)白名单检查

    若您的RDS实例存在只读实例,且只读实例的白名单配置与主实例不一致。为确保只读实例的白名单能够自动同步至PolarDB集群,您需将只读实例的白名单合并至主实例的白名单配置中。

    说明

    PolarDB集群的白名单配置适用于整个集群,不支持对各个节点进行单独配置。因此,完成迁移后,建议您对PolarDB集群的白名单数据库账号权限进行重新审查。

  2. 创建PolarDB集群

    请前往PolarDB集群购买页面,选择创建方式为从RDS迁移,并指定源RDS的版本与实例,以购买一个PolarDB集群。购买完成后,系统将进行初始化、预检查及全量数据同步等操作。在此期间,集群的状态为创建中,请您耐心等待。

    说明

    逻辑迁移(DTS数据同步)时,可能会出现预检查失败等错误情况,您需要根据错误信息进行相应的处理。处理完成后,可以单击继续迁移以继续一键升级流程。如果当前错误信息的处理会影响您的在线业务,您可以选择单击放弃迁移以中止一键升级流程。

  3. (可选)地址补齐

    带地址切换功能可以保留原有数据库连接地址,使得应用程序无需修改任何连接配置即可切换至PolarDB集群。但仅能切换RDS实例与PolarDB集群同时存在的连接地址。

    1. 您可以根据实际情况选择是否在PolarDB集群上补齐相关连接地址。

    2. 检查连接地址的SSL加密状态,RDS实例与PolarDB集群连接地址的SSL加密状态需保持一致。

  4. 迁移切换

    PolarDB集群的复制延迟小于60秒时,您可以进行业务切换。单击迁移切换,交换RDS实例和PolarDB集群的读写状态(即将RDS实例修改为只读,将PolarDB集群修改为可读可写),同时更换数据复制方向(即将PolarDB集群的新增数据同步到RDS实例)。

    重要
    • 在进行迁移切换时,如果您选择使用带地址切换,请务必仔细阅读带地址切换注意事项。此外,请注意,切换过程中业务可能会中断1~5分钟。

    • 迁移切换完成后,如果您发现数据存在异常或其他问题,可以进行迁移回滚操作,以便迅速恢复到升级前的状态。之后,您还可以继续选择取消迁移操作,恢复到切换之前的状态。

  5. (可选)源实例DTS任务切换

    RDS实例存在关联的DTS链路(非一键升级流程中逻辑迁移的DTS数据同步链路),您可使用此功能修改(替换)DTS同步或迁移任务的源或目标库实例,平滑切换关联业务。

  6. 完成迁移

    当业务数据迁移已完成,并且在PolarDB集群上稳定运行后,若后续不再需要使用数据同步,您可以单击完成迁移以结束一键升级流程。

  7. (可选)退订或释放RDS实例

    当业务已在PolarDB集群上稳定运行且不再需要RDS实例时,可以进行退订或释放RDS实例。

API操作

以下为您简要说明一键升级操作流程。详细操作步骤说明,请参见升级步骤以及相关API文档。

  1. (可选)白名单检查

    若您的RDS实例存在只读实例,且只读实例的白名单配置与主实例不一致。为确保只读实例的白名单能够自动同步至PolarDB集群,您需将只读实例的白名单合并至主实例的白名单配置中。

    说明

    PolarDB集群的白名单配置适用于整个集群,不支持对各个节点进行单独配置。因此,完成迁移后,建议您对PolarDB集群的白名单数据库账号权限进行重新审查。

  2. CreateDBCluster - 创建PolarDB集群

    调用创建集群API时,请求参数SourceResourceId需为源RDS实例所在地域,CreationOption需为MigrationFromRDS,且SourceResourceId需为源RDS实例ID。调用完成后,系统将进行初始化、预检查及全量数据同步等操作。在此期间,集群的状态为创建中,请您耐心等待。

  3. DescribeDBClusterMigration - 查询PolarDB集群的迁移状态

    当返回参数MigrationStatusRDS2POLARDB_SYNCING时,表示系统已完成全量数据的同步,正在进行增量同步。

    说明

    逻辑迁移(DTS数据同步)时,可能会出现预检查失败(参数MigrationStatusPRE_CHECK_FAIL)等错误情况,您需要根据错误信息(参数Comment)进行相应的处理。处理完成后,可以在控制台单击继续迁移暂时没有继续迁移API以继续一键升级流程。如果当前错误信息的处理会影响您的在线业务,可以在控制台单击放弃迁移以中止一键升级流程。

  4. ModifyDBClusterMigration - 切换迁移任务

    DescribeDBClusterMigration的返回参数DelayedSeconds小于60秒时,您可以进行业务切换。交换RDS实例和PolarDB集群的读写状态(即将RDS实例修改为只读,将PolarDB集群修改为可读可写),同时更换数据复制方向(即将PolarDB集群的新增数据同步到RDS实例)。

    重要
    • 在进行迁移切换时,如果您选择使用带地址切换,请务必仔细阅读带地址切换注意事项。此外,请注意,切换过程中业务可能会中断1~5分钟。

    • 迁移切换完成后,如果您发现数据存在异常或其他问题,可以调用ModifyDBClusterMigration回滚迁移任务,以便迅速恢复到升级前的状态。之后,您还可以继续选择调用CloseDBClusterMigration取消迁移,恢复到切换之前的状态。

  5. (可选)ModifyDtsJobEndpoint - 修改DTS任务的源或目标库实例

    RDS实例存在关联的DTS链路(非一键升级流程中逻辑迁移的DTS数据同步链路),您可以修改(替换)DTS同步或迁移任务的源或目标库实例,平滑切换关联业务。

  6. CloseDBClusterMigration - 完成迁移

    当业务数据迁移已完成,并且在PolarDB集群上稳定运行后,若后续不再需要使用数据同步,您可以结束一键升级流程。

  7. (可选)退订或释放RDS实例

    当业务已在PolarDB集群上稳定运行且不再需要RDS实例时,可以进行退订或释放RDS实例。

3. 调整备份策略

RDS与PolarDB备份策略有所差异。迁移完成后,您可以在控制台上根据实际情况来修改备份策略

相关信息

备份策略说明

RDS与PolarDB的备份策略有所差异,详细说明如下所示:

  • 常规备份周期备份开始时间无差异PolarDB将默认沿用RDS的常规备份周期备份开始时间

  • 备份保留时长对应关系如下:

    • 如果RDS的备份保留时长小于或等于14天,则PolarDB的一级备份保留时长与RDS的备份保留时长一致。

    • 如果RDS的备份保留时长大于14天且小于等于30天,则PolarDB的一级备份保留时长固定为14天,同时开启二级备份,且PolarDB的二级备份同地域保留时长固定为30天;如果RDS的备份保留时长大于30天,则PolarDB开启二级备份且二级备份同地域保留时长与RDS的备份保留时长一致。

    • 如果RDS的备份为长期保留,则PolarDB的一级备份保留时长固定为14天,并开启二级备份,且备份长期保留。

  • 如果RDS开启了高频备份,则PolarDB默认开启高频备份。高频备份对应频率如下:

    • 如果RDS的高频备份频率小于或等于120分钟,则PolarDB的高频备份频率固定为120分钟。

    • 如果RDS高频备份频率大于120分钟且小于或等于180分钟,则PolarDB高频备份频率固定为180分钟。

    • 如果RDS备份频率为其他频率,则PolarDB的高频备份频率固定为240分钟。

带地址切换

一键升级流程中支持选择带地址切换功能,选择后系统将自动交换RDS实例和PolarDB集群上的连接地址,您无需在应用程序端修改任何配置即可自动连接到PolarDB集群。

连接地址切换示意图

以下列举了在默认情况下,RDS实例与PolarDB集群之间的连接地址切换对应关系。在实际切换过程中,您可以在控制台自行调整连接地址的切换对应关系。

image
说明

RDS实例的只读地址包括数据库代理中的只读地址以及只读实例的连接地址。

注意事项

  • 带地址切换功能只会切换RDS实例和PolarDB集群的连接地址域名,虚拟交换机(vSwitch)、虚拟IP(VIP)等配置不会切换。

  • 仅当RDS实例和PolarDB集群同时存在的连接地址才支持相互切换。默认情况下PolarDB集群仅创建私网主地址和私网集群地址,如果RDS实例包含2个以上的连接地址,您需在切换前在PolarDB集群上创建好对应的连接地址,否则不会切换。

  • 使用带地址切换功能时,RDS实例的主连接地址可以与PolarDB集群的主地址或默认集群地址进行切换。RDS实例的数据库代理地址可以与PolarDB集群的默认集群地址及自定义地址进行切换,同时也可以选择不进行切换或切换多组。由于PolarDB集群最多可创建7个集群地址,因此最多仅支持7组RDS实例的数据库代理地址切换。

  • 暂不支持RDS集群系列实例的集群只读地址以及节点直连地址进行切换。

  • 使用带地址切换功能交换私网地址前,请确保RDS实例和PolarDB集群属于同一个专有网络VPC,否则切换后原有服务将无法连接。

  • 在增量同步完成后,PolarDB集群状态会变成运行中。在带地址切换前,您可以进行参数配置、只读节点补齐、地址补齐等操作。

  • 切换连接地址域名后,如果您需要使用DMS登录PolarDB集群,请确认您配置了正确的集群ID或连接串。

  • 切换连接地址域名后,可能会存在DNS解析缓存问题,在缓存过期时间内可能会出现连接不上PolarDB集群或PolarDB集群只支持读操作无法执行写入操作等情况,建议您刷新一下服务器的DNS缓存。

专家面对面

若您在使用过程中有任何问题,可通过钉钉搜索群号入群咨询。您可以直接@群内专家,并附上您要咨询的问题。同时,群内也有PolarDB智能小助手7*24小时在线回答您的问题。

钉钉群号:43055001012

上一篇: 从RDS迁移至PolarDB 下一篇: 迁移评估
阿里云首页 云原生数据库 PolarDB 相关技术圈