基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
Oracle Store 常见问题排查
更新时间:2026-08-11 09:11
本文为您介绍 Oracle Store 常见问题的定位和排查方法。
适用版本
适用于 OceanBase 迁移服务(OceanBase Migration Service,OMS)V3.3.0 及之后版本。
定位 Oracle Store 延迟是因为没有增量数据
问题背景
Oracle Store 的位点是由增量数据和心跳包来推进的,当数据库长时间没有增量数据时,位点只能依靠心跳包来推进。而心跳包来源于 Oracle 数据库内部的系统表的变更,这些系统表的变更也不会很及时,5 分钟以上才能产生一次变更数据,便导致从 OMS 管控页面上看到的增量延迟有一定的偏差。Oracle 数据库没有产生大量的数据,延迟却一直在几秒钟到几分钟之间跳动,造成困扰。
问题定位
长时间没增量导致的延迟时,管控上看到的延迟曲线一般是一个正弦波的样式,延迟是周期性的增大和减小。

在 OMS 容器中,进入到对应的 /home/ds/store/storexxxx 目录下,执行下面查询命令,查看当前正在分析的日志文件,若为在线日志,则说明 Oracle Store 的增量抽取是实时的,如果需要进一步确定,可在管控界面上进行一次全量校验,校验结果一致,说明增量是没有延迟的。
grep 'log entries from log file' log/connector/connector.log | tail -n 1
统计 Oracle 数据库指定日期时间内的日志量
使用场景
排查 Oracle Store 问题时,有时候需要查询 Oracle 数据库产生的日志量。
查询方法
下面 SQL 中展示了如何查询 Oracle 数据库最近 3 天内每小时和每天产出的归档数量和归档的大小。RAC 环境中,THREAD# 会有多个不同的值,需要注意区分不同的节点。如果需要修改查询区间,可以修改 SQL 中的 sysdate - 2 参数。
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
//最近 3 天每小时的日志量
select THREAD#,logtime,count(*),round(sum(blocks * block_size) / 1024 / 1024 / 1024) GBSIZE from (select a.THREAD#,trunc(first_time, 'hh') as logtime,a.BLOCKS,a.BLOCK_SIZE from v$archived_log a where a.DEST_ID = 1 and a.FIRST_TIME > trunc(sysdate - 2)) group by THREAD#, logtime order by THREAD#, logtime;
//最近 3 天每天的日志量
select THREAD#,logtime,count(*),round(sum(blocks * block_size) / 1024 / 1024 / 1024) GBSIZE from (select a.THREAD#,trunc(first_time, 'dd') as logtime,a.BLOCKS,a.BLOCK_SIZE from v$archived_log a where a.DEST_ID = 1 and a.FIRST_TIME > trunc(sysdate - 2)) group by THREAD#, logtime order by THREAD#, logtime;