1. 程式人生 > >Oracle應用目錄空間滿,日誌報錯ORA-00600定位方法

Oracle應用目錄空間滿,日誌報錯ORA-00600定位方法

     某日,突然出現/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/[email protected]資料庫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;