当业务增长带来数据扩展挑战,或计划将现有的RDS MySQL或PolarDB MySQL版等数据库升级到分布式架构以获取水平扩展能力时,可使用PolarDB-X提供的评估迁移工具。该工具是一个可视化的向导式迁移服务,用于将数据迁移至PolarDB-X 2.0企业版,覆盖从存量数据迁移、增量数据实时同步到业务切换的全生命周期。
功能简介
核心迁移流程
整个迁移过程划分为六个主要阶段,遵循准备-执行-验证-切换的逻辑,确保迁移过程清晰可控。
创建迁移任务:配置源实例和目标实例信息,建立迁移基础。
预检查与修复:系统自动检查环境、权限和配置,并提供修复指引。
结构迁移:迁移源实例的表和视图结构,并为分布式环境配置数据拆分规则。
数据迁移与监控:执行全量数据迁移和增量数据同步,并实时监控迁移状态。
业务切换:在数据同步延迟极低时,将业务流量切换至新的PolarDB-X 2.0企业版实例。
(可选)业务回滚:若切换后出现非预期问题,可利用反向同步链路将业务安全回滚至源实例。
支持的迁移场景
PolarDB-X 1.0/PolarDB-X 2.0标准版升级至PolarDB-X 2.0企业版。
RDS MySQL/PolarDB MySQL版进行分布式改造,迁移至PolarDB-X 2.0企业版。
PolarDB-X 2.0企业版进行大版本升级(如5.7升级至8.0)或进行跨实例数据迁移。
数据源 | 目标端 | 全量迁移 | 增量DML | 数据校验 | 数据订正 | 带地址切换 | 反向同步 |
PolarDB-X 1.0 | PolarDB-X 2.0企业版 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
RDS MySQL | PolarDB-X 2.0企业版 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
PolarDB MySQL版 | PolarDB-X 2.0企业版 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
PolarDB-X 2.0标准版 | PolarDB-X 2.0企业版 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
PolarDB-X 2.0企业版 | PolarDB-X 2.0企业版 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
适用范围
使用评估迁移工具前,需确认迁移场景满足以下条件。
地域限制:仅支持中国内地以及中国(香港)地域。
目标实例限制:
迁移的目标端仅支持PolarDB-X 2.0企业版。
若迁移至AUTO模式数据库时,其目标端版本需为
polardb-2.3.0_5.4.18-17142802_xcluster5.4.18-20240412或更高。
源实例限制:
Binlog要求:源实例需开启Binlog。例如,源实例为PolarDB MySQL版,或使用PolarDB MySQL版作为存储的PolarDB-X 1.0实例,您需提前为该PolarDB MySQL版集群开启Binlog。
PolarDB-X 1.0特殊限制:若源实例为PolarDB-X 1.0,且需使用带地址切换,则该实例下的所有数据库必须在同一个迁移任务中完成迁移。
注意事项
对象与结构限制:
迁移对象:仅支持迁移表(Table)和视图(View)。数据库账号、备份策略等实例级配置,迁移后需手动设置。
迁移粒度:支持一次选择多个库,以及指定迁移库中的部分表。
主键要求:待迁移的表需包含主键或非空唯一键,否则预检查将失败。
命名冲突:目标实例中不能存在与源实例待迁移的表同名的表。
性能影响评估:
数据迁移会占用源实例和目标实例一定的读写资源,预计会导致数据库负载(CPU及IOPS)上升。建议在业务低峰期执行迁移,并确保实例规格有足够冗余。
不建议将数据迁移到已有线上业务的PolarDB-X 2.0企业版实例,以免对现有业务造成性能干扰。
操作风险与预案:
严禁执行的操作:在整个迁移期间(从任务创建到切换完成),请勿对源实例和目标实例执行扩容、缩容、迁移热点表、变更拆分键以及任何DDL操作(如修改表结构)。这些操作可能导致迁移任务失败、数据不一致或相关操作失败。
切换风险:业务切换是核心操作。操作前需详细阅读步骤五:业务切换章节的说明,特别是关于源实例禁写、DNS缓存刷新和回滚的限制。
权限与安全:
账号权限:
源数据库账号:需拥有Binlog复制和待迁移库的读取权限。
目标实例账号:需拥有待迁移库的读写权限。
白名单:
源实例为RDS MySQL/PolarDB MySQL版/PolarDB-X 2.0时,迁移工具会自动将IP白名单迁移至目标PolarDB-X 2.0企业版实例,无需手动配置。
源实例为PolarDB-X 1.0时,您需要在迁移后手动为目标PolarDB-X 2.0企业版实例配置IP白名单。
创建并执行迁移任务
按照以下步骤完成从数据库到PolarDB-X 2.0企业版实例的迁移。
步骤一:创建迁移任务
配置迁移的源端和目标端信息,启动迁移流程。
前往PolarDB分布式版控制台,在页面左上角选择目标实例所在地域。
您可以按照如下两种方式中的任意一种进入创建迁移任务页面:
在左侧导航栏选择实例列表并切换至PolarDB-X 2.0页签,单击评估迁移。

