zoukankan      html  css  js  c++  java
  • ORA00600: [qksrcBuildRwo]内部错误一例

    一套HP-UX上的11.1.0.7上的系统,在使用11g自带的新特性dictionary health check(数据字典健康检查)功能时发现FILE$基表存在讹误,并且告警日志中伴随出现ORA-00600:[qksrcBuildRwo]内部错误,具体错误信息如下:
    RMAN> list failure;
    
    List of Database Failures
    =========================
    
    Failure ID Priority Status Time Detected Summary
    ---------- -------- --------- ------------- -------
    91337 CRITICAL OPEN 30-JUN-09 SQL dictionary health check: file$ pk 202 on object FILE$ failed
    91334 CRITICAL OPEN 30-JUN-09 SQL dictionary health check: file$ pk 202 on object FILE$ failed
    91331 CRITICAL OPEN 30-JUN-09 SQL dictionary health check: file$ pk 202 on object FILE$ failed
    91328 CRITICAL OPEN 30-JUN-09 SQL dictionary health check: file$ pk 42 on object FILE$ failed
    91325 CRITICAL OPEN 30-JUN-09 SQL dictionary health check: file$ pk 42 on object FILE$ failed
    91322 CRITICAL OPEN 30-JUN-09 SQL dictionary health check: file$ pk 42 on object FILE$ failed
    
    ALERT LOG
    -----------------------
    Display of database log file :
    
    Tue Jun 30 10:32:27 2009
    Errors in file /oracle/11.1.0/diag/rdbms/bect/BECT/trace/BECT_j000_18678.trc (incident=20162):
    ORA-00600: sis?inen virhekoodi, argumentit: [qksrcBuildRwo], [], [], [], [], [], [], []
    Incident details in: /oracle/11.1.0/diag/rdbms/bect/BECT/incident/incdir_20162/BECT_j000_18678_i20162.trc
    Tue Jun 30 10:32:57 2009
    Trace dumping is performing id=[cdmp_20090630103257]
    Tue Jun 30 10:32:59 2009
    Sweep Incident[20162]: completed
    Tue Jun 30 10:44:15 2009
    ORA-1652: unable to extend temp segment by 128 in tablespace FENIX_SECURE
    ORA-1652: unable to extend temp segment by 1024 in tablespace FENIX_SECURE
    Errors in file /oracle/11.1.0/diag/rdbms/bect/BECT/trace/BECT_j000_21609.trc:
    ORA-12012: virhe ty?n 58702 automaattisen suorituksen yhteydess?
    ORA-01652: v?liaikaisen segmentin laajennus 1024:lla taulualueeessa FENIX_SECURE ei onnistu
    
    
    TRACE FILE
    ----------------------
    Display of relevant trace file :
    
    Dump file /oracle/11.1.0/diag/rdbms/bect/BECT/incident/incdir_20162/BECT_j000_18678_i20162.trc
    Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
    With the Partitioning, Oracle Label Security and Real Application Testing options
    ORACLE_HOME = /oracle/11.1.0
    System name: HP-UX
    Node name: hellu
    Release: B.11.23
    Version: U
    Machine: ia64
    Instance name: BECT
    Redo thread mounted by this instance: 1
    Oracle process number: 20
    Unix process pid: 18678, image: oracle@hellu (J000)
    
    
    *** 2009-06-30 10:32:27.211
    *** SESSION ID:(520.12850) 2009-06-30 10:32:27.211
    *** CLIENT ID:(FOOBAR@192.168.60.110@Mozilla/5.0 (Windows; U; Windows NT 5.0; f) 2009-06-30 10:32:27.211
    *** SERVICE NAME:(SYS$USERS) 2009-06-30 10:32:27.211
    *** MODULE NAME:(DBMS_SCHEDULER) 2009-06-30 10:32:27.211
    *** ACTION NAME:(ADV_SQL_TUNING_1246346508268) 2009-06-30 10:32:27.211
    
    Dump continued from file: /oracle/11.1.0/diag/rdbms/bect/BECT/trace/BECT_j000_18678.trc
    ORA-00600: sis?inen virhekoodi, argumentit: [qksrcBuildRwo], [], [], [], [], [], [], []
    
    ========= Dump for incident 20162 (ORA 600 [qksrcBuildRwo]) ========
    
    *** 2009-06-30 10:32:27.219
    ----- Current SQL Statement for this session (sql_id=06y1876p6cr8a) -----
    /* SQL Analyze(520,1) */
    WITH TARGETS AS
     (SELECT COLUMN_VALUE TARGET_GUID
        FROM TABLE(CAST(:B1 AS MGMT_TARGET_GUID_ARRAY)))
    SELECT /*+ ORDERED USE_NL(assoc) USE_NL(cfg)
    NO_INDEX_FFS(assoc MGMT_POLICY_ASSOC_PK)
    INDEX_ASC(assoc MGMT_POLICY_ASSOC_PK)
    NO_INDEX_FFS(cfg MGMT_POLICY_ASSOC_CFG_PK_IDX)
    INDEX_ASC(cfg MGMT_POLICY_ASSOC_CFG_PK_IDX) */
    ASSOC.OBJECT_GUID TARGET_GUID, LEAD(ASSOC.OBJECT_GUID, 1) OVER(
     ORDER BY ASSOC.OBJECT_GUID, POLICY.POLICY_GUID, CFG.EVAL_ORDER) NEXT_TARGET_GUID, 
    POLICY.POLICY_GUID POLICY_GUID, LEAD(POLICY.POLICY_GUID, 1) OVER(
     ORDER BY ASSOC.OBJECT_GUID, POLICY.POLICY_GUID, CFG.EVAL_ORDER) NEXT_POLICY_GUID, 
    POLICY.POLICY_NAME, POLICY.POLICY_TYPE, DECODE(POLICY.POLICY_TYPE, :B5, 
    NVL(CFG.MESSAGE, POLICY.MESSAGE), :B10, CFG.MESSAGE, NULL) MESSAGE, 
    DECODE(POLICY.POLICY_TYPE, :B5, NVL(CFG.MESSAGE_NLSID, POLICY.MESSAGE_NLSID), :B10, 
    CFG.MESSAGE_NLSID, NULL) MESSAGE_NLSID, DECODE(POLICY.POLICY_TYPE, :B5, 
    NVL(CFG.CLEAR_MESSAGE, POLICY.CLEAR_MESSAGE), :B10, CFG.CLEAR_MESSAGE, NULL) 
    CLEAR_MESSAGE, DECODE(POLICY.POLICY_TYPE, :B5, NVL(CFG.CLEAR_MESSAGE_NLSID, POLICY.CLEAR_MESSAGE_NLSID), :B10, 
    CFG.CLEAR_MESSAGE_NLSID, NULL) 
    CLEAR_MESSAGE_NLSID, POLICY.REPO_TIMING_ENABLED, :B4, 
    POLICY.VIOLATION_LEVEL, 
    DECODE(POLICY.POLICY_TYPE, :B5, :B11, 0) VIOLATION_TYPE, POLICY.CONDITION_TYPE, 
    POLICY.CONDITION, DECODE(POLICY.POLICY_TYPE, :B5, NVL(CFG.CONDITION_OPERATOR, POLICY.CONDITION_OPERATOR), :B10, 
    CFG.CONDITION_OPERATOR, 0) CONDITION_OPERATOR, 
    CFG.KEY_VALUE, CFG.KEY_OPERATOR, CFG.IS_EXCEPTION, CFG.NUM_OCCURRENCES, 
    NULL EVALUATION_DATE, CAST(MULTISET(
    SELECT MGMT_POLICY_PARAM_VAL(PARAM_NAME, CRIT_THRESHOLD, WARN_THRESHOLD, INFO_THRESHOLD)
      FROM MGMT_POLICY_ASSOC_CFG_PARAMS PARAM
     WHERE PARAM.OBJECT_GUID = CFG.OBJECT_GUID AND PARAM.POLICY_GUID = CFG.POLICY_GUID 
    AND PARAM.COLL_NAME = CFG.COLL_NAME AND PARAM.KEY_VALUE = CFG.KEY_VALUE AND 
    PARAM.KEY_OPERATOR = CFG.KEY_OPERATOR) AS MGMT_POLICY_PARAM_VAL_ARRAY) PARAMS, DECODE(POLICY.CONDITION_TYPE, :B9, CAST(MULTISET(
    SELECT MGMT_NAMEVALUE_OBJ.NEW(BIND_COLUMN_NAME, BIND_COLUMN_TYPE)
      FROM MGMT_POLICY_BIND_VARS BINDS
     WHERE BINDS.POLICY_GUID = POLICY.POLICY_GUID) AS MGMT_NAMEVALUE_ARRAY), 
    MGMT_NAMEVALUE_ARRAY()) BINDS, DECODE(:B8, 0, MGMT_MEDIUM_STRING_ARRAY(), 1, MGMT_MEDIUM_STRING_ARRAY(CFG.KEY_VALUE), CAST((
    SELECT MGMT_MEDIUM_STRING_ARRAY(KEY_PART1_VALUE, KEY_PART2_VALUE, KEY_PART3_VALUE, 
    KEY_PART4_VALUE, KEY_PART5_VALUE)
      FROM MGMT_METRICS_COMPOSITE_KEYS COMP_KEYS
     WHERE COMP_KEYS.COMPOSITE_KEY = CFG.KEY_VALUE AND COMP_KEYS.TARGET_GUID = CFG.OBJECT_GUID) AS MGMT_MEDIUM_STRING_ARRAY)) KEY_VALUES
      FROM TARGETS, MGMT_POLICIES POLICY, MGMT_POLICY_ASSOC ASSOC, MGMT_POLICY_ASSOC_CFG CFG
     WHERE POLICY.METRIC_GUID = :B7 AND ASSOC.OBJECT_GUID = TARGETS.TARGET_GUID 
    AND ASSOC.POLICY_GUID = POLICY.POLICY_GUID AND POLICY.POLICY_TYPE != :B6 AND 
    (POLICY.POLICY_TYPE = :B5 OR ASSOC.COLL_NAME = :B4) AND ASSOC.OBJECT_TYPE = :B3 
    AND ASSOC.IS_ENABLED = :B2 AND CFG.OBJECT_GUID = ASSOC.OBJECT_GUID AND CFG.POLICY_GUID = ASSOC.POLICY_GUID 
    AND 
    CFG.COLL_NAME = ASSOC.COLL_NAME
    ORDER BY ASSOC.OBJECT_GUID, POLICY.POLICY_GUID, CFG.EVAL_ORDER, CFG.KEY_VALUE DESC
    
    ----- PL/SQL Stack -----
    ----- PL/SQL Call Stack -----
    object line object
    handle number name
    c0000000bf9ee2e8 7294 package body SYS.DBMS_SQLTUNE_INTERNAL
    c0000000bfbe76d0 8 SYS.WRI$_ADV_SQLTUNE
    c0000000d513f948 545 package body SYS.PRVT_ADVISOR
    c0000000d513f948 2597 package body SYS.PRVT_ADVISOR
    c0000000cef08358 241 package body SYS.DBMS_ADVISOR
    c0000000bc1e9ff8 718 package body SYS.DBMS_SQLTUNE
    c0000000bc31c3a0 1 anonymous block
    
    ----- Call Stack Trace -----
    
    Function List (to Full stack) (to Summary stack)
    
    skdstdst <- ksedst1 <- ksedst <- dbkedDefDump <- ksedmp <- ksfdmp 
    <- dbgexPhaseII <- dbgexProcessError <- dbgeExecuteForError <- dbgePostErrorKGE 
    <- 1936 <- dbkePostKGE_kgsf <- 128 <- kgeadse <- kgerinv_internal <- kgerinv 
    <- kgeasnmierr <- qksrcBuildRwo <- qknrcAllocate <- $cold_qkadrv <- opitca 
    <- kksFullTypeCheck <- rpiswu2 <- kksSetBindType <- kksfbc <- opiexe <- kpoal8 
    <- opiodr <- kpoodrc <- rpiswu2 <- kpoodr <- upirtrc <- kpurcsc <- kpuexec 
    <- OCIStmtExecute <- qksanAnalyzeSql <- 272 <- qksanAnalyzeSegSql <- kestsaInitialRound 
    <- kestsaAutoTuneSql <- kestsaAutoTuneDrv <- kestsTuneSqlDrv <- kesaiExecAction 
    <- kesaiTuneSqlDrv <- 176 <- spefcifa <- spefmccallstd <- pextproc <- peftrusted 
    <- psdexsp <- rpiswu2 <- psdextp <- pefccal <- pefcal <- pevm_FCAL <- pfrinstr_FCAL 
    <- pfrrun_no_tool <- pfrrun <- plsql_run <- peicnt <- kkxexe <- opiexe <- kpoal8 <- opiodr 
    <- kpoodr <- upirtrc <- kpurcsc <- kpuexec <- OCIStmtExecute <- jslvec_execcb 
    <- jslvswu <- jslve_execute0 <- jslve_execute <- rpiswu2 <- kkjex1e <- kkjsexe <- kkjrdp 
    <- opirip <- opidrv <- sou2o <- opimai_real <- main <- main_opd_entry
    
    以上trace中值得注意的是stack trace记录:dbgeExecuteForError <- dbgePostErrorKGE <- dbkePostKGE_kgsf,通过匹配该stack trace point在MOS上可以找到2个相关的Bug记录:
    Bug 8340928: XF11.2PREPEND_DML - TRC - QKSRCBUILDRWO:
    When a column in the select list references to a view column which produces
    a temp LOB, such as a TO_CLOB() operator, then an ORA-600 can occur
    when using the result-cache.
    
    Workaround
     Disable the result-cache
    
    Bug 7314587: STARETL ORA-00600 INTERNAL ERROR CODE, ARGUMENTS [QERNCROWP1], [0], [2] RDBMS:
    
    Ora-600 [Qksrcbuildrwo]
    Applies to:
    Oracle Server - Enterprise Edition - Version: 11.1.0.6 to 11.1.0.7 - Release: 11.1 to 11.1
    Symptoms
    Getting ORA-00600 [qksrcBuildRwo] in the alert log file when trying to execute select statement.
    
    ERROR:
    --------
    
    ORA-00600: internal error code, arguments: [qksrcBuildRwo], [], [], [], [], [], [], [], [], [],
    [], []
    
    ----- Call Stack Trace -----
    dbgexProcessError dbgeExecuteForError dbgePostErrorKGE dbkePostKGE_kgsf
     kgeadse kgerinv_internal kgerinv kgeasnmierr qksrcBuildRwo
      qknrcAllocate qkadrv qkadrv qkadrv opitca kksLoadChild
       kxsGetRuntimeLock kksfbc kkspsc0 kksParseCursor opiosq0
        opiall0 opikpr opiodr rpidrus skgmstack rpidru rpiswu2
         kprball kprbprsu kkxs_parse kkxsprsclb pevm_icd_call_common
          pfrinstr_ICAL pfrrun_no_tool pfrrun plsql_run peicnt
           kkxexe opiexe opiall0 opikpr opiodr rpidrus skgmstack
            rpidru rpiswu2 kprball kzftExHandler kzftAuditExe kzftChkAudit
    
    Changes
    Result cache is enabled (result cache is a new feature in 11g).
    
    From the alert log file
    -----------------
    result_cache_mode = "AUTO"
    
    Cause
    The ORA-00600 [Qksrcbuildrwo] is caused by
    unpublished Bug 8340928 XF11.2PREPEND_DML - TRC - QKSRCBUILDRWO
    
    Solution
    1. Disable result_cache_mode in the spfile/pfile (remove it) or set it to MANUAL
    
    At session level
    ------------
    SQL> alter session set result_cache_mode='MANUAL';
    -- Or
    At system level
    ------------
    SQL> alter system set result_cache_mode='MANUAL';
    -- Or
    
    2. Apply one off Patch 8340928 if available on My Oracle Support for your Oracle Version and Platform.
    -- Or
    3. Upgrade to 11.2 where unpublished Bug 8340928 is fixed.
    
    可以确定该qksrcBuildRwo内部错误与字典表FILE$的讹误无关,而是由于11g release1中result cache的相关bug引起的;MOS建议通过不适用结果集缓存(result cache)特性来workaround这个错误,或者干脆升级到11g release(11.2.0.1以上,目前最新为11.2.0.2)。
  • 相关阅读:
    jsp引擎是什么
    asp.net MVC遇到的问题
    java中设置http响应头控制浏览器禁止缓存当前文档内容
    java中文件下载的思路(参考:孤傲苍狼)
    301与302页面重定向
    怎么在后台修改前台html页面的key、title、description
    进程外session(session保存在sqlserver)
    Cookie的读写
    HTTP 方法:GET 对比 POST 转自w3school
    位bit,字节byte,K,M,G(转)
  • 原文地址:https://www.cnblogs.com/macleanoracle/p/2967588.html
Copyright © 2011-2022 走看看