Oceanbase迁移服务
OceanBase 迁移服务(OceanBase Migration Service,OMS)是 OceanBase 提供的一种支持同构或异构RDBMS与OceanBase之间进行数据交互的服务,具备在线迁移存量数据和实时同步增量数据的能力。
支持多种数据源:OMS支持MySQL、 Kafka等多种类型的数据终端与OceanBase 进行实时数据传输
在线迁移无感知:在不停服的情况下,可以通过OMS无缝迁移数据至OceanBase。应用切换至OceanBase数据库后,OceanBase数据库上所有的变更数据会实时同步至切换前的源端数据库
安全可靠高性能:OMS能够实时复制异构的IT基础结构之间大量数据的毫秒级延迟;可以应用于数据迁移、跨城异地数据灾备、应急系统、实时数据同步、容灾、数据库升级和移植等多个场景
实时同步助解耦:OMS支持OceanBase两种租户与自建Kafka、RocketMQ之间的数据实时同步,可以应用于实时数据仓库搭建、数据查询和报表分流等业务场景
OMS架构概览:
OceanBase迁移服务(OceanBase Migration Service,OMS)连接的两端分别是待迁移的源业务数据库和目标端OceanBase数据库。
下图为OMS的系统架构图:
OMS分层功能体系
服务接入层
主要包括客户端迁移服务的交互、各种类型数据源的管理、迁移任务的录入、OMS各个组件模块的运维和监控,以及告警设置等。
流程编排层
主要负责实现上层表结构同步、启动全量数据同步、增量数据同步、数据校检和数据订正,以及链路切换等任务的执行细节。
组件链路层
组件链路层包括以下模块:
负责全量数据的迁移和校检,并针对校检不一致的数据生成订正 SQL
脚本的 Light-Dataflow 模块。
负责数据库增量日志的读取、解析和存储的 Store 模块。
负责向目标端数据库并发写入的JDBCWriter模块。
负责向目标端消息队列增量写入的Connector模块。
负责组件状态监控的Supervisor模块。
OMS功能-数据迁移
迁移任务
迁移任务是 OMS 数据迁移功能的基本单元。OMS 在创建迁移任务时,可以指定的最大迁移范围是数据库级 别,最小迁移范围是表级别。迁移任务的生命周期包括结构迁移、全量数据迁移和增量迁移同步链路的全部流程管理
迁移类型
OMS支持Schema结构迁移、全量数据迁移以及增量数据迁移,同时支持数据校验功能
利用OMS实现平滑去O迁移方案
数据实时同步 + 快速切换 + 回滚预案
OMS功能-数据同步
功能特性:
支持OceanBase的两种租户(Oracle 和 MySQL)与自建 Kafka、RocketMQ 之间的实时数据同步
支持Sybase ASE和自建RocketMQ之间的实时数据同步
支持OB_MySQL/Oracle/MySQL和DataHub之间的实时数据同步
支持库、表和列三级对象名映射
同步对象的选择粒度为表、列,您可以根据需要选择同步的对象。OMS 可以实现对源端实例和目标实例的库名、表名或列名不同的两个对象之间进行数据同步。
支持消息队列处理工具作为数据同步的目标端。
支持OceanBase物理表和自建Kafka数据源之间的数据实时同步
支持数据过滤。
支持根据 DML 类型过滤投递消息,过滤需要同步的数据
完善的性能查询体系。
数据同步提供同步延迟、当前同步位点等数据,便于您查看同步链路的性能
动态管理数据同步任务。
支持在数据同步过程中动态增加同步数据表,并支持回拉位点重新投递增量数据
OMS功能总结
数据库不停服迁移
在传统的数据库停机迁移的方式进行数据迁移对业务影响较大
OMS不停服数据迁移功能不影响迁移过程中源数据库持续对外提供服务,能够最小化数据迁移对业务的影响
在完成结构迁移、全量数据迁移和增量数据迁移后,源数据库的全量和增量数据均已实时同步至目标数据库中,数据校验通过后,业务可以从源端切换至目标端
实时数据同步
OMS的数据同步功能支持实时同步OceanBase、Sybase等数据库的增量数据至自建的Kafka、RocketMQ等消息队列
OMS支持OceanBase物理表和自建的Kafka等数据源之间的数据实时同步,推荐用于云 BI、实时数据仓库搭建、数据查询和报表分流等多种业务场景