首批通过分布式安全可靠测评,为关键业务系统打造
归档介质故障,归档长时间卡住,500 租户内存占用无法释放
更新时间:2026-05-12 09:06
问题现象
归档介质故障并且归档处于开启状态,并且分区数量多的情况下,ArcClogTask 占用内存逐渐累计,表现为 500 租户 ArcClogTask 内存占用高。
关键诊断信息
触发条件
归档介质故障并且归档处于开启状态,并且分区数量多。
事后诊断
ArcClogTask 占用内存逐渐累计。
问题原因
正常情况下,ArcClogTask 很小,因此在使用上未对该块内存使用做限制。正常情况 ArcClogTask 由某后台线程 A 申请,由归档 sender 线程释放。当归档介质故障,sender 线程 hang 或者无法消费归档数据,会造成 ArcClogTask 无法及时释放。如果不人为干预,直到归档介质恢复或者归档关闭,这部分内存才能释放。
同时 ArcClogTask 是分区级任务,分区数量多会加快这块内存的累计速度。对于分区少的集群,这部分内存可能几天都不会累计多少,对于分区多的集群,一两天可能就比较明显。
问题的风险及影响
如果遇到,500 租户内存得不到及时释放,OBServer 会无内存可以使用。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响的版本
OceanBase 数据库 V2.2.77 GA(oceanbase-2.2.77-20210508211731)及之后版本、V3.1.2 GA(oceanbase-3.1.2-20210618150922)及之后版本、V3.2.3 GA(oceanbase-3.2.3.0-20220418212020)及之后版本。
解决方法
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V2.2.77 BP14(oceanbase-2.2.77-114000072022120410)及之后版本、V3.1.2 BP11(oceanbase-3.1.2-111000052023010412)及之后版本、V3.2.3 BP6(oceanbase-3.2.3.3-106000102022111521)及之后版本。
监控归档介质以及归档进度,当归档出现落后时,确认介质是否有故障比如磁盘损坏、存储空间满等。
如果是归档介质可以恢复的异常,及时恢复归档介质,如果不能恢复介质,则关闭归档。