ORA-00018: maximum number of sessions exceeded错误解决

一.错误描述

在indows客户端使用sqlplus工具,连接远程数据库服务器时,报了ORA-00018的错误,如下:

C:Documents and Settingsdujiabing>sqlplus aidu/*****@192.168.17.138:1521/aidu
SQL*Plus: Release 10.2.0.5.0 - Production on 星期三 3月 28 08:59:39 2012
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
ERROR:
ORA-00018: maximum number of sessions exceeded
请输入用户名:

[@more@]

二. 错误分析
[oracle@ocmdb ~]$ oerr ora 18
00018, 00000, "maximum number of sessions exceeded"
// *Cause: All session state objects are in use.
// *Action: Increase the value of the SESSIONS initialization parameter.

检查服务器端的sessions配置,如下:
SQL> show parameter sessions
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
sessions integer 555

统计当前的session数量,
SQL> select count(1) from v$session;

COUNT(1)
----------
17

当前的session数量为17 ,远小于最大session数量(555),不存在达到最大session数量的问题.

之前因为配置了shared server连接方式,设置相关参数,如下:
max_shared_servers
shared_server_sessions
shared_servers
dispatchers

可能是因为这些参数的配置,出了问题,导致了客户端无法连接,检查相关的参数值,如下:
SQL> show parameter shared_server

NAME TYPE VALUE
------------------------------------ --------------------------------- -----------
max_shared_servers integer 0 ##最多的shared server 进程
shared_server_sessions integer 0 ##分配给shared server的进程数
shared_servers integer 5 ##初始化的shared server进程数

SQL> show parameter dispatchers
NAME TYPE VALUE
------------------------------------ --------------------------------- ------------------------------
dispatchers string (PROTOCOL=TCP)(dispatcher=5)
max_dispatchers integer

发现dispatchers参数设置有点问题(PROTOCOL=TCP)(dispatcher=5),应该修改为(PROTOCOL=TCP)(dispatchers=5)

SQL> alter system set dispatchers='(PROTOCOL=TCP)(dispatchers=5)' scope=both;
System altered.

修改了dispatchers参数,发现客户端还是无法正常登陆.
C:Documents and Settingsdujiabing>sqlplus aidu/soft@192.168.17.138:1521/aidu
ERROR:
ORA-00018: maximum number of sessions exceeded
请输入用户名:

SQL> alter system set max_shared_servers=20 scope=both;
System altered.

修改了max_shared_servers参数,发现客户端还是无法正常登陆.
C:Documents and Settingsdujiabing>sqlplus aidu/soft@192.168.17.138:1521/aidu
ERROR:
ORA-00018: maximum number of sessions exceeded
请输入用户名:

SQL> alter system set shared_server_sessions=5 scope=both;
System altered.

修改了shared_server_sessions 参数为非0值,发现客户端可以正常登陆了.

C:Documents and Settingsdujiabing>sqlplus aidu/******@192.168.17.138:1521/aidu
SQL*Plus: Release 10.2.0.5.0 - Production on 星期三 3月 28 11:12:31 2012
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options


三.问题总结
因为设置了dispatchers和shared_servers参数,启动了shared server模式,所以客户端缺省使用shared 方式进行数据库连接.
上面的问题是,没有设置分配给shared server的session数量,即参数shared_server_sessions=0,导致了客户端不能够连接.
修改shared_server_sessions参数为5(非0),客户端可以连接,问题得到解决.

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

转载于:http://blog.itpub.net/32980/viewspace-1057752/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值