codecamp

OceanBase 数据迁移

OceanBase 迁移服务(OceanBase Migration Service,OMS)提供数据迁移功能,帮助您方便、快速、实时地迁移其它数据源的数据至 OceanBase。该功能适用于数据库迁移至 OceanBase 和 OceanBase 数据库拆分扩容等场景。

OMS 部署服务器需要同时保持源实例和目标实例的网络连通。您只需要配置源端和目标库,并选择需要迁移的表(白名单)或无需迁移的表(黑名单),即可启动数据迁移任务。OMS 可以自动完成数据迁移的所有流程,您无需对中间任务进行启动、暂停等操作。

您可以通过数据迁移功能,迁移源端数据库(数据表)中的存量数据至目标端数据库(数据表)中,并保持源库到目标库的实时增量同步。

迁移任务

迁移任务是 OMS 数据迁移功能的基本单元。OMS 在创建迁移任务时,可以指定的最大迁移范围是数据库级别,最小迁移范围是表级别。迁移任务的生命周期包括结构迁移、全量数据迁移和增量迁移同步链路的全部流程管理。

迁移类型

OceanBase数据迁移

OMS 数据迁移支持 Schema 结构迁移、全量数据迁移和增量数据迁移等迁移类型:

  • Schema 结构迁移

    负责迁移源库中的表、索引、约束和注释等数据对象至 OceanBase 目标库中。当源端数据库非 OceanBase 时,会根据目标 OceanBase 租户类型的语法定义标准进行格式转换和拼装,然后复制至 OceanBase 目标库中。

  • 全量数据迁移

    OMS 支持迁移源库表中的存量数据至 OceanBase 库对应的表中。OMS 提供在线数据迁移功能,全量数据迁移过程中,如果源库不断有业务写入,在全量数据迁移完成前,OMS 会启动增量拉取模块,拉取源实例中增量更新的数据进行解析和封装后,将其存储在 OMS 中。

  • 增量数据迁移

    全量迁移任务开始后,在源库发生变化的数据(新增、修改或删除)为增量数据。OMS 支持迁移增量数据至 OceanBase 对应的表中。

    全量数据迁移完成后,OMS 会启动增量数据回放模块,从增量数据拉取模块获取增量数据。增量数据经过过滤和映射转换后,会同步至目标实例中。

    在增量数据同步追平后,OMS 会维护源库至目标库的实时数据同步链路。

数据校验

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

在增量数据同步过程中,您也可以发起自定义的数据校验,OMS 会提供相应的接口。针对校验出来不一致的数据,OMS 会提供以源端为基准,在目标端进行订正操作的 SQL 脚本。

OceanBase 组件基本原理
OceanBase 数据同步
温馨提示
下载编程狮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; }