迁移

PolarDB-X提供了评估迁移工具,帮助您将数据库从PolarDB-X 1.0迁移至PolarDB-X 2.0。

相关概念

  • 源实例:待迁移的PolarDB-X 1.0实例。

  • 源数据库(源库):源实例中要进行迁移的数据库。

  • 目标实例:要迁移至的PolarDB-X 2.0实例。

  • 目标数据库(目标库):目标实例中创建好的用于迁移至的数据库。

费用

评估迁移功能可免费使用。

注意事项

  • 当前评估迁移功能已面向中国地域发布。

  • 当前评估迁移工具仅支持结构迁移和数据迁移,其中结构迁移仅支持表和视图。数据库账号,数据库白名单配置,备份策略以及其他实例参数均需手动配置。

  • 当前评估迁移工具支持的是库级别的数据迁移功能,可选择多个库同时迁移。

  • 迁移将会对全量数据进行迁移。执行迁移前需评估源库和目标库的性能,因此建议在业务非高峰期执行迁移。迁移时会占用源和目标库一定读写资源,导致数据库的负载上升。

  • 在迁移期间,请勿对源实例和目标实例执行扩容、缩容、迁移热点表、变更拆分键和变更DDL等操作,否则会导致数据迁移任务失败、数据不一致或扩缩容失败等问题。

  • 如源实例存储类型为PolarDB for MySQL, 需打开下挂PolarDB for MySQL实例的Binlog功能。

  • 当前支持将PolarDB-X 1.0迁移至PolarDB-X 2.0的DRDS模式数据库和AUTO模式数据库。迁移至AUTO模式数据库时,目标实例版本需在polardb-2.3.0_5.4.18-17142802_xcluster5.4.18-20240412及以上。同时,由于AUTO模式数据库与DRDS模式数据库存在一定架构差异,建议进行业务测试和性能测试后再切换。

  • 迁移期间对目标实例性能有一定影响,不建议迁移至已有线上服务的数据库实例。

迁移前准备

在开始评估迁移前,请在源实例中:

  • 将源实例底层RDS的binlog_row_image设置为FULL,binlog_rows_query_log_events设置为ON。否则预检查阶段会提示报错,且无法成功启动数据迁移任务。支持在控制台的参数设置界面修改RDS参数:456789

  • 建议将源实例本地Binlog日志保存时间设置为至少保留7天,否则可能因无法获取Binlog而导致增量任务失败。支持在控制台的备份恢复界面修改日志保存时间:456789

  • 建议创建和使用迁移专用账号,减少正常业务和迁移之间的互相影响。

  • 待迁移的表需具有主键约束或非空唯一键约束,否则预检查阶段会提示报错,且无法成功启动数据迁移任务。

此外,请使用相同阿里云账号相同地域购买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 = '...'
  • 创建的目标数据库需授权给创建的账号,确保账号有目标数据库的读写权限。

  • 迁移过程中,评估迁移工具不会覆盖目标数据库中已有的表。但请确认目标数据库中不存在与源数据库中的表相同名称的表。否则预检查阶段会提示报错,且无法成功启动数据迁移任务。

步骤1:创建迁移任务

  1. 登录PolarDB分布式版控制台

  2. 在页面左上角选择目标实例所在地域。

  3. 实例列表页,单击PolarDB-X 2.0页签。

  4. 右侧导航栏单击评估迁移

  5. 单击创建迁移任务

  6. 在打开的页面中,填写如下内容。

    配置项

    说明

    任务名称

    为本次评估与迁移任务自定义一个名称。

    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实例下要迁移至的目标数据库。

    数据库账号、数据库密码

    对已选定的数据库有读写权限的账号及对应的密码。

    456789

  7. 单击开始兼容性评估,进入下一步。

    重要

    如果您选择自行验证兼容性,单击跳过,单击下一步,可以跳过兼容性评估步骤。

步骤2:兼容性评估

迁移任务创建完成后,将进行SQL兼容性评估。由于PolarDB-X 1.0与2.0的SQL语法略有差异,因此需要进行兼容性评估,评估源库的SQL语句是否完全兼容PolarDB-X 2.0的SQL语法。若不兼容,则需要对其进行针对性的改造。

当单击开始兼容性评估后,评估迁移工具将开始评估源库和目标库的兼容性情况。

兼容性

若存在未通过的SQL,您可根据PolarDB-X 2.0的SQL语法说明进行SQL改造。您也可先进行下一步,然后在迁移开始并校验完成后,对相关SQL进行改造。

步骤3:预检查

兼容性评估完成后,单击下一步,进入预检查阶段。

456879

预检查项有:

  • CONNECTIVITY:检查源实例对应库和目标实例对应库的用户名、密码、权限是否正确,以及两者的网络连通性。若失败,请检查实例的用户名、密码以及相关权限是否正确。

  • BINLOG_CONFIG:检查源实例底层RDS的Binlog参数设置是否正确。请确保已将源实例底层RDS的binlog_row_image设置为FULL,binlog_rows_query_log_events设置为ON。

  • TABLE_META:检查源实例库表的主键情况。若失败,请检查源实例待迁移的表,确保其需具有主键约束或非空唯一键约束。

  • CONFLICT:检查目标库中是否存在与源库中同名的表。若失败,请修改目标库中对应同名表的名称。

如存在报错项,可修复后点击重试,再次进行预检。

请确保所有预检查项均通过,否则无法开始迁移。

步骤4:结构迁移

当预检查的所有结果均通过后,单击开始结构迁移2024-03-11_131821.png

重要

如果您需要定制表结构并且能自行保证所有表结构已迁移至目标库,可单击跳过,跳过结构迁移步骤。

步骤5:数据迁移

  1. 当结构迁移通过后,单击开始数据迁移

    开始迁移后,返回迁移任务列表,能够查看任务状态。

    456789

  2. 开始迁移后,任务状态变为迁移准备中,包括创建表和一些资源的准备。

    说明

    若出现错误提示,或者一直处于该状态下无法开始迁移,请联系我们

  3. 迁移准备完成后,任务状态变为数据迁移中。单击任务名称,在界面左侧单击数据迁移详情,该阶段将对全量数据和增量数据进行迁移。任务详情

    迁移过程说明如下:

    1. 首先开始全量迁移。开始迁移后,源库中待迁移对象的存量数据,将全部迁移到目标库中。

    2. 全量迁移的进度达到100%后,将立即自动开始增量迁移,将全量迁移开始后源库中更新的数据持续同步至目标库。

      增量迁移是一个动态持续进行的过程,在业务正式切换到目标库以前不会停止。

    3. 增量迁移开始后,当源库和目标库中的数据大致追平后(表现为增量迁移的延迟在30秒以内),将自动开始数据校验,校验源库和目标库中的数据一致性,确保两端数据是动态一致的。

    说明

    以上三种迁移状态若出现错误提示,或者长时间没有进度变化,请联系我们