【真实经验分享】 ORA-600 [qesmaGetTblSeg1]

问题描述

某客户的Oracle 11.2.0.4 版本的数据库,alert日志中报错 ORA-600 qesmaGetTblSeg1

查看MOS文档,与Bug 17957017描述的内容相似。

查看了相应的trc文件后发现

bash 复制代码
vobjHd xxxxxxxxx, obsoleted 1

分析

obsoleted 1 表示该表在 Shared Pool 中的对象头(vobjHd)已被标记为"已废弃"。这通常发生在对该表执行 DDL(如 ADD PARTITION、SPLIT PARTITION、TRUNCATE 等)之后,但依赖该对象的内存结构(如 PAM、分区访问上下文)没有被正确刷新。

解决方法

临时解决方法

刷新 Shared Pool,清除已废弃的对象头,这会导致短暂的硬解析,建议在业务低峰执行。

bash 复制代码
ALTER SYSTEM FLUSH SHARED_POOL;

根治方法

打补丁,或者升级到新版本的数据库。

相关推荐
与数据交流的路上1 小时前
MySQL 优化 -- 相关
数据库·mysql
Rooting++1 小时前
为什么mysql的表字段的collation会自动变
数据库·mysql
Wch1G0z8A1 小时前
Google 开源了啥,让 AI Agent 碰数据库不再是定时炸弹
数据库·人工智能·开源
tedcloud1231 小时前
cc-switch评测:多AI Coding Agent管理工具详解
数据库·人工智能·sql·学习·自动化
土狗TuGou2 小时前
SQL内功笔记 · 第8篇:事务的四大特性与隔离级别
数据库·笔记·后端·sql·mysql·oracle
Nturmoils2 小时前
一台 2C2G 服务器上的 KingbaseES 安装记录
数据库
SelectDB3 小时前
从 Machine-Readable 到 Agent-Ready:面向智能体的数据库接口演进
大数据·数据库·agent
画江湖Test4 小时前
Redis 块的原理
数据库·redis·缓存·性能优化