暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle数据库迁移至OceanBase数据库--OMS结构迁移长时间无响应

IT那活儿 4天前
23

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!


环境介绍

某大型国企核心数据库迁移至OceanBase数据库,规划使用OMS进行数据迁移。

基本环境如下:

  • 源端
    Oracle 19c_X86平台
  • 目标端
    OceanBase 3.2.4.5_X86平台
  • 迁移工具
    OceanBase 迁移服务(OceanBase Migration Service),简称OMS版本OMS3.2.2-bp1_X86平台。

问题现象及分析

2.1 问题现象

规划完成迁移链路后,使用OMS发起迁移链路,迁移链路包含表结构迁移、全量数据迁移、增量数据库迁移(含DDL同步),迁移过程中多条链路卡在了结构迁移,有几张表状态一直处于创建中,具体如下:

2.2 问题分析

首先在目标库确定此部分表未创建成功;

然后通过命令进入OMS容器内排查组件日志;

docket exec -it oms bin/sh

cat /home/admin/logs/ghana/Ghana/common-error.log

cat /home/admin/logs/ghana/Ghana/database.log

cat /home/admin/logs/ghana/Ghana/dbcat.log

复制

排查日志均未出现任何错误;

接着对链路进行重启,再次排查组件日志均未发现任何错误。

最后怀疑可能新版本OMS遇到了bug,提个工单确认此问题在OMS4.2.3及之前版本都存在,预计在4.2.4中修复。


解决方案

根据此问题,工程师提供了确认此bug的一个action及处理方案:

step1 登录OMS的meta库进入oms_rm模式中

obclient -hxx.xx.xx.xx -P2883 -uroot@oms_meta_xx#meta_cluster  -p'******' -Doms_rm -A -c
复制

step2 根据OMS问题链路中获取链路项目ID

select * from oms_step where project_id = '项目id' and step_name = 'STRUCT_TRANSFER';
复制

step3 根据步骤2中sql查出来的step_info里的job_id字段查询,查询结果的数据显示 record_status = APPLYING,action_id = null,即可判定为该缺

select * from oms_struct_migration_record where task_id = '第一条sql查出来的step_info里的job_id字段' and record_status = 'APPLYING';
复制

step4 手动将状态调整为FETCHED

update oms_struct_migration_record set record_status='FETCHED' where task_id = '第一条sql查出来的step_info里的job_id字段' and record_status = 'APPLYING';
复制

重启OMS问题链路恢复。


总 结

OMS提供一种支持同构或异构数数据源与OceanBase数据库之间数据交付的服务,同时又具备在线迁移和实时同步增量的能力,通过可视化平台简单配置即可实时迁移数据。作为运维使用人员,需掌握迁移工具架构组成,以便出现问题时及时定位,提高效率。


END


本文作者:王某人(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论