技术分享 | OMS 初识

本文详细介绍了OMS数据迁移工具的组件,如Ghana-endpoint、CM、oms-supervisor、store等的职责,并提供了进程分析,特别讨论了全量迁移和增量同步的进程区别。此外,文章还探讨了OMS的迁移流程,并提出针对sink_worker_number的优化策略,以及迁移任务的并发速度选择,以提升迁移效率。

作者:高鹏

DBA,负责项目日常问题排查,广告位长期出租 。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


本文主要贡献者:进行OMS源码分析的@操盛春(北分之光)

一、走进OMS

本文以OMS社区版3.3.1为例

我们可以从官方的地址上获取到它的架构图,这是它大概的样子:

可以看到一个OMS数据迁移工具它包含了很多的组件,有DBCat、Store、Connector、JDBCWriter、Checker 和 Supervisor 等,组件的各个功能这里就不copy官方的叙述了,毕竟有手就行。接下来说点官网上没有的。

之前领导让我进行OMS性能测试时要顺便打印火焰图看一下,分析迁移过程中时间都用在了哪里,但是当我登录OMS容器后看到很多相关java进程,一时间分不清哪个进程是做什么的,那么接下里我们就对这些进程逐一说明

1.Ghana-endpoint
[ActionTech ~]# ps uax | grep Ghana-endpoint
root        61  3.1  0.5 20918816 1582384 pts/0 Sl  Feb07 1756:47 java -Dspring.config.location=/home/ds/ghana/config/application-oms.properties -server -Xms1g -Xmx2g -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:/home/admin/logs/ghana/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/admin/logs/ghana -jar /home/ds/ghana/boot/Ghana-endpoint-1.0.0-executable.jar

Ghana-endpoint负责提供OMS 后台管理界面、调度TaskJob和StructTaskJob程序

tips:

StructTaskJob:结构迁移任务调度程序

TaskJob:

  • TaskJob::scheduledTask(),负责正向切换步骤的子任务执行的调度
  • TaskJob::scheduleMigrationProject(),负责结构迁移项目所有步骤初始化 & 任务执行进度监控的调度
2.commons-daemon(CM)
[ActionTech ~]# ps uax | grep commons-daemon
root        50  297  1.7 25997476 4711620 pts/0 Sl  Feb07 163685:09 java -cp /home/ds/cm/package/deployapp/lib/commons-daemon.jar:/home/ds/cm/package/jetty/start.jar -server -Xmx4g -Xms4g -Xmn4g -Dorg.eclipse.jetty.util.URI.charset=utf-8 -Dorg.eclipse.jetty.server.Request.maxFormContentSize=0 -Dorg.eclipse.jetty.server.Request.maxFormKeys=20000 -DSTOP.PORT=8089 -DSTOP.KEY=cm -Djetty.base=/home/ds/cm/package/deployapp org.eclipse.jetty.start.Main

CM集群管理进程,为OMS 管理后台进程提供接口,用于创建拉取增量日志、全量迁移、增量同步、全量校验等任务,以及获取这些任务的执行进度

3.oms-supervisor
[ActionTech ~]# ps uax | grep oms-supervisor
ds          63  1.0  0.3 11780820 985860 pts/0 Sl   Feb07 566:35 java -server -Xms1g -Xmx1g -Xmn512m -verbose:gc -Xloggc:./log/gc.log -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Dserver.port=9000 -DconfigDir=/u01/ds/supervisor/config/ -Dspring.main.allow-circular-references=true -jar ./bin/oms-supervisor.jar

oms-supervisor进程用于启动执行拉取增量日志、全量迁移、增量同步、全量校验等任务的进程(组件),并监控这些进程的状态

4.store

store增量日志拉取进程,它是多进程协作,直接抓取store进程可能会看到下面一坨,其根进程为 ./bin/store,该进程有子进程及多个后代进程。

  • ./bin/store:模拟源节点的从库,从源节点接收增量日志
  • /u01/ds/store/store7100/bin/metadata_builder:进行过滤、转换,写入文件,并对DDL进行处理

这些进程会持续不断的把需要迁移表的增量日志拉取到 OMS 服务器上存储起来,以供增量同步任务使用。

5.全量迁移和全量校验
[ActionTech ~]# ps -ef | grep VEngine
UID          PID    PPID  C STIME TTY          TIME       CMD
ds         32635   
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值