ORA-600 ktsircinfo num1 - ORA-600 [ktsircinfo_num1] 和后继处理步骤

ORA-600 [ktsircinfo_num1] 和后继处理步骤

适用于Oracle 11.2.0.3及之后版本数据库

ORA-600 [ktsircinfo_num1]报错一般会出现在在从sys.seg$获取row cache信息出现问题时。
多数情况下是在sys.seg$下找不到信息。这意味着可能存在数据讹误或触发了bug,在当时会在操作执行时得到立即的失败返回。

报错信息中一般以ORA-600 [ktsircinfo_num1] [a] [b] [c]形式显示,其中:

  • 参数[a] 为表空间编号
  • 参数[b] 为文件号
  • 参数[c] 为块号

症状
报错可能在索引重建,CREATE table AS SELECT (CTAS), DROP, DELETE,运行PL/SQL程序包,并行或顺序执行时发生。
它可能意外产生于高负载工作中,当对于某些对象操作未能保持完整性并导致数据字典讹误和SGE$和TAB$之间信息不一致。

报错信息在Call stack中类似于以下信息:

ktsircinfo1 ktsircinfo ktsagob ktsausp ktsapus
ktsircinfo1 ktsircinfo ktsixfl_num kkfdmtfl kkfddelupdups

原因
在MOS Note 139182.1 - ORA-600 [ktsircinfo_num1]中已经列出的已知bug。
还有一些未在文档中列出的bug,如:
1. Bug 7338447 ORA-600:[KTSIRCINFO_NUM1] ON FND_STATS.GATHER_SCHEMA_STATS
被分析后认为不是bug,是字典讹误导致的问题。
2. Bug 2169303 ORA-600 [KTSIRCINFO_NUM1] CALLING DBMS_SPACE WITH LOB PARTITION BUT NO PART SPEC
问题发生于LOB。LOB PARTITION大小在10g前并未得到DBMS_SPACE包的支持。
如果,你还是找不到与之匹配的问题原因,那么你就需要对这种潜在的数据讹误进行细致检查。

调查解决方法

  • 对已知问题bug,打补丁解决。
  • 对未知问题,可运行hcheck脚本检查数据讹误和不一致处。

如果在seg$和tab$信息之间存在不一致性,将检查结果交给第三方专业人员来定位讹误解决问题。例如以下问题:

Problem: Orphaned TAB$ (no SEG$)
ORPHAN TABPART$: OBJ=584395 TS=10 RFILE/BLOCK=14 12404 BO#=584392 SegType=
ORPHAN TABPART$: OBJ=584396 TS=10 RFILE/BLOCK=14 12412 BO#=584392 SegType=

关于 hcheck.sql
这个脚本主要用于查出数据字典上的一般问题。
脚本中会对字典对象关系进行一致性检查,并查看是否存在某些已知问题 - 可以看到一些被报"problems"的信息。
脚本仅会对数据库信息进行只读操作,因此不会有任何影响。

  • 执行步骤

执行环境: SQL*Plus
访问权限: 要求以SYS用户执行

$ sqlplus

SQL*Plus: Release 12.1.0.2.0 Production on Tue Apr 19 08:14:13 2016

Copyright (c) 1982, 2014, Oracle. All rights reserved.

Enter username: / as sysdba

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> spool hcheck.log
SQL> @hcheck
SQL> spool off

对于12c对租户情况,需要连接到PDB后再运行脚本。例如:

SQL*Plus: Release 12.1.0.2.0 Production on Tue Apr 19 08:14:13 2016

Copyright (c) 1982, 2014, Oracle. All rights reserved.

Enter username: / as sysdba

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL> show pdbs

CON_ID   CON_NAME     OPEN MODE      RESTRICTED
-------- ------------ -------------- -------------
2        PDB$SEED     READ ONLY      NO
3        CDB1_PDB1    READ WRITE     NO
4        CDB1_PDB2    READ WRITE     NO

SQL> alter session set container=CDB1_PDB1;

Session altered.

SQL> spool hcheck.log
SQL> @hcheck
SQL> spool off

脚本会报告各种数据字典相关信息,其中可能有问题,也可能不存在问题,因此需要交给专业人员来查看。

其中:HCKE 报错被看作一种潜在问题;HCKW 报错被看作是一种警告.

hcheck.sql脚本中会给出以下分级提示:

CRITICAL 是最高级别问题且需要立刻进行修正处理
FAIL 高优先级问题
WARN 告警,如果能处理掉最好
PASS 没有问题
  • 一般输出如下
$ sqlplus
SQL*Plus: Release 12.2.0.1.0 Production on ...

Copyright (c) 1982, 2016, Oracle. All rights reserved.

Enter username: / as sysdba

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> spool hcheck.log
SQL> @hcheck

HCheck Version 07MAY18 on .....
----------------------------------------------
Catalog Version 12.2.0.1.0 (1202000100)
db_name:
Is CDB?: YES CON_ID: 3 Container: CDB1_PDB1
                                        Catalog       Fixed
Procedure Name                     Version    Vs Release    Timestamp      Result
------------------------------ ... ---------- -- ---------- -------------- ------
.- LobNotInObj                 ... 1202000100 <= *All Rel*  ..... 09:49:01 PASS
.- MissingOIDOnObjCol          ... 1202000100 <= *All Rel*  ..... 09:49:01 PASS
...

.- OrphanedTable               ... 1202000100 <= *All Rel*  ..... 09:49:02 FAIL
HCKE-0019: Orphaned TAB$ (no SEG$) (Doc ID 1360889.1)
ORPHAN TAB$: OBJ#=105785 DOBJ#=105785 TS=7 RFILE/BLOCK=7/113 TABLE=SCOTT.SALES_REP BOBJ#=

.- MaxControlfSeq              ... 1202000100 <= *All Rel*  ..... 09:49:02 PASS
.- SegNotInDeferredStg         ... 1202000100 > 1102000000  ..... 09:49:02 PASS
---------------------------------------
..................... Elapsed: 1 secs
---------------------------------------
Found 1 potential problem(s) and 0 warning(s)
Contact Oracle Support with the output and trace file
to check if the above needs attention or not
PL/SQL procedure successfully completed.

Statement processed.

Complete output is in trace file:
/oracle/log/diag/rdbms/c201/c201/trace/c201_ora_24507_HCHECK.trc


SQL> spool off


 

猜你喜欢

转载自blog.csdn.net/liu_maclean/article/details/82145932