ob合并数据问题

【 使用环境 】生产环境
【 OB or 其他组件 】ob
【 使用版本 】4.3.5
【问题描述】
image
在ocp查看最近几天ob数据量在2点左右会增加。
初步查看是合并数据产生的。应如何分析该问题?
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

4 个赞

根因分析场景: 卡合并场景
根因分析命令: obdiag rca run --scene=major_hold
日志采集场景: 合并问题
日志采集命令: obdiag gather scene run --scene=observer.compaction

为了更准确地定位问题,我们建议使用 obdiag 工具来进行根因分析和日志采集,这将有助于我们确认是否存在数据合并导致的数据量增长问题。请您执行上述命令,并将生成的日志文件发送给我们以作进一步分析。同时,为了能够更全面地了解情况,请您回答以下问题:

  1. 您是否在 OCP 中配置了定时任务或计划作业在每天凌晨两点进行数据操作?
  2. 您是否观察到了除了数据量变化外,还有其他性能指标(如 I/O 使用率、CPU 负载)的变化?
  3. 您能否提供该时间段内系统运行的相关日志或监控图表?
  4. 是否存在其他定期任务在同一时间点执行?
  5. 该现象是何时首次出现的?是否有任何变更(软件更新、配置修改等)与此现象的出现时间相吻合?

以上信息将帮助我们更有效地分析问题并提出解决方案。感谢您的配合。

附上敏捷诊断工具 obdiag 使用帮助链接

合并时候会产生数据正常情况下在合并完成后会释放,看图里是未释放掉。
麻烦根据GV$OB_SERVERS的DATA_DISK_IN_USE字段查询下当前数据量

image

架构是2-2-2的么
截图看一下ocp server列表情况

image

是的2-2-2.

image
这里是不是算错了。 看着像是ocp的统计问题,ocp版本是多少

image
不好意思,敲错了。1024敲成102了

image

升级下ocp服务版本到436试试,前几天遇到个类似的是ocp采集问题

看起来不大像,通过
select sum(table_rows)/1024/1024/1024 from information_schema.tables where table_schema in (’’);
select sum(round(DATA_DISK_IN_USE/1024/1024/1024,2)) DATA_DISK_IN_USE_G from GV$OB_SERVERS;
这两个统计的和ocp是一致的。
刚刚手动合并也正常。但是也有新增。
我这边先观察几天看看。

ob也是435的吧?麻烦贴一下查询information_schema.tables的结果

是的。ob也是4.3.5
image
image
早上的时候手动做过合并后数据量也增加了一点。

2点左右合并期间的observer日志还存在么

已经没有了。早上10点左右做的手动合并
image
image
看起来像是ocp监控数据汇总不对。慢慢的把之前的丢掉了

是的 ocp数据采集的问题和tables表也存在问题,information_schema里面的表是为了兼容mysql制作的,查询系统信息建议还是使用GV$OB的视图

不太对,你查询的是table_rows是不是查错了

是的。这里我是猜测的。因为统计相近。
后面我看了下这个。
数据盘-V4.3.6-文档-分布式数据库使用文档 (oceanbase.com)

SELECT
a.tenant_id,
a.svr_ip,
a.svr_port,
sum( data_size )/1024/1024/1024 AS data_size,
sum( required_size )/1024/1024/1024 AS required_size
FROM
CDB_OB_TABLE_LOCATIONS a
LEFT JOIN ( SELECT tenant_id, tablet_id, svr_ip, svr_port, data_size, required_size FROM __all_virtual_tablet_meta_table ) b ON a.TENANT_ID = b.tenant_id
AND a.tablet_id = b.tablet_id
AND a.SVR_IP = b.SVR_IP
AND a.SVR_PORT = b.SVR_PORT
LEFT JOIN __all_virtual_table c ON a.TENANT_ID = c.TENANT_ID
AND a.table_id = c.table_id
where a.tenant_id = 1002
GROUP BY
a.tenant_id,
a.svr_ip,
a.svr_port

按这个统计也不对。
image
和下面这个不一致
select svr_ip ,round(DATA_DISK_IN_USE/1024/1024/1024,2)DATA_DISK_IN_USE_G from GV$OB_SERVERS
image

1 个赞