方案概述

本章节介绍了一键升级RDS MySQL至PolarDB MySQL版的方案简介、两种升级方式及其优势和对比、升级前提条件、使用限制、收费规则等。

升级方案概述

PolarDB支持将RDS MySQL一键升级至PolarDB MySQL版,整个过程中将自动为您创建目标端PolarDB集群并同步数据。升级后的PolarDB集群包含源RDS实例的账号信息、数据库、IP白名单和必要的参数。

  • 您可以将RDS MySQL迁移至相同或不同版本PolarDB MySQL版。如RDS MySQL 5.6一键升级至PolarDB MySQL版 5.6,RDS MySQL 5.6升级至PolarDB MySQL版 8.0。

    说明

    RDS MySQL 8.0版本、RDS MySQL云盘版本一键升级至PolarDB MySQL版,以及RDS MySQL跨版本一键升级至PolarDB MySQL版,都是通过逻辑迁移(DTS数据同步)方式实现。具体请参见物理迁移和逻辑迁移对比

  • 源RDS MySQL实例的计费类型不管是包年包月还是按量付费,都可以一键升级至PolarDB MySQL版,并且目标PolarDB集群的计费方式可以是包年包月、按量付费或是Serverless。

物理迁移和逻辑迁移对比

当前的一键升级功能通过物理迁移(物理复制)和逻辑迁移(DTS数据同步)两种方式实现。

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

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

说明

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

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

通过数据传输服务DTS,创建数据同步任务,将源RDS MySQL实例的库表结构和全量数据同步至创建的PolarDB MySQL版集群中,然后保持增量数据同步。

对比

物理迁移(物理复制)和逻辑迁移(DTS数据同步)方式区别如下:

对比项

物理迁移(物理复制)

逻辑迁移(DTS数据同步)

是否需要DTS工具

不需要

需要

是否支持迁移或同步增量数据

支持

支持

是否影响源RDS操作

不影响

不影响

源和目标的MySQL版本能否不同

仅支持5.6和5.7本地盘实例相同版本升级

支持相同版本和跨版本升级

升级后是否需要在PolarDB集群中创建数据库账户

不需要,升级后PolarDB集群包含源RDS实例的账号

不需要,升级后PolarDB集群包含源RDS实例的账号

是否支持新增库的迁移

支持

不支持

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

是否支持结构迁移

支持

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

支持迁移的RDS MySQL版本和存储类型如下:

RDS MySQL版本

基础系列

高可用系列

集群系列

5.6

本地盘

5.7

云盘

本地盘、云盘

云盘

8.0

云盘

本地盘、云盘

云盘

其中,除RDS MySQL 5.6和5.7高可用版且存储类型为本地SSD盘的集群,迁移至相同版本的PolarDB MySQL版集群属于物理迁移(物理复制)外,其他形态的RDS MySQL集群迁移至相同或不同版本的PolarDB MySQL版集群均为逻辑迁移(DTS数据同步)。

升级方案优势

一键升级功能具有如下优势:

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

  • 升级链路30天内免费,不支持虚商、RAM用户(子账号)等账号参加该免费活动。

  • 迁移过程数据0丢失。

  • 支持增量迁移,停机时间小于10分钟。

  • 支持在线热迁移,迁移过程仅闪断一次(即当业务从RDS切换至PolarDB时)。

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

  • 对于包年包月的RDS实例,数据从RDS迁移到PolarDB后,若业务已在PolarDB上稳定运行且不再需要RDS时,您可以申请转单优惠退款,避免浪费闲置的RDS资源,详情请参见包年包月RDS迁移至PolarDB后申请转单优惠退款

前提条件

  • 通过物理迁移方式进行一键升级,源RDS实例版本需满足如下条件,逻辑迁移对源RDS实例版本无限制:

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

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

    说明
    • 您可以执行SHOW VARIABLES LIKE '%rds_release_date%';命令查看源RDS实例的内核小版本。如果源RDS实例的内核小版本低于上述指定版本,您可以将内核小版本升级到最新版。关于如何升级内核小版本,请参见升级内核小版本

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

  • 仅表存储引擎类型为InnoDB或X-Engine的源RDS实例支持一键升级功能。

  • 若您是通过逻辑迁移(DTS数据同步)方式进行一键升级,如果源RDS创建了触发器,请先删除RDS的触发器,否则会导致迁移中断。具体可参见源库存在触发器时如何配置同步或迁移作业

  • 如果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地址的带地址切换。

  • 已有DTS双向同步的集群无法进行一键迁移。

  • 物理迁移(物理复制)方式的使用限制如下:

    • 暂不支持跨地域迁移。

    • 迁移期间不允许对源RDS实例执行参数设置的操作。

  • 逻辑迁移(DTS数据同步)方式的使用限制如下:

    • 暂不支持跨地域迁移。

    • 迁移期间不允许对源RDS实例执行参数设置的操作。

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

    • 对源库有如下限制:

      类型

      说明

      源库限制

      • Binlog日志:

        • 需开启Binlog,开启方法请参见设置实例参数,并且binlog_row_image为full。否则预检查阶段提示报错,且无法成功启动数据同步任务。

        • 如为增量同步任务,DTS要求源数据库的本地Binlog日志保存24小时以上,如为全量同步和增量同步任务,DTS要求源数据库的本地Binlog日志至少保留7天以上(您可在全量同步完成后将Binlog保存时间设置为24小时以上),否则DTS可能因无法获取Binlog而导致任务失败,极端情况下甚至可能会导致数据不一致或丢失。由于您所设置的Binlog日志保存时间低于DTS要求的时间进而导致的问题,不在DTS的SLA保障范围内。如源为RDS MySQL,具体操作请参见管理本地日志(Binlog)

    • SQL语句限制:

      操作类型

      SQL语句

      DML

      INSERTUPDATEDELETE

      DDL

      • ALTER TABLEALTER VIEW

      • CREATE FUNCTIONCREATE INDEXCREATE PROCEDURECREATE TABLECREATE VIEW

      • DROP INDEXDROP TABLE

      • RENAME TABLE

      • TRUNCATE TABLE

    • 其他限制:

      类型

      说明

      其他限制

      • 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数据同步。否则全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。

      • 全量初始化会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。

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

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

