升级步骤

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

在将RDS MySQL一键升级至PolarDB MySQL的过程中,将为您创建目标PolarDB集群并进行数据同步。升级后的PolarDB集群将包含源RDS实例的账号信息、数据库、IP白名单以及必要的参数配置。

整个升级过程中将包含以下步骤:

说明
  • 一键升级分为物理迁移(物理复制)和逻辑迁移(DTS数据同步)两种方式,具体区分如下。更多信息,请参见物理迁移和逻辑迁移对比

    • 物理迁移(物理复制):RDS MySQL 5.65.7高可用版且存储类型为本地SSD盘的实例,迁移至相同版本的PolarDB MySQL集群。

    • 逻辑迁移(DTS数据同步):除上述属于物理迁移(物理复制)方式外,其他形态的RDS MySQL实例迁移至相同或不同版本的PolarDB MySQL集群。

  • 详细步骤说明,请参见各操作步骤。

  1. 前置检查:

  2. 步骤一:从RDS迁移:在PolarDB购买页面,选择创建方式为RDS迁移,并指定源RDS版本及实例,以创建一个目标PolarDB集群。

  3. 步骤二:地址补齐(可选):一键升级支持带地址切换,您可保留源RDS实例的连接地址,应用程序无需修改任何连接配置即可切换至目标PolarDB集群。仅当源RDS实例和目标PolarDB集群同时存在的连接地址,才支持相互切换。

  4. 步骤三:迁移切换:交换源RDS实例和目标PolarDB集群的读写状态(即将源RDS实例修改为只读,将目标PolarDB集群修改为可读可写),同时会更换复制方向(即将目标PolarDB集群的新增数据同步到源RDS实例)。

  5. 步骤四:源实例DTS任务切换(可选):若源实例存在关联的DTS链路(非一键迁移DTS链路),您可使用此功能修改(替换)DTS同步或迁移任务的源或目标库实例,平滑切换关联业务。

  6. 步骤五:完成迁移:若业务数据迁移已完成,并且后续不再需要使用数据同步时,您可以完成整个升级过程。

  7. 退订或释放RDS实例(可选):若业务已在PolarDB集群上稳定运行且不再需要源RDS实例时,可以退订或释放源RDS实例。

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

前置检查

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

说明

若您已完成迁移评估并且无相关异常,可跳过该前置检查。

在使用逻辑迁移(DTS数据同步)方式进行一键升级前,请先检查是否已创建PolarDB服务关联角色,以及是否已授予DTS访问云资源的权限

  • 检查是否已创建PolarDB服务关键角色

    1. 使用阿里云账号(主账号)前往RAM控制台身份管理>角色列表。

    2. 检查角色列表中,是否已存在名为AliyunServiceRoleForPolarDB的服务关联角色,如下:image

      • 若存在,请跳过当前检查步骤。

      • 若不存在,则继续执行以下步骤。

    3. 单击创建角色,在打开的创建角色页面中,单击右上角的创建服务关联角色image

    4. 在打开的创建服务关联角色页面中,选择信任的云服务云数据库 PolarDB,并单击创建服务关联角色以完成创建。image

  • 检查是否已授予DTS访问云资源的权限

    以下为您展示如何查看授权结果以及快速授权的方式。更多信息,请参见授予DTS访问云资源的权限

    查看授权结果

    1. 使用阿里云账号(主账号)前往RAM控制台身份管理>角色列表。

    2. 检查角色列表中,是否已存在名为AliyunDTSDefaultRole的角色,如下:image

      1. 若不存在,请前往快速授权

      2. 若存在,则继续执行以下步骤检查当前角色权限。

    3. 单击角色名称,查看AliyunDTSDefaultRole的详细信息。

      • 当角色AliyunDTSDefaultRole同时满足如下条件时,表示授权成功。

        • 权限管理中包含系统策略AliyunDTSRolePolicy

          image

        • 信任策略中包含dts.aliyuncs.com

          image

      • 当角色AliyunDTSDefaultRole不满足上述条件时,表示授权失败,需要重新授权。您可以删除角色AliyunDTSDefaultRole,重新授权。

    快速授权

    使用阿里云账号(主账号)访问AliyunDTSDefaultRole快捷授权页面,在云资源访问授权对话框中,单击同意授权

    说明

删除源RDS实例中多余系统账号(仅限逻辑迁移)

说明

若您已完成迁移评估并且无相关异常,可跳过该前置检查。

为了兼容RDS MySQLPolarDB两者的系统账号体系,避免升级后目标PolarDB的系统账号被覆盖,源RDS实例中不允许同时存在rootaliyun_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.7实例的正确系统账号为aliyun_root。若您在控制台中手动创建了root账号,则需将其删除。在删除之前,请确保您的业务中未使用root账号。

说明

系统账号可能是您手动创建的,也可能是系统创建并因版本升级而遗留的。在某些情况下,该账号可能不会在控制台中显示。

