ORA-00600_内部错误代码_参数19004

时间:2022-03-24 07:42:33
监控信息显示报如下错误:
 ORA-00600: 内部错误代码, 参数: [19004], [], [], [], [], [], [], [], [], [], [], []

1.查看报错信息
查看alert.log文件中提示的trc文件显示运行下面一条sql语句报错的
INSERT INTO TREE_HIS.CK_BCLSB_MX
SELECT * FROM CK_BCLSB_MX TA
 WHERE NOT EXISTS
       (SELECT * FROM TREE_HIS.CK_BCLSB_MX
                 WHERE BOCI_NO = TA.BOCI_NO AND HANGHAO = TA.HANGHAO AND DANJ_NO = TA.DANJ_NO)
   AND NOT EXISTS (SELECT 1
                     FROM CK_KPD_HZ WHERE DANJ_NO= TA.DANJ_NO AND ZUOY_STATE<'N2' )
报 ORA-00600: 内部错误代码, 参数: [19004]

实际情况是运行一个procedure TREE.PRC_UTL_DAYTERM ,运行到上面一条语句就报了这个错误
信息如下:
ORA-12012: 自动执行作业 21477 出错         
ORA-14400: 插入的分区关键字未映射到任何分区                           
ORA-06512: 在 "TREE.PRC_UTL_DAYTERM", line 432    


2.分析报错信息
单独运行如下语句
   SELECT count(1)
  FROM CK_BCLSB_MX TA
 WHERE NOT EXISTS (SELECT *
          FROM TREE_HIS.CK_BCLSB_MX
         WHERE BOCI_NO = TA.BOCI_NO
           AND HANGHAO = TA.HANGHAO
           AND DANJ_NO = TA.DANJ_NO)
   AND NOT EXISTS (SELECT 1
          FROM CK_KPD_HZ
         WHERE DANJ_NO = TA.DANJ_NO
           AND ZUOY_STATE < 'N2')
不通过,报错误   
 ORA-00600: 内部错误代码, 参数: [19004], [], [], [], [], [], [], [], [], [], [], []


3.排查报错信息
网上查找一般是统计信息出错所致:
那么就通过DBA_TAB_STATISTICS视图,一张一张表分析这张表的统计信息,如下:
select * from DBA_TAB_STATISTICS where owner= upper('&owner') and  TABLE_NAME = upper('&table_name') ;
hbjzt@TREE6> select * from DBA_TAB_STATISTICS where owner='TREE_HIS' and  TABLE_NAME = 'CK_BCLSB_MX' ;

OWNER        TABLE_NAME               PARTITION_NAME
--------------- ------------------------------ ------------------------------------------------------------------------------------------
PARTITION_POSITION SUBPARTITION_NAME                                          SUBPARTITION_POSITION
------------------ ------------------------------------------------------------------------------------------ ---------------------
OBJECT_TYPE                   NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS
------------------------------------ ---------- ---------- ------------ ---------- ---------- ----------- ------------------------- -------------------
AVG_CACHED_BLOCKS AVG_CACHE_HIT_RATIO SAMPLE_SIZE LAST_ANALYZED      GLOBAL_ST USER_STAT STATTYPE_LOCKED STALE_STA
----------------- ------------------- ----------- ------------------ --------- --------- --------------- ---------
TREE_HIS    CK_BCLSB_MX

TABLE                    1704995       6070          0      0        0           45              0              0
                      1704995 26-MAR-14         YES       NO     ALL         NO

hbjzt@TREE6> select * from DBA_TAB_STATISTICS where owner= upper('&owner') and  TABLE_NAME = upper('&table_name') ;
Enter value for owner: TREE
Enter value for table_name: CK_BCLSB_MX
old   1: select * from DBA_TAB_STATISTICS where owner= upper('&owner') and  TABLE_NAME = upper('&table_name')
new   1: select * from DBA_TAB_STATISTICS where owner= upper('TREE') and  TABLE_NAME = upper('CK_BCLSB_MX')

