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

监控信息显示报如下错误:
 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                                     
      
      
      原因找到了,问题就容易解决了。
### ORA-00600 错误代码参数 [17059] 的解决方案 ORA-00600Oracle 数据库中的内部错误,通常表明数据库遇到了无法处理的异常情况。对于参数为 [17059] 的 ORA-00600 错误,以下是可能的原因和解决方案: #### 1. **错误原因分析** ORA-00600 参数 [17059] 通常与重做日志文件(Redo Log Files)或控制文件(Control Files)的损坏有关。此错误可能由以下原因之一引起: - 重做日志文件或控制文件的物理损坏。 - 数据库实例意外关闭后未正确恢复。 - 硬件故障或存储系统问题导致数据丢失或损坏[^1]。 #### 2. **解决方案** 以下是针对 ORA-00600 [17059] 的常见解决步骤: #### (1)检查告警日志和跟踪文件 首先,检查数据库的告警日志(alert log)和相关的跟踪文件(trace files),以获取更多关于错误的具体信息。这些文件通常位于 `$ORACLE_BASE/diag/rdbms/<dbname>/<instance>/trace` 目录下。通过分析这些文件,可以确定问题的根本原因[^2]。 #### (2)验证重做日志文件的状态 使用以下查询检查重做日志文件的状态: ```sql SELECT GROUP#, THREAD#, SEQUENCE#, STATUS, MEMBER FROM V$LOGFILE JOIN V$LOG USING(GROUP#); ``` 如果发现某些重做日志文件状态为 `INACTIVE` 或 `CURRENT`,但实际文件已损坏,则需要进行修复或重建。 #### (3)尝试清理损坏的重做日志文件 如果确认某个重做日志文件损坏,可以尝试以下方法: - 将数据库置于 `MOUNT` 状态。 - 删除损坏的重做日志组: ```sql ALTER DATABASE DROP LOGFILE GROUP <group_number>; ``` - 添加新的重做日志组: ```sql ALTER DATABASE ADD LOGFILE GROUP <group_number> ('<new_log_file_path>') SIZE <size>; ``` #### (4)检查控制文件的完整性 控制文件的损坏也可能导致 ORA-00600 [17059]。可以通过以下命令检查控制文件的状态: ```sql ALTER DATABASE BACKUP CONTROLFILE TO TRACE; ``` 如果控制文件损坏,可以尝试从备份中恢复控制文件,或者使用 `CREATE CONTROLFILE` 命令重新创建控制文件[^3]。 #### (5)启用隐藏参数进行诊断 在某些情况下,可以通过启用隐藏参数来进一步诊断问题。例如,启用 `_allow_resetlogs_corruption` 参数可能会帮助强制打开数据库,但这可能导致数据丢失或不一致性。因此,仅在极端情况下使用此方法,并确保有完整的备份[^1]。 #### (6)联系 Oracle 支持 如果上述方法均无法解决问题,建议收集以下信息并联系 Oracle 支持团队: - 完整的告警日志和跟踪文件。 - 数据库版本、操作系统版本及硬件配置。 - 导致错误的具体操作或场景。 #### 3. **预防措施** 为了减少类似错误的发生,可以采取以下措施: - 定期备份数据库,包括数据文件、控制文件和重做日志文件。 - 配置冗余存储系统以防止单点故障。 - 监控数据库的告警日志和性能指标,及时发现潜在问题。 ### 示例代码 以下是一个简单的脚本,用于检查重做日志文件的状态: ```sql SET SERVEROUTPUT ON; BEGIN FOR rec IN (SELECT GROUP#, THREAD#, SEQUENCE#, STATUS FROM V$LOG) LOOP DBMS_OUTPUT.PUT_LINE('Group: ' || rec.GROUP# || ', Thread: ' || rec.THREAD# || ', Sequence: ' || rec.SEQUENCE# || ', Status: ' || rec.STATUS); END LOOP; END; / ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值