获取 ORA-02391:SESSIONS_PER_USER 限制

use*_*166 2 database oracle

是否有一个查询可以用来获取我可以同时使用的会话数量?我正在处理一些数据库连接并收到错误:

ORA-02391: 超出同时 SESSIONS_PER_USER 限制

如何获得此限制的值?

kev*_*sky 5

从这个查询开始,找出你正在使用的会话数

select count(*) from v$session where username='YourUser';
Run Code Online (Sandbox Code Playgroud)

然后找出您的用户的个人资料中允许的数量

select profile from dba_users where username ='YourUser';
Run Code Online (Sandbox Code Playgroud)

最后

select PROFILE, LIMIT
from dba_profiles
WHERE RESOURCE_NAME = 'SESSIONS_PER_USER'
AND PROFILE = 'YourUserProfile';
Run Code Online (Sandbox Code Playgroud)

和修复

Alter profile YourUserProfile  limit SESSIONS_PER_USER 100;
Run Code Online (Sandbox Code Playgroud)

由于每个会话消耗资源,因此存在限制。如果你增加限制,一些仔细的计划是为了生产系统,所以你不会用完内存。


tha*_*ith 2

获取该用户的个人资料

select profile from dba_users where username = :who;
Run Code Online (Sandbox Code Playgroud)

然后获取该配置文件的资源限制

SELECT P1.LIMIT AS "Concurrent Sessions (Per User)"
FROM   DBA_PROFILES P1
WHERE  P1.PROFILE       = :PROFILE
   AND P1.RESOURCE_NAME = 'SESSIONS_PER_USER';
Run Code Online (Sandbox Code Playgroud)

或者

在 SQL Developer 中,打开 DBA 面板并浏览“安全”下的用户和配置文件

在 SQL Developer 中浏览用户和配置文件