OWNER        TABLE_NAME               PARTITION_NAME
--------------- ------------------------------ ------------------------------------------------------------------------------------------
PARTITION_POSITION SUBPARTITION_NAME                                          SUBPARTITION_POSITION
------------------ ------------------------------------------------------------------------------------------ ---------------------
OBJECT_TYPE                   NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS
------------------------------------ ---------- ---------- ------------ ---------- ---------- ----------- ------------------------- -------------------
AVG_CACHED_BLOCKS AVG_CACHE_HIT_RATIO SAMPLE_SIZE LAST_ANALYZED      GLOBAL_ST USER_STAT STATTYPE_LOCKED STALE_STA
----------------- ------------------- ----------- ------------------ --------- --------- --------------- ---------
TREE        CK_BCLSB_MX

TABLE                       4724     31          0      0        0           44              0              0
                         4724 14-JUL-16         YES       NO             NO


hbjzt@TREE6> select * from DBA_TAB_STATISTICS where owner= upper('&owner') and  TABLE_NAME = upper('&table_name') ;
Enter value for owner: TREE
Enter value for table_name: CK_KPD_HZ
old   1: select * from DBA_TAB_STATISTICS where owner= upper('&owner') and  TABLE_NAME = upper('&table_name')
new   1: select * from DBA_TAB_STATISTICS where owner= upper('TREE') and  TABLE_NAME = upper('CK_KPD_HZ')

OWNER        TABLE_NAME               PARTITION_NAME
--------------- ------------------------------ ------------------------------------------------------------------------------------------
PARTITION_POSITION SUBPARTITION_NAME                                          SUBPARTITION_POSITION
------------------ ------------------------------------------------------------------------------------------ ---------------------
OBJECT_TYPE                   NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS
------------------------------------ ---------- ---------- ------------ ---------- ---------- ----------- ------------------------- -------------------
AVG_CACHED_BLOCKS AVG_CACHE_HIT_RATIO SAMPLE_SIZE LAST_ANALYZED      GLOBAL_ST USER_STAT STATTYPE_LOCKED STALE_STA
----------------- ------------------- ----------- ------------------ --------- --------- --------------- ---------
TREE        CK_KPD_HZ

TABLE                       4667        247          0      0        0          268              0              0
                         4667 14-JUL-16         YES       NO             NO

hbjzt@TREE6> select count(1) from TREE_his.CK_BCLSB_MX ;

  COUNT(1)
----------
     38306    ---统计信息里显示是6070,相差很大,明显是统计信息出问题了。

但是为什么呢?其他的表有统计信息收集,而这张表没有呢



4. 查看自动任务是否开启:
 col client_name format a32  
    col consumer_group format a30  
    col window_group format a32  
    col servICE_name format a15  
    col attributes format a55  
    SELECT CLIENT_NAME,STATUS,CONSUMER_GROUP,WINDOW_GROUP,SERVICE_NAME,ATTRIBUTES FROM DBA_AUTOTASK_CLIENT;   

CLIENT_NAME             STATUS           CONSUMER_GROUP         WINDOW_GROUP              SERVICE_NAME
-------------------------------- ------------------------ ------------------------------ -------------------------------- ---------------
ATTRIBUTES
-------------------------------------------------------
auto optimizer stats collection  ENABLED          ORA$AUTOTASK_STATS_GROUP     ORA$AT_WGRP_OS
ON BY DEFAULT, VOLATILE, SAFE TO KILL

auto space advisor         ENABLED          ORA$AUTOTASK_SPACE_GROUP     ORA$AT_WGRP_SA
ON BY DEFAULT, VOLATILE, SAFE TO KILL

sql tuning advisor         DISABLED          ORA$AUTOTASK_SQL_GROUP     ORA$AT_WGRP_SQ
ONCE PER WINDOW, ON BY DEFAULT, VOLATILE, SAFE TO KILL


         col window_next_time format a26  
    col WINDOW_ACTIVE format a13  
    SELECT * FROM DBA_AUTOTASK_WINDOW_CLIENTS;  

