功能概述

在线迁移服务可以将远端 MySQL 数据库的数据平滑迁移到 MySQL Plus 集群中。在线迁移过程不影响远端数据库正常业务。迁移完成后,业务切换请在业务低峰期执行。

青云QingCloud支持 xtrabackup 方式和 mysqldump 两种在线迁移方式。

约束限制

  • 目前支持在线迁移的 MySQL 版本为 v5.6、v5.7、v8.0。若远端 MySQL 内核低于 v5.6 版本,请使用离线迁移的方式。

  • 在线迁移过程中,禁止向远端集群和本集群执行任何操作,包括 DDL 语句、控制台管理等。

  • 在线迁移过程中,仅在 主实例 节点运行,若本地集群存在 只读实例 节点,迁移操作将失败。

前提条件

  • MySQL Plus 集群状态为 活跃

  • 已获取远端 MySQL 数据库具有 super复制 权限的账号,且目标集群与原集群均需已开启 GTID 模式。

操作步骤

方式一:xtrabackup

xtrabackup 方式仅支持同一 VPC 网络下,且集群内核大版本一致之间的在线迁移,不支持跨内核大版本间的迁移。例如,支持从 MySQL v5.6 迁移至 MySQL v5.6,但是不支持从 MySQL v5.6 迁移至 MySQL v5.7。

当数据量大时,青云QingCloud建议选择该迁移方式。

步骤一:创建本地集群

准备一个仅有 主实例 节点的集群,用于迁移远端集群的数据。参考如何创建 MySQL Plus 集群

步骤二:启动在线迁移

  1. 通过 Web 浏览器登录青云QingCloud的 Console。

  2. 在顶部菜单栏中选择产品与服务 > 数据库与缓存 > 关系型数据库 MySQL Plus,进入 MySQL Plus 管理页面。

  3. 在 MySQL Plus 管理页面,点击目标集群 ID,进入 MySQL Plus 集群详情页面。

    mysql_plus_detail
  4. 点击页面右上角的更多操作 > 自定义服务 > 在线迁移

  5. 弹出对话框,用户根据页面信息,填写远端 MySQL 数据库参数。页面参数说明如下。

    参数 说明

    角色

    选择当前集群节点角色类型,默认为 主实例

    远端 MySQL 账号密码

    输入远端 MySQL 数据库账号密码。

    通过 Xtrabackup 迁移

    设置为 YES

    远端集群 ID

    填写远端集群 ID。

    远端 MySQL 账号

    填写远端具有 super 权限,复制 权限的账号。

  6. 确认信息填写无误后,点击确定,返回集群详情页面,迁移开始。

    说明

    在线迁移期间,可通过高可用写 IP 查看同步状态。

  7. 在线迁移完成后,MySQL Plus 集群将获取远端 MySQL 数据库全量数据,且与远端 MySQL 数据库建立主从关系,实时同步迁移远端数据库的增量数据。

步骤三:切换业务数据库

延续前文步骤,选择在业务低峰期,切换业务。

  1. 暂停远端数据库业务。

  2. 校验当前集群与远端数据库数据是否一致。

  3. 在当前集群详情页,点击页面右上角的更多操作 > 自定义服务 > 结束迁移,系统将自动启用当前集群。

  4. 将业务连接地址修改为当前集群的高可用写 IP,则业务迁移完毕。

    注意
    • 若远端 MySQL 数据库与 MySQL Plus 集群同版本且处于同一私有网络中,则用户可通过交换预留 IP 快速切换业务。

    • 切换业务时,必须停止远端数据库写操作,保障数据一致性。

    • 数据迁移完成后,系统将自动同步远端 MySQL 数据库账号信息,并添加至当前集群,无需用户手动创建账号。

方式二:mysqldump

该方式不支持从 高版本 迁移至 低版本,且不支持迁移远端 MySQL 数据库的账号信息,远端业务账号可在启动在线迁移前创建,也可在执行结束迁移后创建。

mysqldump 方式可在线迁移远端不同区域不同 VPC 网络中的数据库。当远端 MySQL 数据库与当前 MySQL Plus 集群不在同一 VPC 网络中时,用户需通过边界路由器VPN 等方式打通两者之间的网络后,再进行迁移操作。

步骤一:配置远端集群参数

按照以下内容,修改远端集群参数。

connect_timeout=30
max_allowed_packet=1G
slave_pending_jobs_size_max=1G
interactive_timeout=3600
wait_timeout=3600
net_read_timeout=3600
net_write_timeout=3600

步骤二:准备本地集群

参考如何创建 MySQL Plus 集群,准备一个仅有 主实例 节点的集群,用于迁移远端集群的数据。并按照以下内容,修改本地集群参数。

max_allowed_packet=1G
slave_pending_jobs_size_max=1G
interactive_timeout=3600
wait_timeout=3600
net_read_timeout=3600
net_write_timeout=3600

步骤三:本地集群启动在线迁移

  1. 通过 Web 浏览器登录青云QingCloud的 Console。

  2. 在顶部菜单栏中选择产品与服务 > 数据库与缓存 > 关系型数据库 MySQL Plus,进入 MySQL Plus 管理页面。

  3. 在 MySQL Plus 管理页面,点击目标集群 ID,进入 MySQL Plus 集群详情页面。

    mysql_plus_detail
  4. 点击页面右上角的更多操作 > 自定义服务 > 在线迁移

  5. 弹出对话框,用户根据页面信息,填写远端 MySQL 数据库参数。页面参数说明如下。

  6. 弹出对话框,用户根据页面信息,填写远端 MySQL 数据库参数。页面参数说明如下。

    参数 说明

    角色

    选择当前集群节点角色类型,默认为 主实例

    远端 MySQL 账号密码

    输入远端 MySQL 数据库账号密码。

    远端 MySQL 地址

    输入远端 MySQL 的访问地址。青云QingCloud建议选择远端主节点进行迁移。

    通过 Xtrabackup 迁移

    设置为 YES

    远端 MySQL 账号

    填写远端具有 super 权限,复制 权限的账号。

    是否迁移系统库

    默认迁移系统库即可,在源端为异构 MySQL 时可选择不迁移系统库。

    远端 MySQL 端口号

    填写远端 MySQL 数据库的端口号,默认为 3306

  7. 确认信息填写无误后,点击确定,返回集群详情页面,迁移开始。

    说明

    在线迁移期间,可通过高可用写 IP 查看同步状态。

  8. 在线迁移完成后,本地 MySQL Plus 集群将获取远端 MySQL 数据库全量数据,且与远端 MySQL 数据库建立主从关系,实时同步迁移远端数据库的增量数据。

步骤四:切换业务数据库

延续前文步骤,选择在业务低峰期,切换业务。

  1. 暂停远端数据库业务。

  2. 校验当前集群与远端数据库数据是否一致。

  3. 在本地集群详情页,点击页面右上角的更多操作 > 自定义服务 > 结束迁移,系统将自动启用当前集群。

  4. 将业务连接地址修改为当前集群的高可用写 IP,则业务迁移完毕。

    注意
    • 若远端 MySQL 数据库与本地 MySQL Plus 集群同版本且处于同一私有网络中,则用户可通过交换预留 IP 快速切换业务。

    • 切换业务时,必须停止远端数据库 写操作,保障数据一致性。

    • 数据迁移完成后,需用户将远端 MySQL 数据库账号信息,手动添加至当前集群。