首页 云数据库 OceanBase 操作指南 数据传输 数据迁移 迁移 PolarDB-X 1.0 数据库的数据至 OceanBase 数据库 MySQL 租户

迁移 PolarDB-X 1.0 数据库的数据至 OceanBase 数据库 MySQL 租户

更新时间: 2023-08-28 16:44:08

本文为您介绍如何迁移 PolarDB-X 1.0 数据库的数据至 OceanBase 数据库 MySQL 租户。

背景信息

PolarDB-X 1.0 是由阿里巴巴自主研发的云原生分布式数据库,融合分布式 SQL 引擎和分布式自研存储 X-DB,基于云原生一体化架构设计。PolarDB-X 1.0 可以支撑千万级并发规模,以及百 PB 级海量存储。详情请参见 产品概述

PolarDB-X 1.0 数据库至 OceanBase 数据库 MySQL 租户的数据迁移项目启动成功后,该项目会自动删除。数据传输会自动创建 PolarDB-X 1.0 数据库下挂载的 MySQL 数据库至 OceanBase 数据库 MySQL 租户的数据迁移项目,其项目个数取决于 PolarDB-X 1.0 数据库底层的 MySQL 实例个数。

建议您使用标签或项目名称作为过滤条件对这些项目进行批量启动、批量暂停、批量正向切换等操作。批量操作的详情请参见 批量操作数据迁移项目

前提条件

使用限制

  • 源端数据库的操作限制

    请勿在全量迁移阶段执行库或表结构变更的 DDL 操作,否则可能造成数据迁移项目中断。

  • 数据传输支持 PolarDB-X 1.0 数据库 5.2.8、5.4.2、5.4.9 和 5.4.12 版本。

  • 数据传输支持 PolarDB-X 1.0 数据库下挂载的 RDS MySQL 兼容的 MySQL 数据库 5.5、5.6、5.7 和 8.0 版本,以及标准 RDS 和 PolarDB MySQL 实例。

  • 迁移 PolarDB-X 1.0 数据库的数据至 OceanBase 数据库 MySQL 租户时,数据传输不支持以下内容:

    • 不支持结构迁移和反向增量。

    • 不支持源端和目标端数据库跨阿里云账号。

    • 不支持迁移视图。

    • 不支持 PolarDB-X 1.0 数据库下挂载的 RDS MySQL 实例的账号、密码不一致。

  • OceanBase 数据库支持的字符集为 utf8mb4、gbk、gb18030、binary 和 utf16。

注意事项

  • 对于无唯一键表(指具有主键或者 Not Null UK 的表)的迁移,在重启或恢复全量迁移步骤时,通常数据传输会自动清空(TRUNCATE)重启或恢复前已完成同步的目标表。但在 PolarDB-X 1.0 场景下,RDS MySQL 数据库无唯一键表至 OceanBase 数据库 MySQL 租户的数据迁移项目的全量迁移步骤在重启或恢复时,数据传输不会自动清空目标表。

  • 如果您未配置 PolarDB-X 1.0 数据库对象的映射关系,则物理表的数据会全部同步至目标端相同名称的物理表中,即源端物理表的数量和目标端一致。

支持的源端和目标端实例类型

下表中,OceanBase 数据库 MySQL 租户简称为 OB_MySQL。

源端

目标端

PolarDB-X 1.0(阿里云 PolarDB-X 1.0 实例)

OB_MySQL(OceanBase 集群实例)