在左侧导航栏选择评估迁移,单击创建迁移任务。

在创建迁移任务页面,配置以下信息:
任务名称:根据您的业务场景,填写任务名称。
源数据库:选择源数据库类型(如RDS MySQL、PolarDB MySQL版等)、实例地域、具体实例以及需要迁移的数据库,并填写具备所需权限的账号和密码。
目标数据库:选择目标PolarDB-X 2.0企业版实例,并指定要迁移数据库,以及填写具备读写权限的账号和密码。

单击下一步进入预检查阶段。
步骤二:预检查与修复
系统将自动校验迁移所需的环境、权限和配置是否满足要求,并对失败项提供明确的修复指引。如果所有检查项均通过,则可以直接进入下一阶段。若出现失败项,需根据相应的修复指南进行处理,然后单击重试。
检查项 | 失败原因分析与修复指南 |
CONNECTIVITY |
|
BINLOG_CONFIG |
|
TABLE_META |
|
CONFLICT |
|
步骤三:结构迁移
将源实例的表和视图结构迁移至目标PolarDB-X 2.0企业版实例,并为分布式环境配置核心的拆分规则。
在结构迁移页面,系统会列出所有待迁移的表。可全选所有对象,或勾选特定的表进行迁移。
配置拆分规则:对于需要分片的表,单击目标表右侧的调整表结构,配置其拆分规则。
拆分规则定义:PolarDB-X是分布式数据库,数据被分散存储在多个节点上。拆分规则是定义数据分散(拆分)存储的策略。通常,选择一个列(如
user_id、order_id)作为拆分键,PolarDB-X会根据这个键的值(例如通过HASH算法)来决定某一行数据具体存放在哪个物理分片上。拆分键选择:选择查询中最常作为筛选条件的列作为拆分键,可以提升查询性能。例如,用户表常按
user_id查询,订单表常按order_id或buyer_id查询。
确认无误后,单击开始结构迁移 。系统将在目标实例中创建相应的表结构。

步骤四:数据迁移与监控
执行全量数据的复制和增量数据的同步,并实时监控迁移进度和延迟。
结构迁移成功后,单击开始数据迁移。
开始迁移后,返回评估迁移列表,任务状态将变为迁移准备中,并在资源准备好后进入数据迁移中阶段。

单击任务的按钮进入任务详情页面。在数据迁移详情页面,可查看详细进度。迁移过程分为三个自动衔接的子阶段:
全量迁移:将源实例中待迁移对象的存量数据完整地复制到目标实例。
增量迁移:全量迁移完成后自动开始。此阶段会持续将源实例新产生的数据变更(增、删、改)同步到目标实例,确保数据动态一致。
说明增量迁移是一个动态持续进行的过程,在业务正式切换到目标实例以前不会停止。
数据校验:当增量迁移延迟低于30秒时,系统会自动启动数据校验任务,逐行对比源实例和目标实例的数据,确保数据完全一致。