WINDOW_NAME         WINDOW_NEXT_TIME        WINDOW_ACTIVE AUTOTASK_STATUS           OPTIMIZER_STATS        SEGMENT_ADVISOR
-------------------- -------------------------- ------------- ------------------------ ------------------------ ------------------------
SQL_TUNE_ADVISOR     HEALTH_MONITOR
------------------------ ------------------------
MONDAY_WINDOW         18-JUL-16 01.00.00.000000    FALSE          ENABLED               ENABLED            ENABLED
             AM +08:00
DISABLED         DISABLED

TUESDAY_WINDOW         19-JUL-16 01.00.00.000000    FALSE          ENABLED               ENABLED            ENABLED
             AM +08:00
DISABLED         DISABLED

WEDNESDAY_WINDOW     20-JUL-16 01.00.00.000000    FALSE          ENABLED               ENABLED            ENABLED
             AM +08:00
DISABLED         DISABLED

THURSDAY_WINDOW      21-JUL-16 01.00.00.000000    FALSE          ENABLED               ENABLED            ENABLED
             AM +08:00
DISABLED         DISABLED

FRIDAY_WINDOW         15-JUL-16 01.00.00.000000    FALSE          ENABLED               ENABLED            ENABLED
             AM +08:00
DISABLED         DISABLED

SATURDAY_WINDOW      16-JUL-16 01.00.00.000000    FALSE          ENABLED               ENABLED            ENABLED
             AM +08:00
DISABLED         DISABLED

SUNDAY_WINDOW         17-JUL-16 01.00.00.000000    FALSE          ENABLED               ENABLED            ENABLED
             AM +08:00
DISABLED         DISABLED


7 rows selected.

hbjzt@TREE6>       
hbjzt@TREE6>
hbjzt@TREE6> set linesize 300
   col job_info format a50  
    col job_name format a30  
    col window_name format a17  
    col job_status format a11  
    col job_duration format a13  
    col window_start_time format a26  
    col job_start_time format a26  
    SELECT CLIENT_NAME,WINDOW_NAME,WINDOW_START_TIME,JOB_NAME,JOB_STATUS,JOB_START_TIME,JOB_DURATION,JOB_ERROR,JOB_INFO  
      FROM (  
              SELECT CLIENT_NAME,  
                     WINDOW_NAME,  
                     WINDOW_START_TIME,  
                     JOB_NAME,  
                     JOB_STATUS,  
                     JOB_START_TIME,  
                     JOB_DURATION,  

                     JOB_ERROR,  
                     JOB_INFO,  
                     ROW_NUMBER() OVER(PARTITION BY CLIENT_NAME ORDER BY JOB_START_TIME DESC) AS RN  
                FROM DBA_AUTOTASK_JOB_HISTORY  
              ) T  
 15      WHERE RN <= 10;  

CLIENT_NAME             WINDOW_NAME       WINDOW_START_TIME          JOB_NAME                 JOB_STATUS  JOB_START_TIME         JOB_DURATION   JOB_ERROR JOB_INFO
-------------------------------- ----------------- -------------------------- ------------------------------ ----------- -------------------------- ------------- ---------- --------------------------------------------------
auto optimizer stats collection  THURSDAY_WINDOW   14-JUL-16 03.00.00.273000  ORA$AT_OS_OPT_SY_761         SUCCEEDED     14-JUL-16 03.00.02.457000  +000 00:06:05       0
                           AM +08:00                                 AM +08:00

auto optimizer stats collection  WEDNESDAY_WINDOW  13-JUL-16 03.00.00.147000  ORA$AT_OS_OPT_SY_741         SUCCEEDED     13-JUL-16 03.00.02.097000  +000 00:10:34       0
                           AM +08:00                                 AM +08:00

