本文档为您展示通过 OceanBase 数据迁移功能将数据库从 RDS MySQL 迁移至 OceanBase MySQL的操作步骤。OceanBase 数据迁移功能支持结构迁移、全量数据迁移和增量数据同步,保证您在切换数据库之前的数据库迁移环节快速、稳定,业务几乎无感知。
已为源端自建 MySQL 数据库和目标端 OceanBase MySQL 数据库创建了专用于数据迁移任务的数据库用户,并为其赋予了相关权限。
已在目标端 OceanBase MySQL 数据库中创建了对应的数据库。OceanBase 数据迁移功能支持表和列的迁移,不支持库的迁移,您需要提前在目标端创建对应的数据库。
已创建了源端和目标端的数据源。
已为自建 MySQL 数据库开启了 Binlog。
数据迁移只会将源库的数据(结构)复制一份到目标数据库,并不会对源库的数据(结构)造成影响。启动迁移任务之前,OceanBase 数据迁移功能会自动对源端数据库和目标端数据库执行数据迁移的预检查,为保证预检查顺利执行,请先确认以下信息:
自建 MySQL 数据库版本必须是 5.6 或 5.7 版本。
需要保证源端和目标端数据库的时钟同步。
MySQL 数据库的存储引擎为 InnoDB。
源端为 MySQL 数据库,字符集必须是 UTF8、UTF8MB4 和 GBK。
源端表的数据类型目前只支持 bigint、varchar、tinyint、text、int、timestamp、blob、datetime、decimal、mediumblob、date、time、bit、char 和 binary。
自建数据库所在的 VPC 必须和 OceanBase 数据库实例位于同一地域。
迁移类型 |
迁移对象 |
---|---|
结构迁移 |
在结构迁移中,OceanBase 数据迁移功能将源库中的表和列迁移到 OceanBase 目标库中。 说明
OceanBase 数据迁移功能会自动过滤不支持迁移数据库对象。另外,请确认待迁移的数据中没有分区表和无主键表,否则预检查环节会提示报错。 |
全量迁移 |
在全量数据迁移过程中,当源库不断有业务写入时,在全量数据迁移完成之前 OceanBase 数据迁移功能会启动增量拉取模块以拉取源实例中的增量更新数据,对之进行解析和封装并存储在 OMS 中。 源端为 MySQL 数据库,不支持迁移 trigger、event、和routine。 |
增量同步 |
全量迁移过程开始后,将源库中发生变化的数据(新增、修改或删除)同步到 OceanBase 中对应的表里。在增量数据同步追平后,OceanBase 数据迁移功能会维护源库到目标库的实时数据同步链路。 增量数据迁移支持同步的 SQL 操作:
|
数据库 | 结构迁移 | 全量迁移 | 增量同步 |
---|---|---|---|
自建 MySQL 数据库 | SELECT 权限 | SELECT 权限 | REPLICATION SLAVE、REPLICATION CLIENT、SHOW VIEW 和 SELECT 权限 |
OceanBase MySQL 实例 |
对业务数据库具备创建表、创建索引和创建约束的权限。 |
对业务数据库具备 INSERT 权限。 |
对业务数据库具备 INSERT、UPDATE、DELETE 权限。 |
登录 OceanBase 控制台。
在左侧导航栏中单击数据传输>项目列表。
在页面右上角单击创建迁移项目。
指定源端与目标端。
指定源端、目标端和迁移项目使用的作业实例,并单击下一步。
配置 |
说明 |
---|---|
源端名称 |
源终端节点名称。如果没有合适的待选节点,单击新建源终端节点创建一个源终端节点。 |
目标端名称 |
目标端节点的名称。如果没有合适的待选节点,单击新建目标端创建一个目标端节点。 |
作业实例 |
处理迁移项目所用的作业实例。如果没有合适的作业实例,单击新建作业实例,创建一个新的作业实例。新建的作业实例需 1~3 分钟才能生效。 |
项目名称 |
当前迁移项目的项目名称。系统会自动为您拟定一个项目名称,由源节点和目标节点名称自动生成。 |
说明系统会自动检查源端和目标端节点的数据库网络连通性,如果显示 表示网络连通。
指定迁移类型及对象。
指定迁移类型,并在左侧源端数据库中勾选需要迁移或同步的对象,将其添加到右侧的目标端数据库中。
确认是否开启高级设置。
配置 |
说明 |
---|---|
增量记录保留时间 |
增量事务语句缓存在作业实例的最大时间。支持设置的范围为 1~2400 小时,默认为 72 小时。 此选项选择过大时会影响作业实例的磁盘空间。 |
全量迁移并发数 |
全量迁移的并发数量。支持设置的范围为 1~256 个,默认为 16 个。并发量越高,全量迁移速度越快。 |
确认信息无误后,单击预检查。
预检查阶段会对源端表的数据类型等方面进行全量检查,只有通过预检查才能成功创建迁移任务。
确认无误后,单击启动。
应用程序的测试实用程序类。此类提供了用于获取应用程序内部对象的方法,并且可以操作这些对象。例如,它可以控制 Ability 的生...
为您提供测试 HarmonyOS 应用程序的类。HarmonyOS 允许您实施测试代码以监视 HarmonyOS 应用程序的运行状态。您可以控制功能的生...
CookieHandlerjava.lang.Object |---java.net.CookieHandlerpublic abstract class CookieHandlerextends ObjectCookieHandler ...
Inet4Addressjava.lang.Object |---java.net.InetAddress |---|---java.net.Inet4Addresspublic final class Inet4Addressextend...
NetworkInterfacejava.lang.Object |---java.net.NetworkInterfacepublic final class NetworkInterfaceextends Object此类表示...
Observerpublic interface Observer当一个类想要被通知可观察对象的变化时,它可以实现 Observer 接口。方法总结修饰符和类型方...
FormPage表单页面,规定了标准表单的顶部的标题和底部的按钮提示等区域的规范代码引入在 page.json 中引入组件{"usingComponents...