示例

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

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

  2. 找到所有的rootaliyun_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主实例和只读实例的白名单配置不一致,为了保证只读节点的白名单自动同步到目标PolarDB集群,请提前将只读节点的白名单合入到主节点的白名单配置中。

步骤一:从RDS迁移

本操作将创建一个与源RDS实例数据相同的PolarDB集群,源RDS实例的增量数据会实时同步到该PolarDB集群。

说明
  • 在开始迁移前,建议您先完成迁移评估

  • 开始迁移前请确保PolarDB集群存储空间大于源RDS实例。

  • 使用DTS迁移,全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,您可按需调整同步速率,详细操作请参见调整迁移速率

  1. 登录PolarDB控制台,单击创建新集群,进入PolarDB购买页。

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

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

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

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

  3. 设置如下参数。

    说明

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

    参数

    说明

    创建方式

    选择RDS迁移

    说明

    在正式迁移切换前PolarDB的读写状态为只读,且默认开启Binlog。迁移完成后,若原RDS为包年包月实例,可申请转单优惠退款

    地域

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

    说明

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

    RDS引擎

    RDS实例的引擎类型,固定为MySQL,不可变更。

    RDS版本

    RDS实例的版本。您可以选择5.65.78.0

    RDS实例

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

    兼容性

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

    节点规格

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

    存储引擎

    PolarDB支持InnoDBInnoDB & 高压缩引擎两种引擎类型。

    • InnoDB:InnoDB引擎。

    • InnoDB & 高压缩引擎::InnoDBX-Engine混合部署引擎。选择该选项后,可以设置高压缩引擎的比例。关于高压缩引擎的更多信息,请参见高压缩引擎(X-Engine)

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

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

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

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

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

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

  7. 集群创建成功后,登录PolarDB控制台,单击集群ID进入集群基本信息页。

  8. 基本信息页的RDS迁移功能中,确认目标PolarDB集群的复制延迟小于60秒即可进行步骤三:迁移切换操作。

    基本信息

    说明
    • 已存在DTS双向同步的实例无法进行一键迁移/升级,可能会出现数据不一致问题

    • 集群创建后开始从RDS实例同步数据,您需要在30天内进行步骤五:完成迁移操作,超过30天将自动关闭迁移功能。

    • 若为逻辑迁移(DTS数据同步)方式,在PolarDB集群创建完成后,若RDS迁移状态变为预检查失败,请根据错误信息中的提示进行处理。预检查失败

      例如,如果源RDS中创建了触发器,则预检查会失败并报错“RDS实例存在触发器”。请先删除源RDS的触发器,再点击继续迁移,或者点击放弃迁移后手动去DTS控制台页面创建迁移任务。具体可参见源库存在触发器时如何配置同步或迁移作业

    • 您可以在此步骤选择放弃迁移,相关影响请参见常见问题

步骤二:地址补齐(可选)

PolarDB一键迁移支持带地址切换,您可保留数据库原连接地址,无需应用程序修改任何连接配置即可切换至PolarDB。需要注意,仅当源RDS和目标PolarDB集群同时存在的连接地址才支持相互切换,默认情况下目标端仅创建私网主地址和私网集群地址,如果源端包含2个以上的连接地址,您需在切换前在目标端创建好对应的连接地址,否则不会切换。关于如何为PolarDB集群和RDS实例创建连接地址,请参见管理连接地址设置连接地址

说明
  • 在目标端集群变成运行中后,才可进行地址补齐操作。此外您还可以根据业务需要,进行地址属性配置、实例参数配置、只读节点补齐等操作。

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

步骤三:迁移切换

当目标PolarDB集群的复制延迟小于60秒时,即可进行迁移切换操作。

  1. 进入PolarDB控制台

  2. 找到目标集群,单击集群的ID。

  3. 基本信息页面的RDS迁移功能中,单击迁移切换

    image

    说明
    • 切换过程一般小于5分钟。

    • 本操作将交换源RDS实例和目标PolarDB集群的读写状态(即将源RDS实例修改为只读,将PolarDB集群修改为可读可写),同时会更换复制方向(即将PolarDB集群的新增数据同步到RDS实例)。

  4. 单击确定继续进行迁移切换,单击取消返回检查非升级DTS任务。

    image

  5. 切换业务到新数据库对话框中,选择带地址切换(应用程序不用改连接配置)不带地址切换(应用程序需要改为新的PolarDB连接配置)

    image

    • 若您选择带地址切换(应用程序不用改连接配置),操作步骤如下:

      1. 选中带地址切换(应用程序不用改连接配置)。系统会自动交换源RDS实例和目标PolarDB上的连接地址,您无需在应用程序端修改任何配置即可自动连接到目标PolarDB集群。

        重要
        • 选择带地址切换(应用程序不用改连接配置)前,请务必阅读带地址切换注意事项

        • 如果待升级的RDS MySQL实例集群是已有数据传输服务(DTS)的源集群或目标集群,则升级后需要将该DTS任务的源或目标集群修改为升级后的PolarDB集群。如数据同步任务、数据迁移任务以及数据订阅任务等。具体请参见修改DTS任务对象

      2. 单击确定。

    • 若您选择不带地址切换(应用程序需要改为新的PolarDB连接配置),操作步骤如下:

      1. 勾选不带地址切换(应用程序需要改为新的PolarDB连接配置)。

      2. 单击确定。

      3. 刷新页面,当目标PolarDB读写状态显示为读写后,尽快修改应用中的数据库连接地址。

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