auto optimizer stats collection  TUESDAY_WINDOW    12-JUL-16 03.00.00.171000  ORA$AT_OS_OPT_SY_721         SUCCEEDED     12-JUL-16 03.00.02.371000  +000 00:06:34       0
                           AM +08:00                                 AM +08:00

auto optimizer stats collection  MONDAY_WINDOW       11-JUL-16 03.00.00.024000  ORA$AT_OS_OPT_SY_704         SUCCEEDED     11-JUL-16 03.00.02.052000  +000 00:02:33       0
                           AM +08:00                                 AM +08:00

auto optimizer stats collection  SUNDAY_WINDOW       10-JUL-16 03.00.00.141000  ORA$AT_OS_OPT_SY_701         SUCCEEDED     10-JUL-16 03.00.02.232000  +000 00:04:13       0
                           AM +08:00                                 AM +08:00

auto optimizer stats collection  SATURDAY_WINDOW   09-JUL-16 03.00.00.176000  ORA$AT_OS_OPT_SY_681         SUCCEEDED     09-JUL-16 03.00.02.314000  +000 00:20:48       0
                           AM +08:00                                 AM +08:00

auto optimizer stats collection  FRIDAY_WINDOW       08-JUL-16 03.00.00.182000  ORA$AT_OS_OPT_SY_661         SUCCEEDED     08-JUL-16 03.00.02.366000  +000 00:07:10       0
                           AM +08:00                                 AM +08:00

auto optimizer stats collection  THURSDAY_WINDOW   07-JUL-16 03.00.00.159000  ORA$AT_OS_OPT_SY_641         SUCCEEDED     07-JUL-16 03.00.01.422000  +000 00:09:11       0
                           AM +08:00                                 AM +08:00

auto space advisor         THURSDAY_WINDOW   14-JUL-16 03.00.00.273000  ORA$AT_SA_SPC_SY_762         SUCCEEDED     14-JUL-16 03.00.02.457000  +000 00:03:49       0
                           AM +08:00                                 AM +08:00

auto space advisor         WEDNESDAY_WINDOW  13-JUL-16 03.00.00.147000  ORA$AT_SA_SPC_SY_742         SUCCEEDED     13-JUL-16 03.00.02.097000  +000 00:04:49       0
                           AM +08:00                                 AM +08:00

auto space advisor         TUESDAY_WINDOW    12-JUL-16 03.00.00.171000  ORA$AT_SA_SPC_SY_722         SUCCEEDED     12-JUL-16 03.00.02.371000  +000 00:04:35       0
                           AM +08:00                                 AM +08:00

auto space advisor         MONDAY_WINDOW       11-JUL-16 03.00.00.024000  ORA$AT_SA_SPC_SY_705         SUCCEEDED     11-JUL-16 03.00.02.052000  +000 00:00:54       0
                           AM +08:00                                 AM +08:00

auto space advisor         SUNDAY_WINDOW       10-JUL-16 03.00.00.141000  ORA$AT_SA_SPC_SY_702         SUCCEEDED     10-JUL-16 03.00.02.232000  +000 00:02:11       0
                           AM +08:00                                 AM +08:00

auto space advisor         SATURDAY_WINDOW   09-JUL-16 03.00.00.176000  ORA$AT_SA_SPC_SY_682         SUCCEEDED     09-JUL-16 03.00.02.314000  +000 00:59:59       0
                           AM +08:00                                 AM +08:00

auto space advisor         FRIDAY_WINDOW       08-JUL-16 03.00.00.182000  ORA$AT_SA_SPC_SY_662         SUCCEEDED     08-JUL-16 03.00.02.366000  +000 00:23:59       0
                           AM +08:00                                 AM +08:00

auto space advisor         THURSDAY_WINDOW   07-JUL-16 03.00.00.159000  ORA$AT_SA_SPC_SY_642         SUCCEEDED     07-JUL-16 03.00.01.422000  +000 00:04:42       0
                           AM +08:00                                 AM +08:00

