codecamp

OceanBase VPC 内自建 MySQL 迁移至 OceanBase MySQL

本文档为您展示通过 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 操作:

  • DML:INSERT、UPDATE、DELETE、REPLACE。

  • DDL:不支持。


数据库用户权限

数据库 结构迁移 全量迁移 增量同步
自建 MySQL 数据库 SELECT 权限 SELECT 权限 REPLICATION SLAVE、REPLICATION CLIENT、SHOW VIEW 和 SELECT 权限

OceanBase MySQL 实例

对业务数据库具备创建表、创建索引和创建约束的权限。

对业务数据库具备 INSERT 权限。

对业务数据库具备 INSERT、UPDATE、DELETE 权限。

操作步骤

  1. 登录 OceanBase 控制台。

  2. 在左侧导航栏中单击数据传输>项目列表。

  3. 在页面右上角单击创建迁移项目。

    1. 指定源端与目标端。

      指定源端、目标端和迁移项目使用的作业实例,并单击下一步。

      配置

      说明

      源端名称

      源终端节点名称。如果没有合适的待选节点,单击新建源终端节点创建一个源终端节点。

      目标端名称

      目标端节点的名称。如果没有合适的待选节点,单击新建目标端创建一个目标端节点。

      作业实例

      处理迁移项目所用的作业实例。如果没有合适的作业实例,单击新建作业实例,创建一个新的作业实例。新建的作业实例需 1~3 分钟才能生效。

      项目名称

      当前迁移项目的项目名称。系统会自动为您拟定一个项目名称,由源节点和目标节点名称自动生成。

      说明 

      系统会自动检查源端和目标端节点的数据库网络连通性,如果显示 数据连通性 表示网络连通。

      自建2ob指定源端和目标端

    2. 指定迁移类型及对象。

      指定迁移类型,并在左侧源端数据库中勾选需要迁移或同步的对象,将其添加到右侧的目标端数据库中。

      创建迁移项目-设置迁移对象

      确认是否开启高级设置。

      配置

      说明

      增量记录保留时间

      增量事务语句缓存在作业实例的最大时间。支持设置的范围为 1~2400 小时,默认为 72 小时。

      此选项选择过大时会影响作业实例的磁盘空间。

      全量迁移并发数

      全量迁移的并发数量。支持设置的范围为 1~256 个,默认为 16 个。并发量越高,全量迁移速度越快。

      创建迁移项目-高级设置

    3. 确认信息无误后,单击预检查

      预检查阶段会对源端表的数据类型等方面进行全量检查,只有通过预检查才能成功创建迁移任务。

      创建千亿项目-预检查

  4. 确认无误后,单击启动


OceanBase 从 RDS MySQL 迁移至 OceanBase MySQL
OceanBase 从通过数据库网关接入的自建 MySQL 迁移至OceanBase MySQL
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OceanBase 控制台指南

OceanBase ODC 使用指南

OceanBase Web 版 ODC

OceanBase 客户端版 ODC

OceanBase Connector/J 开发者指南

OceanBase 什么是OceanBase Connector/J

OceanBase SQL 参考(MySQL 模式)

OceanBase SQL 参考(Oracle 模式)

OceanBase 基本元素

OceanBase 数据库对象

OceanBase 函数

OceanBase 单行函数

OceanBase 返回数字的字符串函数

OceanBase 通用比较函数

OceanBase 编码解码函数

OceanBase SQL 调优指南

OceanBase 相关协议

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }