ORA-00600造成磁盘占满的处理

ORA-00600造成磁盘占满的处理

1、问题现象:

ORA-00600错误比较麻烦,在物化视图刷新的时候遇到,无法解决。后来只能有脚本同步数据,变通解决。
最近发现磁盘满了。
查询发现是
C:\app\Query\diag\rdbms\oracledb\oracledb\incident
跟踪文件占满了空间,大概有40G。

2、处理过程

清理incident下的trace文件的方法,使用ADRCI工具:
ADRCI是一个命令行工具,是Oracle 11g中引入的故障可诊断性架构的一部分。 ADRCI可以完成以下功能:

  • 查看自动诊断信息库(ADR)中的诊断数据。
  • 查看Health Monitor报告。
  • 将事件和问题信息打包到zip文件中以传输到Oracle Support

adrci无需单独安装,只要配置了ORACLE_HOME和PATH环境变量即可,直接输入adrci即可。

(1)查看home路径:

adrci> show home
ADR Homes:
diag\clients\user_Query\host_1907755824_80
diag\clients\user_SYSTEM\host_1907755824_80
diag\rdbms\oracledb\oracledb
diag\tnslsnr\Query\listener

使用前需设置路径,非常重要!!!

adrci> set home diag\rdbms

(2)查询异常事件

adrci> show incident

ADR Home = C:\app\Query\diag\rdbms\oracledb\oracledb:
*************************************************************************
INCIDENT_ID          PROBLEM_KEY                                                 CREATE_TIME                            
-------------------- ----------------------------------------------------------- ----------------------------------------
19657                ORA 600 [ORA-00600: 内部错误代码, 参数: [ktcrcm: caller pas 2021-11-05 17:23:39.301000 +08:00      
19658                ORA 600                                                     2021-11-05 17:24:01.363000 +08:00      
19585                ORA 600 [ORA-00600: internal error code, arguments: [ktcrcm 2021-11-05 17:32:41.884000 +08:00      
19586                ORA 600                                                     2021-11-05 17:32:43.828000 +08:00      
... ...
First 50 rows fetched (*** more available ***)

显示50条记录。

(3)查询问题

adrci> show problem

ADR Home = C:\app\Query\diag\rdbms\oracledb\oracledb:
*************************************************************************
PROBLEM_ID           PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME      
-------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
2                    ORA 600 [ORA-00600: 内部错误代码, 参数: [ktcrcm: caller pas 19657                2021-11-05 17:23:39.301000 +08:00
3                    ORA 600 [ORA-00600: internal error code, arguments: [ktcrcm 19585                2021-11-05 17:32:41.884000 +08:00
4                    ORA 600 [ORA-00600: internal error code, arguments: [ktcrcm 19609                2021-11-05 17:41:42.103000 +08:00
... ...
463                  ORA 600 [ORA-00600: 内部错误代码, 参数: [ktcrcm: caller pas 23565                2021-11-07 20:22:45.094000 +08:00
First 50 rows fetched (*** more available ***)

(4)清除跟踪文件

清除命令:purge
根据默认策略删除当前ADR HOME下的所有诊断数据

purge -i 123 456

删除编号123到456之间事件数据

purge -age 60 -type incident

删除最后一小时之前所有事件的数据。由于数据量比较大,40G,差不多用了1个小时,才清理完。

3、帮助学习

adrci> help

 HELP [topic]
   Available Topics:
        CREATE REPORT
        ECHO
        EXIT
        HELP
        HOST
        IPS
        PURGE
        RUN
        SET BASE
        SET BROWSER
        SET CONTROL
        SET ECHO
        SET EDITOR
        SET HOMES | HOME | HOMEPATH
        SET TERMOUT
        SHOW ALERT
        SHOW BASE
        SHOW CONTROL
        SHOW HM_RUN
        SHOW HOMES | HOME | HOMEPATH
        SHOW INCDIR
        SHOW INCIDENT
        SHOW PROBLEM
        SHOW REPORT
        SHOW TRACEFILE
        SPOOL

 There are other commands intended to be used directly by Oracle, type
 "HELP EXTENDED" to see the list

查询命令的详细帮助,如purge命令:

adrci> help purge

  Usage: PURGE [[-i <id1> | <id1> <id2>] |
               [-age <mins> [-type ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]]]:

  Purpose: Purge the diagnostic data in the current ADR home. If no
           option is specified, the default purging policy will be used.

  Options:
    [-i id1 | id1 id2]: Users can input a single incident ID, or a
    range of incidents to purge.

    [-age <mins>]: Users can specify the purging policy either to all
    the diagnostic data or the specified type. The data older than <mins>
    ago will be purged

    [-type ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]: Users can specify what type of
    data to be purged.

  Examples:
    purge
    purge -i 123 456
    purge -age 60 -type incident

adrci> purge -age 60 -type utscdmp
adrci> purge -age 60 -type trace
adrci> purge -age 60 -type incident
adrci> purge -age 60 -type cdump
adrci> purge -age 60 -type utscdmp

你可能感兴趣的:(Oracle,优化,服务器,database,数据库)