注意事项

  • 源RDS和目标PolarDB集群对应连接地址的SSL开启状态需保持一致:

    • 如果源RDS的连接地址开启了SSL,并且您选择带地址切换并切换该地址,请确保PolarDB集群对应的连接地址已开启SSL。

    • 如果源RDS的连接地址未开启SSL,则请确保目标PolarDB集群对应连接地址的SSL功能也保持关闭。

  • 如果源RDS主实例和只读实例的白名单配置不一致,为了保证只读节点的白名单自动同步到目标PolarDB集群,请提前将只读节点的白名单合入到主节点的白名单配置中。

  • 逻辑迁移过程中,全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升。

  • 逻辑迁移过程中,全量数据初始化时会并发执行INSERT操作,导致目标数据库的表产生碎片,因此全量初始化完成后目标实例的表空间比源实例的表空间大。

  • 逻辑迁移过程中,请勿手动释放DTS任务。

  • 全量数据同步需要一定时间,耗时与数据量大小有关,在此期间,目标端状态为创建中,请耐心等待。

收费规则

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

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

  • 若目标PolarDB集群为按量付费集群,目标集群在整个迁移过程中不计费,而是在如下操作后才开始正常按量计费

    • 步骤四:完成迁移后;

      说明
      • 迁移完成以中断源集群和目标集群的同步链路为准。

      • 迁移必须要在30天内完成。

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

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

  • 若目标PolarDB集群为包年包月集群,则在创建目标PolarDB集群时预支付对应的费用。

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

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

  • 若目标PolarDB集群为按量付费集群,目标集群在整个迁移过程中不计费,而是在如下操作后才开始正常按量计费:

    • 步骤四:完成迁移后;

      说明
      • 迁移完成以中断源集群和目标集群的同步链路为准。

      • 迁移必须要在30天内完成,超过30天DTS迁移和同步任务开始计费。

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

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

  • 若目标PolarDB集群为Serverless集群,当目标集群的状态变为运行中后,即开始计费。

  • 若目标PolarDB集群为包年包月集群,则在创建目标PolarDB集群时预支付对应的费用。

申请转单优惠退款

对于包年包月的RDS实例,从RDS迁移到PolarDB完成后,若确定业务已在PolarDB上稳定运行且不再需要RDS时,您可以申请转单优惠退款,避免浪费闲置的RDS资源。

详情请参见包年包月RDS迁移至PolarDB后申请转单优惠退款

备份策略说明

  • PolarDB的常规备份周期、备份开始时间与RDS的常规备份周期、备份开始时间保持一致。

  • RDS与PolarDB的备份保留时长对应关系如下:

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

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

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

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

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

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

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

迁移完成后,您可以在控制台上根据实际情况来修改备份策略

带地址切换

一键升级RDS至PolarDB时支持带地址切换,系统会自动交换RDS和PolarDB上的连接地址,您无需在应用程序端修改任何配置即可自动连接到PolarDB。选择该切换方式后,RDS连接地址对应的PolarDB连接地址如下图所示。

地址交换规则

使用带地址切换功能时,需注意以下几点:

  • 带地址切换只会切换RDS和PolarDB的域名,Vswitch、Vip等配置不会切换。

  • 仅当源RDS和目标PolarDB集群同时存在的连接地址才支持相互切换,默认情况下目标端仅创建私网主地址和私网集群地址,如果源端包含2个以上的连接地址,您需在切换前在目标端创建好对应的连接地址,否则不会切换。关于如何为PolarDB集群和RDS实例创建连接地址,请参见管理连接地址设置连接地址

  • 带地址切换时,RDS主地址一定会切换,您可以选择和PolarDB主地址或默认集群地址切换。RDS的独享代理地址及只读地址可以和PolarDB的默认集群地址及自定义地址切换,可以选择不切换或切换多组。由于PolarDB最多可以创建7个集群地址,因此最多只支持7组RDS独享代理地址及只读地址的切换。

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

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

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

迁移评估

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

具体操作说明,请参见迁移评估

相关API

API

描述

CreateDBCluster - 创建集群

创建PolarDB集群。

说明

一键升级时,参数CreationOption取值需要为MigrationFromRDS

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

查询PolarDB集群的迁移状态。

ModifyDBClusterMigration - 切换或回滚迁移任务

修改迁移任务,进行任务切换或回滚。

CloseDBClusterMigration - 取消或完成迁移

取消或完成迁移。