切换时机判断:当数据校验进度达到100%且无不一致数量,同时增量迁移的延迟稳定在20秒以内时,表明已具备业务切换的条件。建议在切换前,观察延迟数据连续5分钟稳定在5秒以内。
步骤五:业务切换
在确保数据同步后,将应用流量从源数据库切换到目标PolarDB-X 2.0企业版实例。切换是迁移流程中的关键步骤,操作前需阅读本节内容。
选择切换方式
评估迁移工具提供两种切换方式,根据业务场景选择:
切换方式 | 优点 | 缺点 | 适用场景 |
带地址切换 | 应用程序无需修改任何连接配置,对应用透明。 |
| 无法或不便修改应用代码/配置的场景。 |
不带地址切换 | 切换过程更可控,不依赖DNS。 | 需要手动修改所有应用服务的数据库连接字符串。 | 能够自主控制应用配置发布的场景。 |
写操作限制
为保证数据一致性,切换过程中系统会自动或需要您手动禁止对源实例的写操作。
源实例为PolarDB-X 1.0(版本低于5.3.8-15489913):在单击开始正向切换前,您需手动停止应用对源实例的所有写操作,并维持该状态直至切换完成。
源实例为PolarDB-X 1.0(版本等于或高于5.3.8-15489913):单击开始正向切换后,系统会自动禁写源实例24小时。若您选择不带地址切换,请务必在24小时内完成应用连接地址的修改。若超时,您需自行通过回收权限等方式确保源实例在切换结束前保持禁写。
源实例为RDS MySQL/PolarDB MySQL版/PolarDB-X 2.0时:单击开始正向切换后,系统会自动禁写源实例,直至您完成切换或执行回滚操作。
带地址切换
此方式通过交换源实例和目标实例的连接地址,实现应用的自动切换。
额外限制
端口要求:源实例和目标实例的端口号必须一致。
源实例限制:若源实例为PolarDB-X 1.0,其下的所有数据库必须在同一个迁移任务中进行迁移。
切换地址范围:
该功能默认仅支持交换私网主地址和公网主地址。只读地址不会被修改,若您的业务使用了只读实例,请另行处理。
若源实例为PolarDB MySQL版,则仅支持交换集群地址。
手动配置项:切换仅修改连接地址,不会修改实例名。依赖实例名进行配置的服务(如DMS、DTS、DataWorks等)需要您手动修改配置。
DNS缓存生效时间:切换地址后,应用连接到新数据库需等待客户端DNS缓存失效,此过程通常需要30秒至5分钟。您可登录应用服务器手动刷新DNS缓存来加速生效。
操作步骤
前往评估迁移列表,单击任务的按钮进入任务详情页面。
在切换详情页面,单击开始正向切换。
在弹出的对话框中,选择带地址切换(应用程序不用改连接配置),然后单击确定。
系统自动执行:
禁写源实例:系统会立即禁止向源实例写入数据,此禁写状态持续24小时。
等待同步:等待增量数据完全同步至目标实例。
交换地址:将目标PolarDB-X 2.0企业版的连接地址替换为源实例的原地址。此过程约耗时2分钟。
验证与确认:
等待应用服务器的DNS缓存失效(通常为30秒至5分钟,也可手动刷新)。应用将自动连接到新的PolarDB-X 2.0企业版实例。
通过
show processlist命令或其他监控手段,确认源实例已无业务连接。确认无误后,单击确定源库无业务连接。系统将解除对源实例的禁写,并建立用于回滚的反向同步链路。
不带地址切换
此方式需手动修改应用的数据库连接配置。
操作建议
为防止因部分应用漏改连接配置而导致双写(即同时写入源和目标实例),造成数据不一致的严重问题,强烈建议您在修改应用连接地址前,先通过数据库账号权限管理等方式,回收应用对源实例的写权限。
操作步骤
前往评估迁移列表,单击任务的按钮进入任务详情页面。
在切换详情页面,单击开始正向切换。
在弹出的对话框中,选择不带地址切换(应用程序需要改为新的PolarDB-X连接配置),然后单击确定。
系统会立即禁止向源实例写入数据,此禁写状态持续24小时。
手动切换与确认:
当页面提示可以开始手动切换业务侧连接串时,请将所有应用的数据库连接地址修改为目标PolarDB-X 2.0企业版实例的地址,并重启或重新加载应用。
通过
show processlist命令或其他监控手段,确认源实例已无业务连接。确认无误后,单击确定源库无业务连接。系统将建立用于回滚的反向同步链路。
步骤六:(可选)业务回滚
当业务切换至PolarDB-X 2.0企业版后,若发现严重问题(如性能不达预期、功能异常),可执行回滚操作,将业务切回源数据库。
回滚是单向操作,将导致当前迁移任务中止且不可再次发起切换。 此为高风险操作,需谨慎执行。如果回滚后希望重新迁移,必须删除当前任务并创建一个全新的迁移任务。
前往评估迁移列表,单击任务的按钮进入任务详情页面。
在切换详情页面,单击开启反向回滚并确定。
系统会立即禁止向目标PolarDB-X 2.0企业版实例写入数据,此禁写状态持续24小时。
根据您在正向切换时选择的方式,完成后续步骤:
若正向切换时选择了带地址切换(应用程序不用改连接配置):
数据一致后,系统会自动切换回PolarDB-X 2.0企业版的连接地址与源实例的连接地址。此过程约耗时2分钟。
连接地址修改完成后,待应用侧DNS缓存失效,您无需在应用程序端修改任何配置即可自动连接到源实例。
说明此过程耗时取决于业务侧DNS缓存失效时间,通常为30秒至5分钟。您可以在应用侧手动刷新DNS缓存,加速地址修改生效。
若正向切换时选择了不带地址切换(应用程序需要改为新的PolarDB-X连接配置):
数据一致后,控制台会提示可以开始手动切换业务侧连接地址到源库。此时请修改业务侧连接串,将应用连接至源实例。
确认回滚:持续观察目标实例,确认业务已完全切回源实例后,单击确定目标库无业务连接。系统将解除对目标实例的禁写。此时,正向和反向同步链路均会暂停,本次迁移切换中止。
说明您可以使用
SHOW PROCESSLIST命令查看连接的客户端IP,确定是否有来自业务侧的连接。
计费说明
评估迁移功能可免费使用。