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

注意事项

通过一键克隆方式迁移到PolarDB集群,源RDS实例的增量数据不会同步到PolarDB集群。

说明 如果需要在新建PolarDB集群的同时,使源RDS实例的增量数据实时同步到PolarDB集群,即实现平滑迁移(不停机迁移),请参见一键升级RDS MySQL至PolarDB MySQL

方案概述

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。
说明 RDS MySQL 8.0版本、RDS MySQL云盘版本一键克隆至PolarDB MySQL引擎,以及RDS MySQL跨版本一键克隆至PolarDB MySQL引擎,都是通过逻辑迁移(DTS数据同步)方式实现。该方式目前处于灰度发布阶段,具体请参见物理迁移和逻辑迁移对比

物理迁移和逻辑迁移对比

当前的一键克隆功能支持通过物理迁移(物理复制)和逻辑迁移(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相同版本的PolarDB MySQL引擎集群。
  • 与RDS MySQL不同版本的PolarDB MySQL引擎集群。
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实例未开启TDESSL。若已开启,您可以选择手动创建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服务关联角色。具体步骤如下:

  1. 前往RAM控制台角色列表。
  2. 检查角色列表中,是否已存在名为AliyunServiceRoleForPolarDB的服务关联角色,如下:
    ram
  3. 若已存在,则进行步骤一:从RDS克隆;若不存在,则需创建相关角色。
  4. 单击左侧创建角色
  5. 在弹出的创建角色对话框中,选择阿里云服务,并单击下一步
    阿里云服务
  6. 选择角色类型为服务关联角色,并选择云服务为云数据库PolarDB
    服务关联角色
  7. 单击完成,返回角色列表,确保已创建成功。

步骤一:从RDS克隆

本操作将创建一个与源RDS实例数据相同的PolarDB集群。

  1. 登录PolarDB控制台
  2. 在控制台左上角,选择集群所在地域。
  3. 单击创建新集群
  4. 选择商品类型包年包月按量付费
    • 包年包月:在创建集群时支付计算节点的费用,而存储空间会根据实际数据量按小时计费,并从账户中按小时扣除。
    • 按量付费:无需预先支付费用,计算节点和存储空间(根据实际数据量)均按小时计费,并从账户中按小时扣除。
    说明 关于包年包月和按量付费的详细对比,请参考计算节点计费方式对比,并选择适用您业务场景的商品类型。
  5. 设置如下参数。
    说明 下表格中未详细介绍的参数,请参考PolarDB集群购买相关章节:购买按量付费集群购买包年包月集群
    参数 说明
    创建方式 选择从RDS克隆
    地域 选择源RDS MySQL实例所在地域。
    说明 新建的PolarDB集群也在此地域。
    源RDS引擎 源RDS实例的引擎类型,固定为MySQL,不可变更。
    源RDS版本 源RDS实例的版本,您可以选择5.65.78.0
    源RDS实例 选择源RDS实例,不包括只读实例。
    兼容性 目标PolarDB集群的数据库引擎版本。您可以选择与源RDS实例一致的版本,也可以选择跨版本。
    节点规格 按需选择,建议不低于源RDS实例规格。关于PolarDB节点规格,详情请参见计算节点规格
  6. 设置购买时长(仅针对包年包月集群)和集群数量后,单击右侧的立即购买
  7. 确认订单页面确认订单信息,阅读并选中服务协议,单击立即开通即可。

    开通成功后,需要10~15分钟创建集群,之后您就可以在集群列表中看到新创建的集群。

    说明
    • 当集群中的节点状态为创建中时,整个集群可能仍未创建完成,此时集群不可用。只有当集群状态为运行中时,集群才可以正常使用。
    • 请确认已选中正确的地域,否则无法看到您创建的集群。
    • 当您的数据量较大时,推荐您购买PolarDB存储包,相比按小时付费,预付费购买存储包有折扣,购买的容量越大,折扣力度就越大,详情请参见搭配存储包
  8. 支付页面,确认未支付订单信息和支付方式,单击订购
  9. 登录PolarDB控制台,查看新建的PolarDB集群的状态。
    说明 若您是通过逻辑迁移(DTS数据同步)方式进行一键克隆,请单击集群ID进入集群基本信息页,查看迁移状态。若RDS迁移状态变为预检查失败,请根据错误信息中的提示进行处理。预检查失败

    例如,如果源RDS中创建了触发器,则预检查会失败并报错“RDS实例存在触发器”。若您确认触发器不会导致源和目标库的数据不一致,可点击继续迁移并跳过触发器检查;如果有数据不一致风险,可以先删除RDS的触发器,再点击继续迁移,或者点击取消迁移后手动去DTS控制台页面创建迁移任务。具体可参见源库存在触发器时如何配置同步作业

    您也可以在此步骤选择取消迁移,相关影响请参见常见问题

步骤二:查看数据同步任务详情(仅限逻辑迁移)

若您是通过逻辑迁移(DTS数据同步)方式进行一键克隆,请单击集群ID进入集群基本信息页,查看迁移状态。若遇到迁移报错(如预检查失败)或者其他异常状态(如复制延迟异常高)时,您可以前往对应的DTS数据同步任务的详情页,查看数据同步任务的具体信息。

  1. 进入PolarDB控制台
  2. 找到目标集群,单击集群ID。
  3. 基本信息页面的RDS迁移功能中,单击DTS数据同步任务的任务名称,进入DTS控制台数据同步列表。
    DTS任务
  4. 找到对应的数据同步任务,您可查看预检查失败详情、查看同步任务详情、查看同步任务日志等。
    进入详情详情

常见问题

  • 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的地址,详情请参见申请集群地址和主地址