Query
--------
User reported some of his programs terminated with the below errors.
ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit
Solution
---------
SQL> select profile from dba_users where username='AP%';
SQL> select profile,resource_name,limit from dba_profiles where profile like 'AP_USERPROFILE%';
PROFILE RESOURCE_NAME LIMIT
------------------------- -------------------------------- --------------------
AP_USERPROFILE COMPOSITE_LIMIT DEFAULT
AP_USERPROFILE SESSIONS_PER_USER 10
AP_USERPROFILE CPU_PER_SESSION DEFAUL
AP_USERPROFILE CPU_PER_CALL DEFAULT
AP_USERPROFILE LOGICAL_READS_PER_SESSION DEFAULT
AP_USERPROFILE LOGICAL_READS_PER_CALL DEFAULT
AP_USERPROFILE IDLE_TIME DEFAULT
AP_USERPROFILE CONNECT_TIME DEFAULT
AP_USERPROFILE PRIVATE_SGA DEFAULT
AP_USERPROFILE FAILED_LOGIN_ATTEMPTS 5
AP_USERPROFILE PASSWORD_LIFE_TIME 90
PROFILE RESOURCE_NAME LIMIT
------------------------- -------------------------------- --------------------
AP_USERPROFILE PASSWORD_REUSE_TIME 1
AP_USERPROFILE PASSWORD_REUSE_MAX 15
AP_USERPROFILE PASSWORD_VERIFY_FUNCTION DEFAULT
AP_USERPROFILE PASSWORD_LOCK_TIME .052
AP_USERPROFILE PASSWORD_GRACE_TIME 10
16 rows selected.
If we want to modify the profiles for the RESOURCE_NAME ,
but keep in mind the profile value it self will be modified and all the users associated with the profile will be effected.
SQL> alter profile AP_USERPROFILE LIMIT SESSIONS_PER_USER 20;
After changing the values you can verify the dba_profiles again for the confirmations.
Some More Info on Profiles
---------------------------
ALTER PROFILE profile_name LIMIT <RESOURCE_NAME> value;
limit = SESSIONS_PER_USER
CPU_PER_SESSION
CPU_PER_CALL
CONNECT_TIME
IDLE_TIME
LOGICAL_READS_PER_SESSION
LOGICAL_READS_PER_CALL
COMPOSITE_LIMIT
PRIVATE_SGA
ALTER PROFILE profile_name LIMIT pw_limit(s) range;
pw_limits = PASSWORD_LIFE_TIME
PASSWORD_GRACE_TIME
PASSWORD_REUSE_TIME
PASSWORD_REUSE_MAX
FAILED_LOGIN_ATTEMPTS
PASSWORD_LOCK_TIME
range = UNLIMITED | DEFAULT | expression
--------
User reported some of his programs terminated with the below errors.
ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit
Solution
---------
SQL> select profile from dba_users where username='AP%';
SQL> select profile,resource_name,limit from dba_profiles where profile like 'AP_USERPROFILE%';
PROFILE RESOURCE_NAME LIMIT
------------------------- -------------------------------- --------------------
AP_USERPROFILE COMPOSITE_LIMIT DEFAULT
AP_USERPROFILE SESSIONS_PER_USER 10
AP_USERPROFILE CPU_PER_SESSION DEFAUL
AP_USERPROFILE CPU_PER_CALL DEFAULT
AP_USERPROFILE LOGICAL_READS_PER_SESSION DEFAULT
AP_USERPROFILE LOGICAL_READS_PER_CALL DEFAULT
AP_USERPROFILE IDLE_TIME DEFAULT
AP_USERPROFILE CONNECT_TIME DEFAULT
AP_USERPROFILE PRIVATE_SGA DEFAULT
AP_USERPROFILE FAILED_LOGIN_ATTEMPTS 5
AP_USERPROFILE PASSWORD_LIFE_TIME 90
PROFILE RESOURCE_NAME LIMIT
------------------------- -------------------------------- --------------------
AP_USERPROFILE PASSWORD_REUSE_TIME 1
AP_USERPROFILE PASSWORD_REUSE_MAX 15
AP_USERPROFILE PASSWORD_VERIFY_FUNCTION DEFAULT
AP_USERPROFILE PASSWORD_LOCK_TIME .052
AP_USERPROFILE PASSWORD_GRACE_TIME 10
16 rows selected.
If we want to modify the profiles for the RESOURCE_NAME ,
but keep in mind the profile value it self will be modified and all the users associated with the profile will be effected.
SQL> alter profile AP_USERPROFILE LIMIT SESSIONS_PER_USER 20;
After changing the values you can verify the dba_profiles again for the confirmations.
Some More Info on Profiles
---------------------------
ALTER PROFILE profile_name LIMIT <RESOURCE_NAME> value;
limit = SESSIONS_PER_USER
CPU_PER_SESSION
CPU_PER_CALL
CONNECT_TIME
IDLE_TIME
LOGICAL_READS_PER_SESSION
LOGICAL_READS_PER_CALL
COMPOSITE_LIMIT
PRIVATE_SGA
ALTER PROFILE profile_name LIMIT pw_limit(s) range;
pw_limits = PASSWORD_LIFE_TIME
PASSWORD_GRACE_TIME
PASSWORD_REUSE_TIME
PASSWORD_REUSE_MAX
FAILED_LOGIN_ATTEMPTS
PASSWORD_LOCK_TIME
range = UNLIMITED | DEFAULT | expression
Comments
Post a Comment