Oracle应用目录空间满,日志报错ORA-00600定位方法

xiaoxiao2022-07-05  23

     某日,突然出现/oracle应用目录空间满,通过”du -sh”命令依次查找空间异常目录,发现在/oracle/app/oracle/diag/rdbms/oracleinstance/oracleinstance目录下incident和trace占用了异常大空间。

如下记录了定位详细问题的方法。

 

1.确认Oracle告警

      打开/oracle/app/oracle/diag/rdbms/oracleinstance/oracleinstance/trace/alert_minos.log文件,发现诸多“ORA-00600”相关的告警。

2.查找告警所在表或索引

      进入oracle日志目录:/oracle/app/oracle/diag/rdbms/oracleinstance/oracleinstance/trace目录,执行命令:

grep seg\/obj\: *.trc>abc.txt

      然后打开abc.txt文件,找到所有的trc里的object id,将object id由16进制转化为10进制,比如下面的:0x14df4,对应10进制为:85492。

oracleinstance_ora_10715.trc: seg/obj: 0x14df4  csc: 0x00.f622486  itc: 2  flg: E  typ: 1 - DATA

      登陆数据库

sqlplus sys/passwd@数据库id as sysdba

      执行命令

select * from dba_objects where object_id=85492;

      命令会显示id对应的表,或者索引表名称

      如果是索引表,执行下面的命令可以查询到索引表对应的表      

select owner,index_name, table_owner,table_name from dba_indexes where index_name like 'PK_INDEXNMAE';

     如果是表,执行下面的命令可以查询到对应的索引表      

select owner,index_name,table_owner,table_name from dba_indexes where table_name like 'TABLENAME';

3. 对问题表进行分析           

analyze table USERNAME.TABLENAME validate structure cascade;

        如果分析结果异常,则报错:ORA-XXXX: xxxxxxxxxx - see trace file

        如果分析结果正常,则显示的消息:Table analyzed.

 

4.问题修复

    根据报错的信息,进行相应修复,具体修复方法请按照表分析的的异常码进行查找方法。

    如果修复方法是需要重建表对应索引,则执行如下操作:

        企业版:

alter  index USERNAME.PK_INDEXNMAE  rebuild  online;

        标准版:

alter  index USERNAME.PK_INDEXNMAE  rebuild;

 

转载请注明原文地址: https://www.6miu.com/read-4968460.html

最新回复(0)