随着国家对自主可控的日益重视,目前在各个行业和区域中面临越来越多的国产化,采用有自主知识产权的国产数据库正在成为主流。长期以来,作为拥有纯国产自研背景的 TapData,自是非常重视对于更多国产信创数据库的数据连接器支持,旗下产品已陆续与阿里云、华为云、麒麟软件、优炫数据库、Apache Doris、人大金仓、OceanBase 等国产数据库及操作系统完成产品生态集成认证或产品兼容互认证。
本专题将以 TapData 正在支持的各国产信创数据源为原点,提供详细的数据库同步、迁移教程,为有需求的用户提供更灵活的工具选择。本文将介绍的 TapData 数据源为——OceanBase。
国产化浪潮之下,基础软件自主可控迫在眉睫,越来越多的国内企业开始从 Oracle、MySQL 这一类海外数据库向国产数据库迁移,TapData 的能力恰好满足企业快速、无痛实现迁移的需求,有效推动信创行业国产化建设更进一步。信创领域和基础软件设施的自主可控作为国家重点关注领域,全面国产化替代的进程仍在全速前进中。
同为国产基础软硬件生态的积极建设者,TapData 一直以来都在坚持拓展并持续深化与更多国产信创数据库的生态与战略伙伴关系,以期推动更多行业数据管理解决方案及创新应用的落地,提供更加广泛的基础设施选择及技术服务保障,从而为加速国产软硬件产品的应用普及与协同发展贡献力量。纯国产自研的背景更是为 TapData 的这一发展目标添翼。目前,TapData 已成功实现对主流国产数据库的广泛支持,以 OceanBase 为例:
OceanBase 数据库(OceanBase Database) 是蚂蚁集团旗下企业级原生分布式关系数据库,100%自主研发,已连续 11 年稳定支撑双 11,在普通硬件上实现金融级高可用,首创“三地五中心”城市级故障自动无损容灾新标准,刷新 TPC-C 标准测试,单集群规模超过 1500 节点,具有云原生、强一致性、高度兼容 Oracle/MySQL 等特性。14 年持续深耕海量核心场景,已助力金融、政务、运营商等多个国产化一线行业的众多客户实现关键业务系统升级。
此外,作为 2024年7月墨天轮中国数据库流行度排行榜上的 Top2,OceanBase 也是国产化技术环境中常见的身影之一。那么,如何高效实现 OceanBase 的数据同步?
一、OceanBase 数据迁移方案
更多详情,参见《OceanBase 数据库技术文档-数据迁移》: https://www.oceanbase.com/docs/oceanbase-database-cn
数据迁移是日常运维操作的一种常见操作,是调整集群负载和机房搬迁的必备操作。虽然集群内部、表与表之间数据归档、磁盘水位均衡、资源单元搬迁等操作在 OceanBase 数据库中可以通过简单命令快速发起,但是涉及异构数据源和集群间的数据同步等功能时就需要借助外部工具。
应用场景
数据迁移是数据库运维常见的操作,主要有如下的应用场景:
- 调整集群负载和机房搬迁。
- 数据导出到文件、从文件导入到数据库。
- 数据库替换。
- 数据库逻辑复制,包括读写分离、数据库容灾、业务多活等。
- 业务上的数据复制需求。
迁移方案
OceanBase 数据库提供丰富的数据迁移复制方法,包括:
- 使用 OMS 迁移(建议)
- 使用 obloader & obdumper 迁移
- 使用 obloader 导入数据
- 使用 obdumper 导出数据
- 使用 SQL 脚本迁移
- 使用 MyDumper 迁移
- 使用 TapData 迁移
- 使用 DataX 迁移
- 使用 OUTFILE 语句迁移
- 使用 DBCAT 迁移
迁移方案具体支持情况如下:
迁移方案 | 结构迁移 | 全量数据迁移 | 增量数据迁移 | 数据校验 | 支持的数据源 |
---|---|---|---|---|---|
OMS | 支持 | 支持 | 支持 | 支持 | OceanBase MySQLOracle PostgreSQL DB2_LUW TiDB Kafka RocketMQ Datahub |
obloader & obdumper | 支持 | 支持 | 不支持 | 不支持 | OceanBase |
SQL 脚本迁移 | 支持 | 支持 | 不支持 | 不支持 | 主流数据库,但无法跨实例做数据迁移 |
MyDumper | 支持 | 支持 | 不支持 | 不支持 | MySQL 兼容的数据源 |
TapData | 支持 | 支持 | 支持 | 支持 | 内置 100 数据连接器(含 OceanBase 源与目标的支持),包含商业数据库、开源数据库、云数据库、数据仓库、数据湖、消息队列、SaaS 平台、文件等,且支持自定义数据源较多,具体范围查看官方文档 |
DataX | 支持 | 支持 | 不支持 | 不支持 | 较多,具体范围查看官方文档 |
OUTFILE 语句 | 不支持 | 支持 | 不支持 | 不支持 | MySQL OceanBase |
DBCAT | 支持 | 不支持 | 不支持 | 不支持 | 较多,具体范围查看官方文档 |
以上是几种 OceanBase 适用的数据迁移方法及工具:
二、TapData 高效迁移教程:以 OceanBase → MySQL 为例
更多详情,参见《TapData 帮助文档-连接数据源-自建数据库 OceanBase》: https://docs.tapdata.net/prerequisites/on-prem-databases/oceanbase
完成 TapData Agent 部署后,即可跟随以下教程在 TapData 中添加 OceanBase 数据源(支持版本:OceanBase 3.x),后续可将其作为源或目标库来构建数据管道。这里我们将以 OceanBase 为数据源,MySQL 为数据目标进行模拟演示。(*涉及工具版本为 Tapdata 本地部署版)
版本指路:
>>> 点击登录 Tapdata Cloud
>>> 申请试用 Tapdata 本地部署版
① 准备工作
1. 确保 TapData 所属的网络已加入 OceanBase 的租户白名单中。
2. 以 root 用户登录到租户。
3. 执行下述格式的命令,创建用于数据同步的用户
代码语言:javascript复制CREATE USER 'username' IDENTIFIED BY 'password';
- username:用户名。
- password:密码。
4. 执行下述格式的命令,为刚创建的用户授予库级别所有权限,您也可以基于业务需求自定义更精细化的权限控制。
代码语言:javascript复制GRANT ALL ON database_name.* TO username;
- database_name:数据库名称。
- username:用户名。
② 创建 OceanBase 的连接
*OceanBase 有 MySQL 和 Oracle 两种运行模式,依据 JDBC 驱动连接时的租户名称判断,目前 TapData 两种模式都可支持。
1. 进入 TapData 控制台,在左侧导航栏,单击连接管理。
2. 单击页面右侧的创建,在弹框中,搜索并选择 OceanBase。 3. 在跳转到的页面,根据下述说明填写 OceanBase 连接信息:
- 连接信息设置
- 连接名称:填写具有业务意义的独有名称。
- 连接类型:支持 OceanBase 数据库作为源或目标。
- 地址:数据库连接地址。
- 端口:数据库的服务端口,默认为 2881。
- 数据库:数据库名称,即一个连接对应一个数据库,如有多个数据库则需创建多个数据连接。
- 账号:数据库的租户账号,格式为 用户名@租户名,例如要通过 tapdata 账号连接默认的 test 租户时,即填写为 tapdata@test。
- 密码:租户账号对应的密码。
- 额外参数:额外的连接参数,默认为空。
- 时区:默认为数据库所用的时区,您也可以根据业务需求手动指定。
- 高级设置
- Agent 设置:默认为平台自动分配,您也可以手动指定 Agent。
- 模型加载频率:数据源中模型数量大于 1 万时,TapData 将按照设置的时间定期刷新模型。
4. 单击连接测试,测试通过后单击保存:
*提示:如提示连接测试失败,请根据页面提示进行修复。
③ 创建 MySQL 的连接
1. 参照 OceanBase 连接创建流程,完成 MySQL 连接配置信息填写,添加数据目标 MySQL:
2. 测试 MySQL 连接:
3. 模型加载成功
④ 创建数据复制/开发任务
1. 左侧导航栏点击数据复制,并点击右侧创建:
2. 进入 DAG 页面,构建数据复制任务,通过拖拉拽的方式添加源与目标节点,并连接源与目标:
3. 单击源与目标节点,即可按需对二者进行设置:
4. 保存任务
⑤ 任务启动与监控
1. 启动任务,任务全量同步正常运行:
2. 源表和目标表数据检验 count 一致,内容一致
3. 增量同步:数据源表新增数 1,目标表新增数 1,检查源表和目标表,源表和目标表依次新增这条数据
以上,便是借助 TapData 快速实现 OceanBase 到 MySQL 的全、增量同步的模拟教程。
后续,我们还将陆续输出 GaussDB、人大金仓Kingbase、神州通用、南大通用、OpenGauss、瀚高、 TDengine、TDSQL、VastBase等热门国产数据源的连接教程,欢迎关注 TapData 官方公众号,了解更多。