首批通过分布式安全可靠测评,为关键业务系统打造
数据备份遇到删除的租户可能会 core
更新时间:2025-06-23 08:16
问题现象
发起物理备份的时,遇到已经删除的租户可能会 core,core 的堆栈如下所示。具体需要查看 ob_schema_mgr.h 这一行中对应的 schema 是否为 null。
afe_backtraceat /build_rpm/depsl/oblibjsrclib/deps/obliblsrclib/signal/ob_libunwind.c:29
oceanbase:common:coredumpcb(int,siginfot*)at /build_rpmjdepsj/oblib/srclibljdeps/oblib/srclibjsignal ob_signalhandlers.cpp:1442222:0
oceanbaseshare:schema:obsimplelenantschema:isrestore(constat /build_rpm/src/rootserverl/src/share/schema/ob_schema_mgr.h:133
oceanbaserootserver:obrootbackup:get_alltenantids(oceanbase:common:oblarray<unsignedlong>&)at./build_rpm/srcrootserver ljsrcl rootserver/ob_rootbackup.cpp:366
oceanbase:rootserver:obrootbackup:get_need_backuptenantids(oceanbase:common:oblarray<unsignedlong>&at build_rpm/src/rootserverl/srcrootserverjob_rootbackup.cpp:276
oceanbase::rootserver::obrootbackup:run3()at /buildrpm/srclrootserverl/srclrootserverlob_rootbackup.cpp:18
oceanbase:rootserver:obrsreentrantthread:run2(at buildrpm/srclrootserverl/srclrootserverlobrsreentrantthread.h:41
问题原因
对应的接口会返回 OB_SUCCESS 的同时可能返回一个空指针,上层使用的时候都需要检查一下对应的指针是否为空。
问题的风险及影响
发起物理备份的时候 OBServer 会 core,可能会造成多数派 core,服务不可用。
影响版本
OceanBase 数据库 V2.2.x 和 V3.x 所有版本。
解决方法及规避方式
手动清理掉
__all_tenant_history中关于删除租户的记录。警告
手动修改内部表存在一定的风险,请联系 OceanBase 技术支持团队咨询。
拉起来 OBServer 的时候手动修改内部表,关闭数据备份。
升级至问题已修复版本。 目前已修复的版本包括 OceanBase 数据库企业版 V2.2.77 BP19 (oceanbase-2.2.77-119000122024060513)、V3.2.3 BP11 (oceanbase-3.2.3.3-111000032024070822) 、V3.2.4 BP8 (oceanbase-3.2.4.8-108000142024041520) 及后续版本。