sql tuning advisor         THURSDAY_WINDOW   14-JUL-16 03.00.00.273000  ORA$AT_SQ_SQL_SW_763         SUCCEEDED     14-JUL-16 03.00.02.442000  +000 01:00:06       0
                           AM +08:00                                 AM +08:00

sql tuning advisor         WEDNESDAY_WINDOW  13-JUL-16 03.00.00.147000  ORA$AT_SQ_SQL_SW_743         SUCCEEDED     13-JUL-16 03.00.02.097000  +000 01:00:09       0
                           AM +08:00                                 AM +08:00

sql tuning advisor         TUESDAY_WINDOW    12-JUL-16 03.00.00.171000  ORA$AT_SQ_SQL_SW_723         SUCCEEDED     12-JUL-16 03.00.02.371000  +000 01:00:05       0
                           AM +08:00                                 AM +08:00

sql tuning advisor         MONDAY_WINDOW       11-JUL-16 03.00.00.024000  ORA$AT_SQ_SQL_SW_706         SUCCEEDED     11-JUL-16 03.00.02.052000  +000 01:00:06       0
                           AM +08:00                                 AM +08:00

sql tuning advisor         SUNDAY_WINDOW       10-JUL-16 03.00.00.141000  ORA$AT_SQ_SQL_SW_703         SUCCEEDED     10-JUL-16 03.00.02.232000  +000 01:00:03       0
                           AM +08:00                                 AM +08:00

sql tuning advisor         SATURDAY_WINDOW   09-JUL-16 03.00.00.176000  ORA$AT_SQ_SQL_SW_683         SUCCEEDED     09-JUL-16 03.00.02.314000  +000 01:00:05       0
                           AM +08:00                                 AM +08:00

sql tuning advisor         FRIDAY_WINDOW       08-JUL-16 03.00.00.182000  ORA$AT_SQ_SQL_SW_663         SUCCEEDED     08-JUL-16 03.00.02.366000  +000 01:00:02       0
                           AM +08:00                                 AM +08:00

sql tuning advisor         THURSDAY_WINDOW   07-JUL-16 03.00.00.159000  ORA$AT_SQ_SQL_SW_643         SUCCEEDED     07-JUL-16 03.00.01.422000  +000 01:00:03       0
                           AM +08:00                                 AM +08:00


24 rows selected.

hbjzt@TREE6>
     
以上信息显示自动任务auto optimizer stats collection 是正常的



5.查看统计信息是否被锁:
 select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where owner= upper('&owner') and  TABLE_NAME = upper('&table_name') ;

 select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where owner= upper('TREE_HIS') and  TABLE_NAME  in ('CK_BCLSB_MX')
 union all
 select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where owner= upper('TREE') and  TABLE_NAME  in ('CK_BCLSB_MX')
 union all
 select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where owner= upper('TREE') and  TABLE_NAME  in ('CK_KPD_HZ')

OWNER          TABLE_NAME               LAST_ANALYZED      STATTYPE_LOCKED STALE_STA
--------------- ------------------------------ ------------------ --------------- ---------
TREE_HIS    CK_BCLSB_MX               26-MAR-14      ALL          NO
TREE          CK_BCLSB_MX               14-JUL-16              NO
TREE          CK_KPD_HZ                 14-JUL-16              NO

很明显统计信息有效,但是却被锁了。