操作步骤

  1. 新建数据迁移项目。

    1. 登录 OceanBase 管理控制台

    2. 在左侧导航栏,单击 数据传输>数据迁移

    3. 数据迁移 页面,单击右上角的 新建迁移项目

  2. 选择源和目标 页面,配置各项参数。

    image

    参数

    描述

    迁移项目名称

    建议使用中文、数字和字母的组合。名称中不能包含空格,长度不得超过 64 个字符。

    重要

    项目名称是数据传输系统内的唯一标记,请自定义合适的项目名称。

    标签

    单击文本框,在下拉列表中选择目标标签。您也可以单击 管理标签,进行新建、修改和删除。详情请参见 通过标签管理数据迁移项目

    说明

    PolarDB-X 1.0 数据库至 OceanBase 数据库 MySQL 租户的数据迁移项目启动成功后,该项目会自动删除,请选择合适的标签进行标记。

    源端

    如果您已新建 PolarDB-X 1.0 数据源,请从下拉列表中进行选择。如果未新建,请单击下拉列表中的 新建数据源,在右侧对话框进行新建。参数详情请参见 新建 PolarDB-X 1.0 数据源

    目标端

    如果您已新建 OceanBase 数据库 MySQL 租户数据源,请从下拉列表中进行选择。如果未新建,请单击下拉列表中的 新建数据源,在右侧对话框进行新建。参数详情请参见 新建 OceanBase 数据源

    重要

    目标端仅支持实例类型为 OceanBase 集群实例 的 OceanBase 数据源。

    传输实例

    从下拉列表中选择已购买的传输实例。如果您未购买,请单击右侧的 购买 进行操作。详情请参见 购买传输实例

  3. 单击 下一步

  4. 单击弹出框中的 我知道了

    请注意目前本项目仅支持具有主键或者非空唯一索引的表,其它表及视图会自动过滤。

  5. 选择迁移类型 页面,配置各项参数。

    迁移类型支持 全量迁移增量同步全量校验。

    迁移类型

    描述

    全量迁移

    全量迁移任务开始后,数据传输会迁移源库表的存量数据至目标端数据库对应的表中。

    执行数据迁移前,请评估源端和目标端的性能,建议业务低峰期执行数据迁移。否则全量迁移期间,数据传输占用源端和目标端一定的读写资源,可能会导致数据库的负载上升。性能评估详情请参见 迁移评估的性能评估

    增量同步

    增量同步任务开始后,数据传输会同步源库发生变化的数据(新增、修改或删除)至目标端数据库对应的表中。

    增量同步 支持的同步 DML 包括 InsertDeleteUpdate,您可以根据需求进行选择。详情请参见 DML 过滤

    全量校验

    在全量迁移完成、增量数据同步至目标端并与源端基本追平后,数据传输会自动发起一轮针对源库配置的数据表和目标表的全量数据校验任务。

    • 如果您选择了 增量同步,且 同步 DML 选项中未选择所有的 DML,则数据传输不支持本场景下的全量数据校验。

    • 执行数据迁移前,请评估源端和目标端的性能,建议业务低峰期执行数据迁移。否则全量校验期间,数据传输占用源端和目标端部分读资源,可能会导致数据库的负载上升。

  6. 单击 下一步。在 选择迁移对象 页面,选择迁移对象。

    目前仅支持通过 指定对象 的方式选择迁移对象。在左侧选中需要迁移的对象,单击 >,将其添加至右侧列表中。您可以选择一个或多个库的表作为迁移对象。

    数据传输支持通过文本导入对象,并支持对目标端对象进行重命名、设置行过滤、查看列信息,以及移除单个或全部迁移对象等操作。

    操作

    步骤

    导入对象

    1. 在选择区域的右侧列表中,单击右上角的 导入对象

    2. 在对话框中,单击 确定

      重要

      导入会覆盖之前的操作选择,请谨慎操作。

    3. 导入迁移对象 对话框中,导入需要迁移的对象。

      您可以通过导入 CSV 文件的方式进行库表重命名、设置行过滤条件等操作。详情请参见 下载和导入迁移对象配置

    4. 单击 检验合法性

      完成迁移对象导入后,请先检验合法性。目前暂不支持列字段映射。

    5. 通过检验后,单击 确定

    重命名

    数据传输支持重命名迁移对象的名称,详情请参见 数据库库表重命名

    设置

    数据传输支持 where 条件实现行过滤,详情请参见 SQL 条件过滤数据

    您还可以在 查看列 区域,查看迁移对象的列信息。

    移除/全部移除

    数据传输支持在数据映射时,对暂时选中到目标端的单个或多个对象进行移除操作。

    • 移除单个迁移对象

      在选择区域的右侧列表中,鼠标悬停至目标对象,单击显示的 移除,即可移除该迁移对象。

    • 移除全部迁移对象

      在选择区域的右侧列表中,单击右上角的 全部移除。在对话框中,单击 确定,即可移除全部迁移对象。

  7. 单击 下一步。在 迁移选项 页面,配置各项参数。

    参数

    描述

    实例规格

    展示所选传输实例的规格,不支持修改。

    目标端表对象存在记录时处理策略

    选择迁移类型 页面,选中 全量迁移,才会显示该参数。处理策略包括 忽略停止迁移

    • 选择 忽略,可能导致源端和目标端的数据不一致。

    • 选择 停止迁移,当系统检测到目标端表对象存在记录时,该项目将被置为失败状态。如果您需要继续进行数据迁移,请手动恢复该项目。

  8. 单击 预检查,系统对数据迁移项目进行预检查。

    预检查 环节,数据传输会检查数据库用户的读写权限、数据库的网络连接等是否符合要求。全部检查项目均通过后才能启动数据迁移项目。如果预检查报错:

    • 您可以排查并处理问题后,重新执行预检查,直至预检查成功。

    • 您也可以单击错误预检查项操作列中的 跳过,会弹出对话框提示您跳过本操作的具体影响,确认可以跳过后,请单击对话框中的 确定

  9. 预检查成功后,单击 启动项目

    如果您暂时无需启动项目,请单击 保存。后续您只能在 迁移项目列表 页面手动启动项目或通过批量操作启动项目。批量操作的详情请参见 批量操作数据迁移项目

    项目启动成功后,PolarDB-X 1.0 数据库至 OceanBase 数据库 MySQL 租户的数据迁移项目会自动删除,数据传输会保存 PolarDB-X 1.0 数据库下挂载的数据库至 OceanBase 数据库 MySQL 租户的数据迁移项目,并自动创建相应的数据源。您可以在弹出对话框中单击 下载为文件,将相关信息保存为 CSV 文件。

  10. 单击对话框中的 确定,进入 迁移项目列表 页面,单个或批量启动 MySQL 数据库至 OceanBase 数据库 MySQL 租户的数据迁移项目。

    数据传输支持在数据迁移项目运行过程中修改迁移对象,详情请参见 查看和修改迁移对象。数据迁移项目启动后,会根据选择的迁移类型依次执行,详情请参见 查看迁移详情

相关文档

阿里云首页 云数据库 OceanBase 相关技术圈