添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

本章节介绍了一键克隆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 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实例的账号

是否支持新增库的迁移

不支持

不支持

支持克隆的RDS MySQL版本和存储类型如下:

RDS MySQL版本

基础版

高可用版

集群版

三节点企业版

5.6

本地盘

本地盘

5.7

云盘

本地盘、云盘

云盘

本地盘

8.0

云盘

本地盘、云盘

云盘

本地盘

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

方案优势

  • 克隆过程完全免费

  • 克隆过程数据0丢失

前提条件

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

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

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

    说明

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

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

  • 源RDS实例未开启 TDE SSL 。若已开启,您可以选择手动创建DTS数据迁移任务将源RDS迁移至 PolarDB 。更多详情,请参见 RDS MySQL迁移至PolarDB MySQL版

  • 如果RDS处于高安全模式(数据库代理模式),需要创建有高权限账号(请参见 创建账号 ),或者切换到高性能模式(参见 【产品/功能变更】RDS网络链路升级说明 ),才能进行一键克隆。 查看数据库模式

使用限制

  • 仅支持将RDS MySQL一键克隆至相同版本或更高版本的 PolarDB MySQL版 ,不支持降版本克隆。

    如:不支持从RDS MySQL 5.7一键克隆至 PolarDB MySQL版 5.6,不支持从RDS MySQL 8.0.2一键克隆至 PolarDB MySQL版 8.0.1。

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

    • 暂不支持跨地域迁移。

    • 迁移期间不允许对源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 集群的费用,详情请参见 计费项概览

  • 逻辑迁移(DTS数据同步)方式的收费规则如下:

    您除了需承担购买 PolarDB 集群的费用之外,还需承担DTS所创建的同步任务产生的费用。但现阶段该功能处于试用阶段,创建的同步任务30天内不收取任何费用(不支持虚商、RAM用户(子账号)等账号参加该免费活动)。具体如下:

    迁移对象

    费用

    库表结构同步和全量数据同步

    创建同步任务后,30天内不收取任何费用。

    超过30天后,将会取消创建的同步任务。

    说明

    您可以前往 新版DTS同步任务的列表页面 查看同步任务的剩余时间。

接下来将为您介绍如何进行一键克隆RDS MySQL至 PolarDB MySQL版

前置检查:检查是否已创建PolarDB服务关联角色(仅限逻辑迁移)

在使用逻辑迁移(DTS数据同步)方式进行一键克隆前,请先检查当前阿里云账号下是否已创建PolarDB服务关联角色。具体步骤如下:

  1. 前往 RAM控制台

  2. 在左侧导航栏,选择 身份管理 > 角色

  3. 在角色列表中,查看是否已存在名为 AliyunServiceRoleForPolarDB 的服务关联角色。

  4. 单击左侧 创建角色

  5. 在弹出的 创建角色 对话框中,选择 阿里云服务 ,并单击 下一步

    阿里云服务

  6. 选择角色类型为 服务关联角色 ,并选择云服务为 云数据库PolarDB

    服务关联角色

  7. 单击 完成 ,返回角色列表,确保已创建成功。

前置检查:删除源RDS实例中多余系统账号

为了兼容RDS MySQL和 PolarDB 两者的系统账号体系,避免迁移后目标 PolarDB 的系统账号被覆盖,源RDS实例中不允许同时存在root和aliyun_root账号。因此,在进行迁移前,请先删除源RDS实例中多余的系统账号。

RDS MySQL各个版本的正确系统账号名如下:

RDS MySQL版本

正确的系统账号名

RDS MySQL 5.6

root

RDS MySQL 5.7

aliyun_root

RDS MySQL 8.0

aliyun_root

各个版本除了对应的系统账号之外,其余系统账号均需删除。

说明

账号可能是用户创建的,也可能是系统创建并因版本升级而遗留的,某些场景下不会在控制台显示。