6.查看多少表统计信息被锁
select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where STATTYPE_LOCKED='ALL'  and owner not in ('SYS', 'WMSYS', 'SYSTEM', 'SYS', 'SYSMAN')         and table_name not like '%$%' ;      


           
 SELECT 'dbms_stats.gather_table_stats('''||owner||''','''|| table_name||''');'     
   FROM DBA_TAB_STATISTICS                                                               
  where stattype_locked = 'ALL'                                                
    and owner not in ('SYS', 'WMSYS', 'SYSTEM', 'SYS', 'SYSMAN')               
    and table_name not like '%$%' ;     
    
7. 解除被锁的统计信息而后重新生成统计信息
 exec   dbms_stats.UNLOCK_TABLE_STATS('TREE_HIS','CK_BCLSB_MX') ;
 
 exec  dbms_stats.gather_table_stats('TREE_HIS','CK_BCLSB_MX') ;
 
 hbjzt@TREE6>  exec   dbms_stats.UNLOCK_TABLE_STATS('TREE_HIS','CK_BCLSB_MX') ;                                      

PL/SQL procedure successfully completed.

 select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where owner= upper('TREE_HIS') and  TABLE_NAME  in ('CK_BCLSB_MX')
 union all
 select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where owner= upper('TREE') and  TABLE_NAME  in ('CK_BCLSB_MX')
 union all
  5   select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where owner= upper('TREE') and  TABLE_NAME  in ('CK_KPD_HZ')
  6  /

OWNER        TABLE_NAME               LAST_ANALYZED      STATTYPE_LOCKED STALE_STA
--------------- ------------------------------ ------------------ --------------- ---------
TREE_HIS    CK_BCLSB_MX               26-MAR-14              NO
TREE        CK_BCLSB_MX               14-JUL-16              NO
TREE        CK_KPD_HZ               14-JUL-16              NO

hbjzt@TREE6> select count(1) from TREE_his.CK_BCLSB_MX ;

  COUNT(1)
----------
     38306

hbjzt@TREE6>  exec  dbms_stats.gather_table_stats('TREE_HIS','CK_BCLSB_MX') ;


PL/SQL procedure successfully completed.

 select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where owner= upper('TREE_HIS') and  TABLE_NAME  in ('CK_BCLSB_MX')
 union all
 select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where owner= upper('TREE') and  TABLE_NAME  in ('CK_BCLSB_MX')
 union all
  5   select OWNER,TABLE_NAME,LAST_ANALYZED,STATTYPE_LOCKED,STALE_STATS from DBA_TAB_STATISTICS where owner= upper('TREE') and  TABLE_NAME  in ('CK_KPD_HZ')
  6  /

OWNER        TABLE_NAME               LAST_ANALYZED      STATTYPE_LOCKED STALE_STA
--------------- ------------------------------ ------------------ --------------- ---------
TREE_HIS    CK_BCLSB_MX               14-JUL-16              NO
TREE        CK_BCLSB_MX               14-JUL-16              NO
TREE        CK_KPD_HZ               14-JUL-16              NO

SELECT * FROM CK_BCLSB_MX TA
 WHERE NOT EXISTS
       (SELECT * FROM TREE_HIS.CK_BCLSB_MX
                 WHERE BOCI_NO = TA.BOCI_NO AND HANGHAO = TA.HANGHAO AND DANJ_NO = TA.DANJ_NO)
   AND NOT EXISTS (SELECT 1
  6                       FROM CK_KPD_HZ WHERE DANJ_NO= TA.DANJ_NO AND ZUOY_STATE<'N2' )
  7  /
SELECT * FROM CK_BCLSB_MX TA
              *
ERROR at line 1:
ORA-00942: table or view does not exist


hbjzt@TREE6> alter session set current_schema=TREE ;

Session altered.

hbjzt@TREE6> SELECT count(1) FROM TREE.CK_BCLSB_MX TA WHERE NOT EXISTS (SELECT * FROM TREE_HIS.CK_BCLSB_MX WHERE BOCI_NO = TA.BOCI_NO AND HANGHAO = TA.HANGHAO AND DANJ_NO = TA.DANJ_NO) AND NOT EXISTS (SELECT 1 FROM CK_KPD_HZ WHERE DANJ_NO= TA.DANJ_NO AND ZUOY_STATE<'N2' )
  2  /

  COUNT(1)
----------
      4836                                     
      
      
      原因找到了,问题就容易解决了。