---
title: "组件基本原理 | OceanBase 文档中心"
description: 组件基本原理 本文为您介绍 OceanBase 迁移服务（OceanBase Migration Service，OMS）社区版组件的基本原理。 OMS 社区版组件包括 DBCat、Store、Full-Import、Incr-Sync 和 Supervisor 组件，Supervisor 组件负责对其它组件进行监控…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*L03BS6f-o40AAAAAAAAAAAAADiGDAQ/original) 迁移服务 OMSV 4.2.5 社区版

# 组件基本原理

更新时间：2026-04-14 15:40:37

[编辑](https://github.com/oceanbase/oms-doc/edit/V4.2.5/zh-CN/200.product-introduction/300.architecture/300.basic-principles-of-components.md)  

本文为您介绍 OceanBase 迁移服务（OceanBase Migration Service，OMS）社区版组件的基本原理。

OMS 社区版组件包括 DBCat、Store、Full-Import、Incr-Sync 和 Supervisor 组件，Supervisor 组件负责对其它组件进行监控。

![architecture11-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oms-enterprise/architecture11-zh.png)

## 结构迁移核心组件

OMS 社区版结构迁移的核心组件（DBCat）作为 OceanBase 原生的 Schema 转换引擎，可以根据源端、目标端具体的数据源类型和字符编码类型，进行精确的数据类型映射或转换。OMS 社区版的结构迁移组件支持转换、迁移数据库中的表、约束、索引和视图等多种对象。

同时，DBCat 可以严格对齐和兼容 OceanBase 的租户类型。例如，OceanBase 的某个版本暂时不支持源端数据库中的部分数据源类型，DBCat 会选择最兼容的数据类型进行转换映射。

由于异构数据库迁移可能涉及以下问题，您可以通过 DBCat 自动对 Schema 进行转换。

- 数据库引擎变化
 - 不同数据库的数据对象定义差别较大
 - 目标数据库中不支持部分源数据库的数据对象
 - 相同字段类型精度不匹配

对于复杂的异构数据库迁移，您可以通过 DBCat 产生基础脚本，数据库管理员（Database Administrator，DBA）再进行人工加工，最终在目标数据库生成 Schema。

## 增量拉取组件 Store

不同类型数据库的 Store 增量拉取组件的实现方式不同，例如 OceanBase Store 模块的实现方式是依赖于 OceanBase 数据库的 Liboblog 工具。

Liboblog 是 OceanBase 数据库的增量数据同步工具，通过 RPC 方式拉取 OceanBase 数据库各个分区的 Redo 日志后，结合各个表和列的 Schema 信息，转换 Redo 日志为中间定义的数据格式，最后以事务的方式输出修改的数据。

## 全量导入组件 Full-Import

Full-Import 组件负责将静态数据和部分增量数据从任务配置的源端迁移至目标端，您迁移的每张表都会经过数据切片、数据读取、数据加工和数据应用等步骤。

Full-Import 组件会根据表结构，选择合适的切片方式，将单表的数据并发迁移至目标端。对于全量的大部分数据源都实现了流式读取，减少对于源端的读取压力。

全量数据在目标端的应用使用了批量插入的方式，对于 OceanBase 数据库的分区表实现了根据分区写入聚合的逻辑，以提升写入效率。您选取的表会进行并发迁移，表内会通过切片位点 ACK 机制确保重启数据的完整性。

## 增量同步组件 Incr-Sync

Incr-Sync 组件负责将 Store 组件产生的增量数据应用至目标端。OMS 社区版将增量同步的 Record 主要抽象为 DML、DDL 和 HB，DML 包括 INSERT、UPDATE 和 DELETE。OMS 社区版通过将这些数据高效正确地应用至目标端，来确保数据的最终一致性。

- 对于唯一约束表：OMS 社区版通过主键操作的幂等性确保最终一致性。
 - 对于无主键表：OMS 社区版通过事务表机制防止事务重放确保一致性。
 - 目前 MySQL 数据库至 OceanBase 数据库 MySQL 租户的无主键表迁移，不保证数据的最终一致性。

## 全量校验组件 Full-Verification

Full-Verification 组件负责从源端和目标端读取数据，并根据映射关系（依赖索引信息）对两端的数据进行全字段对比，对比结果包括差异数据文件和订正 SQL 文件。

Full-Verification 组件会根据表结构选择合适的切片方式，从数据库中读取数据，能够对大部分数据源实现流式读取，减少读取压力。

Full-Verification 组件支持各种异构数据源之间的数据比对，内部会对数据进行格式化，确保数据比对的性能和一致性。同时，全量校验支持数据多轮复检，以降低由于数据同步延迟导致的误报。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
