ORA-03137: TTC 協議內部錯誤: [12333] [48] [9] [91] [] [] [] []

流浪的野狼發表於2015-11-03
最近系統檢查發現有個系統一直在報錯:ORA-03137: TTC 協議內部錯誤: [12333] [48] [9] [91] [] [] [] []
檢查trc檔案發現有如下問題:
ump file /oracle/app/db/diag/rdbms/oracle1/oracle1/incident/incdir_7497/oracle1_ora_17113_i7497.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/app/11.2.0/db_1
System name:    Linux
Node name:      d4jttisvprd01
Release:        2.6.32-358.el6.x86_64
Version:        #1 SMP Tue Jan 29 11:47:41 EST 2013
Machine:        x86_64
VM name:        VMWare Version: 6
Instance name: oracle1
Redo thread mounted by this instance: 1
Oracle process number: 37
Unix process pid: 17113, image: oracle@d4jttisvprd01




*** 2015-04-10 14:31:42.994
*** SESSION ID:(77.17211) 2015-04-10 14:31:42.994
*** CLIENT ID:() 2015-04-10 14:31:42.994
*** SERVICE NAME:(oracle1) 2015-04-10 14:31:42.994
*** MODULE NAME:(SQL Loader Conventional Path Load) 2015-04-10 14:31:42.994
*** ACTION NAME:(d:\hrHFM\ctl\periodic.ctl) 2015-04-10 14:31:42.994


Dump continued from file: /oracle/app/db/diag/rdbms/oracle1/oracle1/trace/oracle1_ora_17113.trc
ORA-03137: TTC ?????’?©????????????????: [12333] [4] [71] [65] [] [] [] []


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


*** 2015-04-10 14:31:43.063
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
----- SQL Statement (None) -----
Current SQL information unavailable - no cursor.


----- Call Stack Trace -----
calling              call     entry                argument values in hex
location             type     point                (? means dubious value)
-------------------- -------- -------------------- ----------------------------
skdstdst()+41        call     kgdsdst()            000000000 ? 000000000 ?
                                                   7FFF3A97E6F0 ? 7FFF3A97E7C8 ?
                                                   7FFF3A983270 ? 000000002 ?
ksedst1()+103        call     skdstdst()           000000000 ? 000000000 ?
                                                   7FFF3A97E6F0 ? 7FFF3A97E7C8 ?
                                                   7FFF3A983270 ? 000000002 ?
搜了一下,網上太多解決方案,最後在MOS上看到如下解決方案,與我的問題極為相似,資料庫版本都是一致的。

The alert logfile shows the following error:

...
Sat Jul 05 11:42:48 2014
Errors in file /oracle_base/diag/rdbms/ORCL/ORCL/trace/ORCL_ora_16057148.trc  (incident=247676):
ORA-03137: TTC protocol internal error: [12333] [50] [9] [7] [] [] [] []
Incident details in: /oracle_base/diag/rdbms/ORCL/ORCL/incident/incdir_247676/ORCL_ora_16057148_i247676.trc
Sat Jul 05 11:42:52 2014
Dumping diagnostic data in directory=[cdmp_20140705114252], requested by (instance=1, osid=16057148), summary=[incident=247676].
...

The errors are occasional: if the load is re-run then it is likely that the sqlldr job now succeeds without errors.

Other possible errors:

ORA-25408: can not safely replay call
ORA-25402: transaction must roll back
ORA-12152: TNS:unable to send break message
ORA-12592  TNS: Bad Packet


CHANGES

You recently upgraded to 11.2.0.4 and are loading data to the database server with SQL*Loader.

The problem is caused by a inconsistency in the SQL*Net layer on the server side, when a data package from the client is read in two different modes (first part in non-fast path mode and second part in fast path mode).
As a result of that, the first part of the package data is lost, resulting in:
ORA-03137: TTC protocol internal error : [12333] [50] [9] [7] [] [] [] []
or
ORA-12592: TNS:BAD PACKET

References:
Bug 18841764 - ORA-12592 TNS:BAD PACKET OR ORA-3137 OR ORA-1 (not a public bug), fixed in 12.2.0.1
Note 18841764.8 - Bug 18841764 - Network related error like ORA-12592 or ORA-3137 or ORA-3106 may be signaled

Other references:
 - ORA-25408, ORA-25402, ORA-12152 AND ORA-12592 AFTER UPGRADE TO 11.2.0.4, closed as a duplicate of Bug 18841764
 - SQL*LOADER FAILS WITH ORA-3137, fixed with fix of Bug 18841764, closed as a duplicate of Bug 18841764
 - ORA-12592 ERRORS AFTER DATABASE UPGRADE TO 11.2.0.4

SOLUTION

1. Confirm that the workaround of Bug 18841764 actually fixes the problem.
Set in the Server side sqlnet.ora file following parameter:

File: sqlnet.ora (server side)
--------------------------------
...
SQLNET.SEND_TIMEOUT=600

This file is located in the directory: $ORACLE_HOME/network/admin

2. Retest the issue by re-running the SQL*Loader loads.

3. If the problem is fixed, and you need to remove the entry SQLNET.SEND_TIMEOUT from the sqlnet.ora file on the server, then apply  if available for your platform and version (or request this fix from Oracle Support), and re-run the SQL*Loader job.

4. Migrate the solution as appropriate to other environments.


參考自:Occasional ORA-12592 (TNS:BAD PACKET) and ORA-03137 [12333] When Running SQL*Loader Jobs (Doc ID 1905674.1)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28612416/viewspace-1821257/,如需轉載,請註明出處,否則將追究法律責任。

相關文章