ORA-12518 / TNS-12518 Troubleshooting

最近系统很多次碰到 ORA-12518的问题,怀疑是连接太多了。但是查看session实际上不多。

多次重启系统后发想此问题还是与,

metalink 上的解决办法是:

ORA-12518 / TNS-12518 Troubleshooting [ID 556428.1]

1. These parameters are set on the SERVER side:

listener.ora: INBOUND_CONNECT_TIMEOUT_listenername

sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT

设置为0

 

此方法行不通。

2.  lack of available memory

这很显然不是

3 - Less of processes in the database,:

Increase processes parameter if using dedicated connexion (init.ora / spfile file)

In unix, adjust resource limits to increase the number of max processes allowed.

显然这个应该是其中一个原因

conn / as sysdba

>show parameters process

processes 200

 

>select count(*) from v$session;

198

 

> select count(*) from v$process;

199

这可能是问题的所在了。

然后

>alter system set processes=300 scope=both;

ORA-02095: specified initialization parameter cannot be modified

>alter system set processes=300 scope=spfile;

ORA-32001: write to SPFILE requested but no SPFILE specified at startup

发现EBS启动的时候不是用spfile的,那么直接去修改pfile: init$SID.ora 文件 (/dbs)

D:\oracle\VIS\db\tech_st\11.1.0\dbs

processes                       = 300    # Max. no. of users x 2
sessions                        = 600     # 2 X processes 

 

重启系统了。这是EBS系统,所以直接重启数据库是有问题的。

 

OK。

-Mountain 2010.12.04


http://www.itpub.net/viewthread.php?tid=521086

这个问题一直持续到现在,好像没有很明确的解决思路。

我最近也碰到这个问题了,解决思路也是看了pub里的兄弟的解决办法。
总结一下,我觉得目前这个问题还没有出现,大致可以说算是把这个问题解决了吧。

Env: windows 2003, 3G, Oracle EBS R12.1.2, DB 11.1.0.7

参考metalink:ID 556428.1   
ORA-12518 / TNS-12518 Troubleshooting

Solution
1- Timer issues causing abnormal threads :
Set the parameters SQLNET.INBOUND_CONNECT_TIMEOUT and INBOUND_CONNECT_TIMEOUT_listenername to 0 (indefinite) or to an approprate value for the application.
From Oracle base version 10.2.0.1 onwards the default value of INBOUND_CONNECT_TIMEOUT_ is 60 seconds. For previous releases it is zero by default.

a) Please add following parameter in listener.ora
INBOUND_CONNECT_TIMEOUT_ = 0

For example, if the listener name is listenerTest, then:
INBOUND_CONNECT_TIMEOUT_listenerTest = 0

AND

b) Add the following parameter to the sqlnet.ora file on the Database server 
side:
SQLNET.INBOUND_CONNECT_TIMEOUT = 0

The listener and database will need to be restarted after these changes.

These parameters are set on the SERVER side:
listener.ora: INBOUND_CONNECT_TIMEOUT_listenername
sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT

Note: This timeout restriction was introduced to combat Denial of Service (DoS) attack whereby malicious clients attempt to flood database servers with connect requests that consumes resources.

Fore more info/setting on inbound connection time out, check the following note :
Note 465043.1 - Troubleshooting ORA - 3136 WARNING Inbound Connection Timed Out

2 - Lack of available memory : 
Increase memory and swap in the system

3 - Less of processes in the database,:
Increase processes parameter if using dedicated connexion (init.ora / spfile file)
In unix, adjust resource limits to increase the number of max processes allowed. 

4 - Set /3GB option :
Switch in the BOOT.INI file to enable the 4GB feature.
This allows a process to address 3GB and reserving 1GB for the kernel. 

5- Tune SGA / shared_pool_size :
Reduce the SGA size to a reasonable figure which allows the user process to have enough memory to run.
Decrease the size of the database SGA by reducing the PGA_AGGREGATE_TARGET or SGA_MAX_SIZE or both. 
The amount of memory for a session depends upon PGA_AGGREGATE_TARGET.
If PGA_AGGREGATE_TARGET is set to a very small value ,Oracle session may exceed this value.

6 - Set or Tune MTS :
Configure MTS or increase the number of DISPATCHERS (if Shared Server is being used).

7- If the listener crash with a core dump and the ora-12518 appears in the log, then you are probably hitting Bug 6139856 due to heavy load or out of memory.


Step 1, 按 solution 1 所说, Timer issue 不存在,改了,重启系统还是出现问题。
Step 2, 内存肯定不缺。
Step 3, 改了pfile中的processes 参数和 sessions参数,processes=300, sessions=600
            重启系统还是能重现问题
Step 4, 很显然,这个不是问题的限制原因。
Step 5, Set or Tune MTS, 我尝试着去把server改成shared connection, 但是没有一个很好的建议方案去设置listener dispatcher相关的参数。我设置的是10个dispatcher, 然后每个50 连接。重启系统了,问题基本上不会重现了,但是能感觉到连接速度很慢,相关参数设置还是没有很好的方案。

Step 6, 参考 5- Tune SGA / shared_pool_size : 之前pga_aggregate_target 1G, sga_target 1G
        然后把这两个都减小为850M,这样问题基本上能得到解决。现在看暂时没有碰到问题。

pub里好多兄弟都是改用linux 64, 问题基本上会解决,我们的另外一个环境是Redhat 5.2 32bit, Orace EBS 12.1.1, DB 11.1.0.7就没有发生过这个问题。
看来还是linux好啊。


--Mountian 2010/12/05

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22161612/viewspace-680906/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22161612/viewspace-680906/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值