以清理RDS MySQL 5.6多余的系统账号为例,具体删除步骤如下:

  1. 使用高权限账号连接实例。

  2. 找到所有的root和aliyun_root系统账号。

    select * from mysql.user where user in ('root', 'aliyun_root');
  3. 删除多余的系统账号。RDS MySQL 5.6正确的系统账号是root,因此需要删除aliyun_root账号。

    delete from mysql.user where user = 'aliyun_root' limit n; 

步骤一:从RDS克隆

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

  1. 登录 PolarDB控制台

  2. 在左上角,选择集群所在地域。

  3. 单击 创建新集群

  4. 选择 计费类型 包年包月 按量付费 Serverless

    • 包年包月:在创建集群时支付计算节点的费用,而存储空间会根据实际数据量按小时计费,并从账户中按小时扣除。

    • 按量付费:无需预先支付费用,计算节点和存储空间(根据实际数据量)均按小时计费,并从账户中按小时扣除。

    • Serverless:无需预先支付费用,计算节点、存储空间、数据库代理等资源在集群使用过程中基于实际需求动态弹性扩缩,并根据扩缩的实际用量来计费。

  5. 设置如下参数。

    说明

    下表格中未详细介绍的参数,请参考 购买集群 相关章节。

    参数

    说明

    创建方式

    选择 从RDS克隆

    地域

    选择源RDS MySQL实例所在地域。

    说明

    新建的 PolarDB 集群也在此地域。

    源RDS版本

    源RDS实例的版本,您可以选择 5.6 5.7 8.0

    源RDS实例

    选择源RDS实例,不包括只读实例。

    数据库引擎

    目标 PolarDB 集群的数据库引擎版本。您可以选择与源RDS实例一致的版本,也可以选择跨版本。

    节点规格

    按需选择,建议不低于源RDS实例规格。关于 PolarDB 节点规格,详情请参见 企业版计算节点规格

  6. 在右上角检查集群配置信息,设置 购买时长 (针对 包年包月 集群)、 购买数量 是否 自动续费

  7. 阅读并勾选服务协议。单击 立即购买

  8. 支付 页面,确认未支付订单信息和支付方式,单击 订购

    说明
    • 支付成功后,需要等待10~15分钟创建集群,之后您就可以在 集群列表 中看到新创建的集群。

    • 当集群中的节点状态为 创建中 时,整个集群可能仍未创建完成,此时集群不可用。只有当集群状态为 运行中 时,集群才可以正常使用。

    • 请确认已选中正确的地域,否则无法看到您创建的集群。

  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至 和一键克隆RDS MySQL至 PolarDB MySQL版 两者有什么区别?

    A:两者间的区别如下表:

    对比项

    一键升级RDS MySQL至

    一键克隆RDS MySQL至 PolarDB MySQL版

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

    支持

    不支持

    是否影响源RDS操作

    不影响

    不影响

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

    可以不同

    可以不同

  • Q:从RDS克隆会影响源RDS实例吗?

    A:不会影响源RDS实例的正常运行。

  • Q:取消迁移会有什么影响?

    A:取消迁移会有如下影响:

    • 会切断源集群到目标集群的同步链路,源集群和目标集群不再关联。

    • 目标集群恢复可读可写状态,且不会自动释放。 若不再需要使用该集群,请尽快释放,避免产生额外费用

    • 手动取消迁移时可以选择是否关闭集群的Binlog,自动取消迁移时不会关闭Binlog。

      说明

      关闭Binlog会带来少量的写入性能提升,Binlog关闭后,已有的Binlog文件会一直保留。您可以先缩短Binlog文件的保存时长,等待不需要的文件自动删除后,再关闭Binlog。关闭Binlog后集群会自动重启,重启任务会在5分钟之内完成,重启时服务闪断时间在40秒左右。具体时间与数据量和表数量相关,建议您在业务低谷期进行操作并确保应用程序具备重连机制。

相关API

API

描述

CreateDBCluster

创建 PolarDB 集群。

说明

一键克隆时,参数 CreationOption 取值需要为 CloneFromRDS

后续步骤

请尽快将应用的数据库连接地址修改为 PolarDB 的地址,详情请参见 管理连接地址