ora-600[12333]错误小结及跟踪方法


该错误,是当服务器接收到无法识别的网络代码或请求时引起Oracle发出的告警 ,主要原因来自于网络,
与Oracle 本身没有关系。
如果该错误持续出现,建议用以下代码进行跟踪,有可能是病毒引发的:

create table
SYSTEM.login_info
( logindatetime date,
LogoffDateTime Date,
LoggedUser Varchar2(30),
SESSIONID Number,
TERMINAL varchar2(20),
ip varchar2(16),
PROGRAM varchar2(20)
);
--------------------------------------------------------------------
CREATE OR REPLACE TRIGGER logoff_audit Before LOGOFF ON DATABASE
BEGIN
insert into system.login_info
select
'',sysdate,user,sys_context('USERENV','SESSIONID'),sys_context('USERENV'
,'TERMINAL'),utl_inaddr.get_host_address, program from v$session where logon_time = (select
logindatetime from SYSTEM.login_info where SESSIONID=
sys_context('USERENV','SESSIONID'));
END;
---------------------------------------------------------------------
CREATE OR REPLACE TRIGGER logon_audit AFTER LOGON ON DATABASE
BEGIN
insert into system.login_info
select sysdate,null,user,sys_context('USERENV','SESSIONID'),sys_context(
'USERENV','TERMINAL'),utl_inaddr.get_host_address,program from v$session;
END;

其他可能原因:
Typically the ORA-600 [12333] itself is not the problem,
It may be a chance of the underlying network problems
This is usually a client side related issue and is not normally related to server. It is a communications issue and not related to the version of the RDBMS. Thats why you do have this errors intermittently only.

Most occurances of ORA-600 [12333] just means that something has
gone wrong in the communication between the client and the server processes. Often, this could be the result of an abnormal condition (a process is inadvertently killed, or a database shuts down)

The error indicates a protocol communications mismatch

 1<note:112660.1>   
 2  
 3PURPOSE   
 4\-------   
 5  
 6This paper describes one known reason of frequent occurence of ORA-600 [12333]   
 7errors.   
 8NOTE: There may exist many other issues however.   
 9  
10SCOPE &amp; APPLICATION   
11\-------------------   
12  
13Support Analysts and DBAs.   
14  
15  
16ORA-600 [12333] in case of termination of user sessions   
17\-------------------------------------------------------   
18  
19ORA-600 [12333] may occur in case of abnormal termination of user   
20sessions, eg. shutdown immediate, forced disconnections etc.   
21  
22  
23Frequent ORA-600 [12333] in case of using resource limit   
24\--------------------------------------------------------   
25  
26Using user profiles and resource_limit=true may cause frequent ORA-600 [12333]occurence. We may also see many SNIPPED session in V$SESSION. For those ones resources are not freed until any server related action is taken at the client side. It seems that ORA-600 [12333] appears while sending ORA-1012 or ORA-2396 messages to the client process.   
27  
28If we really have to use user profiles to enforce resource limit policies(especially idle time) we'd better proactively remove such sessions.   
29For now, the only found way preventing from ORA-600 [12333] occurence   
30caused by resource_limit issue is killing processes related to SNIPPED sessions at OS level. This implies it is applicable only to the DEDICATED server processes. Killing shadow processes for SNIPPED sessions is explained in <note:96170.1>.   
31  
32NOTE: Killing shadow processes only decreases the likehood of ORA-600 [12333] occurence. It is a workaround.   
33  
34  
35Couple of suggestion   
36=======================   
37  
381)Check the network errors, their should be any errors or protocol mismatch   
39  
402)Check the NLS settings on client as well as server side settings   
41ORA_NLS (ORA_NLS32, ORA_NLS33) Environment Variables.   
42  
43Article-ID: <note:77442.1>   
44Title: ORA_NLS (ORA_NLS32, ORA_NLS33) Environment Variables   
45  
463)NO users should disconnect abnormally.</note:77442.1></note:96170.1></note:112660.1>
Published At
Categories with 数据库类
Tagged with
comments powered by Disqus