ora-00600 ora-06512 ora-02063

记一次oracle12.2遇到的bug

数据库版本12.2.0.1.0:

 调用过程的时候报错,错误如下:

过程很简单,就是入参是指定物化视图的情况下,就刷这一个物化视图,如果是空的其情况下,刷该用户下所有的物化视图。

后来排查所有的物化视图时,发现有报错的两个物化视图都是通过dblink建的物化视图。所以怀疑是dblink导致的bug。

mos上:

ORA-00600 [ktcrcm: caller passed invalid xcb] On Materialized View Refresh After 12.2 Upgrade (文档 ID 2267485.1)

Applies to:

Oracle Database - Enterprise Edition - Version 12.2.0.1 to 12.2.0.1 [Release 12.2]
Information in this document applies to any platform.

Symptoms

 While refreshing a materialized view in 12.2.0.1, the following error is raised:

ORA-00600: Interner Fehlercode, Argumente: [ktcrcm: caller passed invalid xcb], [4], [0x1CDA0C9D8], [0x000000000], [1], [4232], [], [], [], [], [], []

 
 The error is raised from wrap_up RPC procedure when calling sys.dbms_snapshot_utl.wrap_up during a transaction commit phase:


*** 2017-03-23T22:24:51.111018+01:00
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
[TOC00003]
----- SQL Statement (None) -----
Current SQL information unavailable - no cursor.
[TOC00004]

----- PL/SQL Call Stack -----
object line object
handle number name
0x19e4d6fc0 762 package body SYS.DBMS_SNAPSHOT_UTL.WRAP_UP

Call Stack:
-----------
... ktcCommitTxn_new ktcCommitTxn kkzibwu spefcmpa spefmccallstd peftrusted psdexsp kxe_push_env_internal_pp_ kkx_push_env_for_ICD_for_new_session psdextp pefccal pefcal pevm_FCAL pfrinstr_FCAL ...

PROCESS STATE
-------------
Process global information:
process: 0x79601d30, call: 0x65911460, xact: 0x6865c0d8, curses:
0x796dc658, usrses: 0x796dc658
in_exception_handler: no
SO: 0x6865c0d8, type: 79, owner: 0x796dc658, flag: INIT/-/-/-/0x00 if: 0x3 c:0x3
proc=0x79601d30, name=transaction, file=ktccts.h LINE:492, pg=0,conuid=0
(trans) flg = 0x00000e03, flg2 = 0x00014000, flg3 = 0x00000000, prx =(nil), ros = 2147483647, crtses=0x796dc658
flg = 0x00000e03: ALC TRN VUS VID CHG
flg2 = 0x00014000: IMU IMP
flg3 = 0x00000000:
pdb = 0
bsn = 0x570d37 bndsn = 0x570d38 tbndsn = 0x570d37 spn = 0x570e26
efd = 22 rfd = 0 DID:0001-0048-000381B7 file:kta.c lineno:1804


The error ORA-00600: internal error code, arguments: [ktcrcm: caller passed invalid xcb],[4], [0x1CDA0C9D8], [0x000000000], [1], [4233] is signaled because while the current transaction is 0x000000000, Oracle is trying to commit 0x0680B6EA8, but there is no transaction state object 0x0680B6EA8 available in the incident trace file, implying that this transaction has ended long before.
 

Changes

Upgrade to 12.2.
 

Cause

The cause of this problem has been identified in 12.2 unpublished Bug 25199585 - XF12.2.0.2LOBSHRINK - TRC - KTCCOMMITTXN_NEW - ORA-600 [KTCRCM: CALLER PASSED IN.

Solution

1. Upgrade the database to 12.2.0.2 where unpublished Bug 25199585 is fixed.

2. For 12.2.0.1: download and apply <Patch 25199585> for your platform.

TIP: To check for conflicting patches, please use the MOS Patch Planner Tool Please refer to Document 1317012.1 - How To Use MOS Patch Planner To Check And Request The Conflict Patches?

If no patch exists for your environment, please contact Oracle Support for a backport request.

Note: This issue can also be encountered when using a materialized view with: Master Site: 12.2.0.1 + MView Site: 11.2.0.4.
          In this case, you need to apply the fix on the master site only.

要解决这个问题,就是打个补丁,修复bug 25199585 ,本次更新的patch是:

就这个patch:

下载下来就是这个压缩文件,很小。

1、检查更新条件:

oracle@b1d7b2423c86[/oracle/patch]$$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir ./27176807

2、停该ORACLE_HOME目录下的所有实例。

3、更新补丁

cd 27176807

$ORACLE_HOME/OPatch/opatch apply

如果应用的时候提示没有fuser命令,就直接yum装一下,安装语句:

yum install -y psmisc

4、检查

$ORACLE_HOME/OPatch/opatch lsinventory

猜你喜欢

转载自blog.csdn.net/kadwf123/article/details/82893356