Oracle 10g最大会话数已过期

时间:2009-04-13 15:35:55

标签: oracle10g

我们有Oracle 10 g数据库,我们收到的消息为ORA-00018:超出了最大会话数。我们配置参数如下;

会议600 过程:600

及其共享服务器模式。我们将此更新为Session:900和Process:750。现在Oracle正在运行,但我需要知道这有助于我们继续或者我还需要做一些其他更改以避免错误“ORA-00018:最大值会话数超过“

任何人都可以帮助PLZ 非常感谢您的回复

此致 约瑟夫

3 个答案:

答案 0 :(得分:1)

您可能让用户参加会议而根本不发布会话,或者长时间保留会话。当你得到那个例外时,看看是否有任何长时间运行的交易。

答案 1 :(得分:0)

了解这一点的最佳方法是每隔5-10分钟连接到数据库并转储v $ session表。通过这种方式,您可以了解有时所有进程/应用程序与数据库的连接。它可能是一个长时间运行的进程/守护进程/服务根本没有释放会话的错误。一个简单的脚本如果你可以作为cron作业运行来转储v $ session表,它就会变得可见。

答案 2 :(得分:0)

以下是我为12c数据库解决的问题:

1 控制正在使用的连接数

PDB中的登录

SELECT
    'Currently, ' 
    || (SELECT COUNT(*) FROM V$SESSION)
    || ' out of ' 
    || VP.VALUE 
    || ' connections are used.' AS USAGE_MESSAGE
FROM 
    V$PARAMETER VP
WHERE 
    VP.NAME = 'sessions'

检查连接数

quit
sqlplus / as sysdba
alter session set container = PDB1;

显示“目前使用了m个连接中的n个。”这里n>米应该是相反的。

2 更改最大会话次数

在PDB中以sys身份登录

alter system set sessions=100 scope=both sid='*';

更改会话数

SQL> shutdown immediate
SQL> startup

3 退回数据库

ALTER PLUGGABLE DATABASE ALL OPEN;

打开所有PDB(由弹跳关闭)

sqlplus <username>/<pswd>@<hostname>:1521/<ServiceName>

4 再次控制

SELECT
    'Currently, ' 
    || (SELECT COUNT(*) FROM V$SESSION)
    || ' out of ' 
    || VP.VALUE 
    || ' connections are used.' AS USAGE_MESSAGE
FROM 
    V$PARAMETER VP
WHERE 
    VP.NAME = 'sessions'

运行控制SQL查询

{{1}}

显示“当前使用了m个连接中的n个。”现在n&lt;米