Home  >  Article  >  Database  >  ORA-03137: TTC 协议内部错误: [12333]

ORA-03137: TTC 协议内部错误: [12333]

WBOY
WBOYOriginal
2016-06-07 16:00:121820browse

Oracle数据库版本为11.2.0.1,操作系统CentOS release 5.9,详细的报错信息如下:ORA-03137: TTC 协议内部错误: [12333]

【1】问题背景:Oracle数据库版本为11.2.0.1,操作系统CentOS release 5.9,详细的报错信息如下:

Dump file /data/oracle/diag/rdbms/db01/db01/incident/incdir_70215/db01_ora_17588_i70215.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /data/oracle/oracle11
System name:    Linux
Node name:    db01
Release:    2.6.18-348.el5
Version:    #1 SMP Tue Jan 8 17:53:53 EST 2013
Machine:    x86_64
Instance name: db01
Redo thread mounted by this instance: 1
Oracle process number: 52
Unix process pid: 17588, image: oracle@db01 

*** 2014-06-20 22:33:42.577
*** SESSION ID:(204.33501) 2014-06-20 22:33:42.577
*** CLIENT ID:() 2014-06-20 22:33:42.577
*** SERVICE NAME:(SYS$USERS) 2014-06-20 22:33:42.577
*** MODULE NAME:() 2014-06-20 22:33:42.577
*** ACTION NAME:() 2014-06-20 22:33:42.577
Dump continued from file: /data/oracle/diag/rdbms/db01/db01/trace/db01_ora_17588.trc
ORA-03137: TTC 协议内部错误: [12333] [32] [49] [50] [] [] [] [] 

========= Dump for incident 70215 (ORA 3137 [12333]) ======== 

*** 2014-06-20 22:33:42.600
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
----- Current SQL Statement for this session (sql_id=6v8rd0sq5a8m3) -----
select count(t.fd_id) as COUNT from sys_notify_todo_done_info t inner join
(select distinct(sysnotifyt1_.fd_subject) FD_SUBJECT,max(sysnotifyt0_.fd_id) as FD_ID
,sysnotifyt1_.fd_app_name,sysnotifyt1_.fd_type,sysnotifyt1_.fd_create_time
from sys_notify_todo_done_info sysnotifyt0_ inner join sys_notify_todo sysnotifyt1_
on sysnotifyt0_.fd_todoid=sysnotifyt1_.fd_id
where (sysnotifyt0_.fd_elementid = :1)
group by sysnotifyt1_.fd_subject,sysnotifyt1_.fd_app_name,sysnotifyt1_.fd_type,sysnotifyt1_.fd_create_time) f on t.fd_id = f.fd_id

----- Call Stack Trace -----
calling              call    entry                argument values in hex     
location            type    point                (? means dubious value)   
-------------------- -------- -------------------- ---------------------------- 

*** 2014-06-20 22:33:42.834
skdstdst()+36        call    kgdsdst()            000000000 ? 000000000 ?
                                                  7FFF5BCF02B8 ? 000000001 ?
                                                  7FFF5BCF47B8 ? 000000000 ?
ksedst1()+98        call    skdstdst()          000000000 ? 000000000 ?
                                                  7FFF5BCF02B8 ? 000000001 ?
                                                  000000000 ? 000000000 ?
ksedst()+34          call    ksedst1()            000000000 ? 000000001 ?
                                                  7FFF5BCF02B8 ? 000000001 ?
【2】问题的解决方法

Metalink上面居然没有发现症状一样的问题,关于ORA-03137的错误,问题有很多,常见的问题有JDBC、绑定变量窥视、ORACLE的BUG等,Metalink也提供了一系列的排查方法,具体如下:

2.1 绑定变量的窥视

解决方法:SQL> alter system set "_optim_peek_user_binds"=false;

弊端:关闭绑定变量的窥视,会导致当SQL语句使用绑定变量的时候,产生的执行计划可能会出现不准,在生产环境中要长期关闭该特性需要认真测试;

  2.2 更新数据库最新的PSU,当通过禁用绑定变量后数据库不再报错,可以应用每个数据库最新的PSU。或者当禁用绑定变量的时候也继续报错,也可以考虑应用PSU进行测试;

以下是相关的PSU信息:
PSU 11.1.0.7.8 Patch 12419384 includes Patch:9703463.
For 11.1.0.7, Patch 9243912 can be applied on top of 11.1.0.7.8 ( no conflict).
Patch:9703463  can also be applied individually but requires PSU 11.1.0.7.6
Patch:8625762  may also be applicable to databases version 11.1.0.7
  2.3 更新数据库到11.2.0.3这个版本
在ORACLE 11.2.0.3这个版本中可以解决所有的ORA-3137的错误;

2.4 联系ORACLE SUPPORT解决这个问题 经过以上操作,你都踩到这个地雷了,说明楼主平时烧香少,,需要联系ORALCE的大神么出手;

【3】总结:经过验证发现运行alter system set "_optim_peek_user_binds"=false后报错就消失了;

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn