PolarDB-X提供了评估迁移工具,帮助您将数据库从PolarDB-X 1.0迁移至PolarDB-X 2.0。
相关概念
- 源实例:待迁移的PolarDB-X 1.0实例。
- 源数据库(源库):源实例中要进行迁移的数据库。
- 目标实例:要迁移至的PolarDB-X 2.0实例。
- 目标数据库(目标库):目标实例中创建好的用于迁移至的数据库。
- 目标中继数据库:如果目标数据库为AUTO模式,目标实例中需创建用于结构迁移中继的DRDS模式数据库。
费用
评估迁移功能可免费使用。
注意事项
- 当前评估迁移功能已面向中国地域发布。
- 当前仅PolarDB-X 1.0 V5.4.9-16300361及以上的实例支持迁移至PolarDB-X 2.0。
- 当前评估迁移工具支持的是库级别的数据迁移功能。每个迁移任务仅包含一个数据库的数据迁移。
- 迁移将会对全量数据进行迁移。执行迁移前需评估源库和目标库的性能,因此建议在业务非高峰期执行迁移。迁移时会占用源和目标库一定读写资源,导致数据库的负载上升。
- 在迁移期间,请勿对源实例和目标实例执行扩容、缩容、迁移热点表、变更拆分键和变更DDL等操作,否则会导致数据迁移任务失败、数据不一致或扩缩容失败等问题。
- 当前仅支持将存储类型为RDS for MySQL的数据库迁移至PolarDB-X 2.0。
- 当前支持将PolarDB-X 1.0迁移至PolarDB-X 2.0的DRDS模式数据库和AUTO模式数据库。迁移至AUTO模式数据库时,目标实例版本需在5.4.16-16717637及以上。如果目标库为AUTO模式,需要创建中继DRDS模式数据库并授予相应权限。中继DRDS模式数据库名称需要设置为目标AUTO库名+_drdstoauto。例如目标库为AUTO模式数据库mytest,则目标中继库为DRDS模式数据库mytest_drdstoauto。同时,由于AUTO模式数据库与DRDS模式数据库存在一定架构差异,建议进行业务测试和性能测试后再切换。
- 迁移期间对目标实例性能有一定影响,不建议迁移至已有线上服务的数据库实例。
迁移前准备
- 将源实例底层RDS的binlog_row_image设置为FULL,binlog_rows_query_log_events设置为ON。否则预检查阶段会提示报错,且无法成功启动数据迁移任务。支持在控制台的参数设置界面修改RDS参数:
- 建议将源实例本地Binlog日志保存时间设置为至少保留7天,否则可能因无法获取Binlog而导致增量任务失败。支持在控制台的备份恢复界面修改日志保存时间:
- 建议创建和使用迁移专用账号,减少正常业务和迁移之间的互相影响。
- 待迁移的表需具有主键约束或非空唯一键约束,否则预检查阶段会提示报错,且无法成功启动数据迁移任务。
- 根据业务情况在源实例库表中删除SIMPLE Sequence(若有)。
此外,请使用相同阿里云账号在相同地域购买PolarDB-X 2.0实例作为目标实例,且:
- 已在目标实例中创建账号。
- 已在目标实例中创建数据库作为目标数据库,且目标数据库的字符集与源数据库的字符集保持一致。
例如,若您PolarDB-X 1.0实例中的数据库字符集为utf8mb4,请在PolarDB-X 2.0实例中创建好字符集同为utf8mb4的数据库。
说明 您可以执行如下命令,查看PolarDB-X 1.0实例中数据库的字符集。SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = '...'
- 如果目标数据库为AUTO模式,需在目标实例中创建DRDS模式数据库作为目标中继数据库,且目标中继数据库的字符集与源数据库的字符集保持一致,并授予读写权限。
例如,若您源库为PolarDB-X 1.0实例中的数据库,名称为“test1”,目标库为PolarDB-X 2.0中的AUTO模式数据库,名称为“test2”,则需在PolarDB-X 2.0实例中创建DRDS模式数据库作为中继数据库,名称为“test2_drdstoauto”。
- 创建的目标数据库需授权给创建的账号,确保账号有目标数据库的读写权限。
- 迁移过程中,评估迁移工具不会覆盖目标数据库中已有的表。但请确认目标数据库中不存在与源数据库中的表相同名称的表。否则预检查阶段会提示报错,且无法成功启动数据迁移任务。
步骤1:创建迁移任务
评估迁移工具提供了库级别的数据迁移功能。每个迁移任务仅包含一个数据库的数据迁移。因此若您有多个数据库,请创建多个迁移任务。
- 登录PolarDB分布式版控制台。
- 在页面左上角选择目标实例所在地域。
- 在实例列表页,单击PolarDB-X 2.0页签。
- 右侧导航栏单击评估迁移。
- 单击创建迁移任务。
- 在打开的页面中,填写如下内容。
配置项 说明 任务名称 为本次评估与迁移任务自定义一个名称。 PolarDB-X 1.0实例 实例地域 选择源PolarDB-X 1.0实例所在的地域。 源PolarDB-X 1.0实例与目标PolarDB-X 2.0实例需要位于同一地域下。
实例 选择源PolarDB-X 1.0实例。 当选定实例地域后,该地域下的所有PolarDB-X 1.0的实例将展示在实例下拉列表中。
数据库 选择PolarDB-X 1.0实例下要迁移的源数据库。 当选定实例后,该实例下的所有数据库将展示在数据库下拉列表中。
数据库账号、数据库密码 对已选定的数据库拥有读写权限的账号及对应的密码。 PolarDB-X 2.0实例 选择实例 选择与PolarDB-X 1.0实例处于同一地域下的PolarDB-X 2.0实例。 当选定源实例地域后,该地域下所有PolarDB-X 2.0实例将展示在实例下拉列表中。
说明 您也可选择新购实例,并设置想要购买的实例的规格和节点数,了解对应的价格。数据库 选择PolarDB-X 2.0实例下要迁移至的目标数据库。
当选定实例后,该实例下的所有数据库将展示在数据库下拉列表中。
数据库账号、数据库密码 对已选定的数据库有读写权限的账号及对应的密码。 - 配置完源PolarDB-X 1.0实例和目标PolarDB-X 2.0实例后,您可以了解1.0和2.0实例的价格区别。
- 价格确认无误后,单击开始兼容性评估,进入下一步。
步骤2:兼容性评估
迁移任务创建完成后,将进行SQL兼容性评估。由于PolarDB-X 1.0与2.0的SQL语法略有差异,因此需要进行兼容性评估,评估源库的SQL语句是否完全兼容PolarDB-X 2.0的SQL语法。若不兼容,则需要对其进行针对性的改造。
当单击开始兼容性评估后,评估迁移工具将开始评估源库和目标库的兼容性情况。

