本文档为您展示通过 OceanBase 数据迁移功能将数据库从 RDS MySQL 迁移至 OceanBase MySQL 的操作步骤。OceanBase 数据迁移功能支持结构迁移、全量数据迁移和增量数据同步,保证您在切换数据库之前的数据库迁移环节快速、稳定,业务几乎无感知。
已为源端 RDS MySQL 数据库和目标端 OceanBase MySQL 数据库创建了专用于数据迁移任务的数据库用户,并为其赋予了相关权限。
已在目标端 OceanBase MySQL 数据库中创建了对应的数据库。
OceanBase 数据迁移功能支持表和列的迁移,不支持库的迁移,您需要提前在目标端创建对应的数据库。
已创建了源端和目标端的数据源。
数据迁移只会将源库的数据(结构)复制一份到目标数据库,并不会对源库的数据(结构)造成影响。启动迁移任务之前,OceanBase 数据迁移功能会自动对源端数据库和目标端数据库执行数据迁移的预检查,为保证预检查顺利执行,
RDS MySQL 数据库版本必须是 5.6 或 5.7 版本。
源端表的数据类型目前只支持 bigint、varchar、tinyint、text、int、timestamp、blob、datetime、decimal、mediumblob、date、time、bit、char 和 binary。
RDS MySQL 数据库实例必须和 OceanBase 数据库实例位于同一地域。
迁移类型 |
迁移对象 |
---|---|
结构迁移 |
在结构迁移中,OceanBase 数据迁移功能将源库中的表和列迁移到 OceanBase 目标库中。
|
全量迁移 |
在全量数据迁移过程中,当源库不断有业务写入时,在全量数据迁移完成之前 OceanBase 数据迁移功能会启动增量拉取模块以拉取源实例中的增量更新数据,对之进行解析和封装并存储在 OMS 中。 源端为 MySQL 数据库,不支持迁移 trigger、event、和routine。 |
增量同步 |
全量迁移过程开始后,将源库中发生变化的数据(新增、修改或删除)同步到 OceanBase 中对应的表里。在增量数据同步追平后,OceanBase 数据迁移功能会维护源库到目标库的实时数据同步链路。 增量数据迁移支持同步的 SQL 操作:
|
数据库 | 结构迁移 | 全量迁移 | 增量同步 |
---|---|---|---|
RDS MySQL 数据库 | 待迁移对象的读权限。 | 待迁移对象的读权限。 | 待迁移对象的读权限。 |
OceanBase MySQL 实例 |
对业务数据库具备创建表、创建索引和创建约束的权限。 |
对业务数据库具备 INSERT 权限。 |
对业务数据库具备 INSERT、UPDATE、DELETE 权限。 |
登录 OceanBase 控制台。
在左侧导航栏中单击数据传输>项目列表。
在页面右上角单击创建迁移项目。
指定源端与目标端。
指定源端、目标端和迁移项目使用的作业实例,并单击下一步。
配置 |
说明 |
---|---|
源端名称 |
源终端节点名称。如果没有合适的待选节点,单击新建源终端节点创建一个源终端节点。 |
目标端名称 |
目标端节点的名称。如果没有合适的待选节点,单击新建目标端创建一个目标端节点。 |
作业实例 |
处理迁移项目所用的作业实例。如果没有合适的作业实例,单击新建作业实例,创建一个新的作业实例。新建的作业实例需 1~3 分钟才能生效。 |
项目名称 |
当前迁移项目的项目名称。系统会自动为您拟定一个项目名称,由源节点和目标节点名称自动生成。 |
说明系统会自动检查源端和目标端节点的数据库网络连通性,如果显示 ,表示网络连通。
指定迁移类型及对象。
指定迁移类型,并在左侧源端数据库中勾选需要迁移或同步的对象,将其添加到右侧的目标端数据库中。
确认是否开启高级设置。
配置 |
说明 |
---|---|
增量记录保留时间 |
增量事务语句缓存在作业实例的最大时间。支持设置的范围为1~2400小时,默认为72小时。 此选项选择过大时会影响作业实例的磁盘空间。 |
全量迁移并发数 |
全量迁移的并发数量。支持设置的范围为1~256个,默认为16个。并发量越高,全量迁移速度越快。 |
确认信息无误后,单击预检查。
预检查阶段会对源端表的数据类型等方面进行全量检查,只有通过预检查才能成功创建迁移任务。
确认无误后,单击启动。
执行计划缓存(Plan Cache)用于减少执行计划的生成次数。OceanBase 数据库会缓存之前生成的执行计划,以便在下次执行该 SQL 时...
SuppressWarnings@Target({TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})@Retention(SOURCE)public @interface Sup...
ProtocolFamilypublic interface ProtocolFamily代表一系列通信协议。方法总结修饰符和类型方法描述Stringname()返回协议族的名...
IDNjava.lang.Object |---java.net.IDNpublic final class IDNextends Object提供在普通 Unicode 表示和 ASCII 兼容编码 (ACE) ...
NetPermissionjava.lang.Object |---java.security.Permission |---|---java.security.BasicPermission |---|---|---java.net.Ne...
URLConnectionjava.lang.Object |---java.net.URLConnectionpublic abstract class URLConnectionextends Object抽象类 URLConne...
Setpublic interface SetEextends CollectionE不包含重复元素的集合。 更正式地说,集合不包含一对元素 e1 和 e2 使得 e1.equals...
AbstractCollectionjava.lang.Object |---java.util.AbstractCollectionEpublic abstract class AbstractCollectionEextends Obj...