步骤四:源实例DTS任务切换(可选)

说明
  • 若源实例存在关联的DTS链路(非一键迁移DTS链路),您可使用此功能修改(替换)DTS同步或迁移任务的源或目标库实例,平滑切换关联业务,实现原理和注意事项请参见修改DTS任务的源或目标库实例

  • 在库表结构迁移和全量迁移阶段,请勿执行库或表结构变更的DDL操作,否则数据迁移任务会失败。

  1. 进入PolarDB控制台

  2. 找到目标集群,单击集群的ID。

  3. 基本信息页面的RDS迁移功能中,单击源实例DTS任务切换

    image

  4. 切换业务DTS数据库对话框中,选择源实例DTS任务(正向切换)目标实例DTS任务(切换回滚)

    重要

    切换前,请先检查源实例和目标实例同步数据的DTS状态,详细DTS状态查询,请参见DTS状态查询

    image

    • 若您选择源实例DTS任务(正向切换),操作步骤如下:

      1. 请选择您需要迁移切换数据库实例的DTS任务。

      2. 单击提交正向切换

    • 若您选择目标实例DTS任务(切换回滚),操作步骤如下:

      image

      1. 请选择您需要迁移切换数据库实例的DTS任务。

      2. 单击提交切换回滚

说明
  • 源实例DTS任务(正向切换)适用于迁移切换(步骤三)后,将源实例关联的DTS链路(非一键迁移DTS链路)切换到目标实例。此操作是在迁移切换(步骤三)后,完成迁移(步骤五)前进行的。

  • 目标实例DTS任务(切换回滚)适用于迁移回滚后将目标实例关联的DTS链路(非一键迁移DTS链路)切换回源实例。此操作是在迁移回滚(可选)后,取消迁移(可选)之前进行的。

步骤五:完成迁移

在完成步骤一:从RDS迁移后,您需要在30天内进行完成迁移操作。

警告
  • 请确保在进行完成迁移操作前,数据迁移已完成,并且后续不再使用数据同步。物理迁移方式下,会中断源RDSPolarDB集群的数据复制;逻辑迁移方式下,将会删除数据同步任务。

  • 由于本操作将中断PolarDB集群和RDS实例间的数据同步,不再提供取消迁移(可选)功能,建议您使用一段时间PolarDB集群,确认正常后再执行本操作。

  1. 登录PolarDB控制台

  2. 找到目标集群,单击集群的ID。

  3. 基本信息页面的RDS迁移功能中,单击完成迁移,在弹出的对话框中单击确定完成迁移

    说明
    • 单击确定后,系统将在约2分钟内中断同步关系,期间迁移状态将显示为关闭同步,请耐心等待迁移完成。

    • 您可以在完成迁移对话框内选择是否关闭PolarDB集群的Binlog。关闭Binlog会带来少量的写入性能提升,但关闭BinlogPolarDB集群会自动重启使新配置生效。

    • 如果不再需要源RDS实例,可以手动退订或释放。详情请参见退订或释放RDS实例(可选)

    • 若您需要为源RDS实例进行续费或变配等操作,请先单击完成迁移。

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

当数据从RDS迁移到PolarDB后,若业务已在PolarDB上稳定运行且不再需要源RDS时,可以退订或释放源RDS实例。

查看数据同步任务详情(仅限逻辑迁移)(可选)

在使用逻辑迁移(DTS数据同步)方式进行一键升级的过程中,若遇到迁移报错(如预检查失败)或者其他异常状态(如复制延迟异常高)时,您可以前往对应的DTS数据同步任务的详情页,查看数据同步任务的具体信息。

  1. 进入PolarDB控制台

  2. 找到目标集群,单击集群ID。

  3. 基本信息页面的RDS迁移功能中,单击DTS数据同步任务的任务名称,进入DTS控制台数据同步列表。

    DTS任务

  4. 找到对应的数据同步任务,您可查看预检查失败详情、查看同步任务详情、查看同步任务日志等。

    任务详情

  5. 迁移过程中,若需求调整同步任务的同步对象(如源RDS端有新增库时,需要将新增库也纳入同步对象),您可单击修改同步对象重新配置。

    image