若存在未通过的SQL,您可根据PolarDB-X 2.0的SQL语法说明进行SQL改造。您也可先进行下一步,然后在迁移开始并校验完成后,对相关SQL进行改造。
步骤3:预检查
兼容性评估完成后,单击兼容性评估后进行下一步,进入预检查阶段。

预检查项有:
- CONNECTIVITY:检查源实例对应库和目标实例对应库的用户名、密码、权限是否正确,以及两者的网络连通性。若失败,请检查实例的用户名、密码以及相关权限是否正确。如目标库为AUTO模式数据库,则需额外检查目标中继库的用户名、密码以及相关权限是否正确。
- BINLOG_CONFIG:检查源实例底层RDS的Binlog参数设置是否正确。请确保已将源实例底层RDS的binlog_row_image设置为FULL,binlog_rows_query_log_events设置为ON。
- TABLE_META:检查源实例库表的主键情况。若失败,请检查源实例待迁移的表,确保其需具有主键约束或非空唯一键约束。
- SEQUENCE:检查源库是否存在SIMPLE Sequence。由于PolarDB-X 2.0不支持SIMPLE Sequence,因此需要在源库根据业务情况删除此Sequence。
- CONFLICT:检查目标库中是否存在与源库中同名的表。若失败,请修改目标库中对应同名表的名称。
请确保所有预检查项均通过,否则无法开始迁移。
步骤4:数据迁移
- 当预检查的所有结果均通过后,单击开始升级。
开始迁移后,返回迁移任务列表,能够查看任务状态。
- 开始迁移后,任务状态变为迁移准备中,包括创建表和一些资源的准备。说明 若出现错误提示,或者一直处于该状态下无法开始迁移,请联系我们。
- 迁移准备完成后,任务状态变为数据迁移中。单击任务名称,在界面左侧单击数据迁移详情,该阶段将对全量数据和增量数据进行迁移。
迁移过程说明如下:
- 首先开始全量迁移。开始迁移后,源库中待迁移对象的存量数据,将全部迁移到目标库中。
- 全量迁移的进度达到100%后,将立即自动开始增量迁移,将全量迁移开始后源库中更新的数据持续同步至目标库。
增量迁移是一个动态持续进行的过程,在业务正式切换到目标库以前,是不会停止的。
- 增量迁移开始后,当源库和目标库中的数据大致追平后(表现为增量迁移的延迟在30秒以内),将自动开始数据校验,校验源库和目标库中的数据一致性,确保两端数据是动态一致的。
说明 以上三种迁移状态若出现错误提示,或者长时间没有进度变化,请联系我们。 - 当数据校验进度达到100%后,界面左侧导航栏单击评估与验证,查看是否有评估未通过的SQL,并进行针对性改造。
步骤5:开启回流迁移,并切换业务至PolarDB-X 2.0
当增量迁移的延迟在10秒内,且数据校验达到100%,SQL兼容性评估全部通过后,表明源库和目标库的数据除增量迁移的延迟外,已经达到一致。


当业务应用连接的数据库的迁移任务都达到以上状态时,可将业务从源实例切换至目标实例。
业务切换前,为了防止风险的发生(例如发现迁移的数据有误、新迁移的数据不符合预期等),建议开启回流迁移功能,将切换后新写入目标数据库的业务数据同步到源数据库,从而及时实现可逆的操作。
开启回流迁移后,可按照如下步骤将业务的应用连接从源实例切换至目标实例:
- 停止应用,检查源数据库是否还有连接,保证源数据库连接已经完全停止。说明
- 您可以检查源数据库的会话数(连接数),当会话值逐渐降低为0时,表示应用已经完全停止。
- 请确保源库和目标库都无回流迁移之外的同时写入,包括触发器、任务、业务写入等,否则无法保证两侧数据一致性。
- 由于增量迁移存在一定的延迟(10秒内),因此为了保证源库和目标库的数据完全一致,应用的停止时间需长于该延迟时间。
- 修改应用内的连接地址配置。您可前往目标实例的基本信息页获取新的连接地址信息。
- 重新启动应用,观察目标数据库的连接情况。
当切换至PolarDB-X 2.0实例后,新的业务数据将灌入对应数据库中。若您开启了回流迁移功能,切换后新产生的数据将同时增量同步至PolarDB-X 1.0实例对应的数据库中。