oracle的释放机制,Oracle连接数过多释放机制
Oracle服務器連接數過多會當掉,把連接數過多的客戶機網線拔出后,在遠程Oracle上依然還會保留此用戶的連接數,久久不能釋放,上網查了下可以以下面方法解決。
通過profile可以對用戶會話進行一定的限制,比如IDLE時間。
將IDLE超過一定時間的會話斷開,可以減少數據庫端的會話數量,減少資源耗用。
使用這些資源限制特性,需要設置resource_limit為TRUE:
[oracle@test126 udump]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Oct 13 07:58:21 2006
Copyright (c) 1982, 2005, Oracle.? All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning and Data Mining options
SQL> show parameter resource
NAME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE? ? ? ? VALUE
------------------------------------ ----------- ------------------------------
resource_limit? ? ? ? ? ? ? ? ? ? ? boolean? ? TRUE
resource_manager_plan? ? ? ? ? ? ? ? string
該參數可以動態修改:
SQL> alter system set resource_limit=true;
System altered.
數據庫缺省的PROFILE設置為:
SQL> SELECT * FROM DBA_PROFILES;
PROFILE? ? ? ? ? ? ? RESOURCE_NAME? ? ? ? ? ? ? ? ? ? RESOURCE LIMIT
-------------------- -------------------------------- -------- ---------------
DEFAULT? ? ? ? ? ? ? COMPOSITE_LIMIT? ? ? ? ? ? ? ? ? KERNEL? UNLIMITED
DEFAULT? ? ? ? ? ? ? SESSIONS_PER_USER? ? ? ? ? ? ? ? KERNEL? UNLIMITED
DEFAULT? ? ? ? ? ? ? CPU_PER_SESSION? ? ? ? ? ? ? ? ? KERNEL? UNLIMITED
DEFAULT? ? ? ? ? ? ? CPU_PER_CALL? ? ? ? ? ? ? ? ? ? KERNEL? UNLIMITED
DEFAULT? ? ? ? ? ? ? LOGICAL_READS_PER_SESSION? ? ? ? KERNEL? UNLIMITED
DEFAULT? ? ? ? ? ? ? LOGICAL_READS_PER_CALL? ? ? ? ? KERNEL? UNLIMITED
DEFAULT? ? ? ? ? ? ? IDLE_TIME? ? ? ? ? ? ? ? ? ? ? ? KERNEL? UNLIMITED
DEFAULT? ? ? ? ? ? ? CONNECT_TIME? ? ? ? ? ? ? ? ? ? KERNEL? UNLIMITED
DEFAULT? ? ? ? ? ? ? PRIVATE_SGA? ? ? ? ? ? ? ? ? ? ? KERNEL? UNLIMITED
DEFAULT? ? ? ? ? ? ? FAILED_LOGIN_ATTEMPTS? ? ? ? ? ? PASSWORD 10
DEFAULT? ? ? ? ? ? ? PASSWORD_LIFE_TIME? ? ? ? ? ? ? PASSWORD UNLIMITED
PROFILE? ? ? ? ? ? ? RESOURCE_NAME? ? ? ? ? ? ? ? ? ? RESOURCE LIMIT
-------------------- -------------------------------- -------- ---------------
DEFAULT? ? ? ? ? ? ? PASSWORD_REUSE_TIME? ? ? ? ? ? ? PASSWORD UNLIMITED
DEFAULT? ? ? ? ? ? ? PASSWORD_REUSE_MAX? ? ? ? ? ? ? PASSWORD UNLIMITED
DEFAULT? ? ? ? ? ? ? PASSWORD_VERIFY_FUNCTION? ? ? ? PASSWORD NULL
DEFAULT? ? ? ? ? ? ? PASSWORD_LOCK_TIME? ? ? ? ? ? ? PASSWORD UNLIMITED
DEFAULT? ? ? ? ? ? ? PASSWORD_GRACE_TIME? ? ? ? ? ? ? PASSWORD UNLIMITED
16 rows selected.
創建一個允許3分鐘IDLE時間的PROFILE:
SQL> CREATE PROFILE KILLIDLE LIMIT IDLE_TIME 3;
Profile created.
新創建PROFILE的內容:
SQL> col limit for a10
SQL> select * from dba_profiles where profile='KILLIDLE';
PROFILE? ? ? ? ? ? ? ? ? ? ? ? RESOURCE_NAME? ? ? ? ? ? ? ? ? ? RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------
KILLIDLE? ? ? ? ? ? ? ? ? ? ? COMPOSITE_LIMIT? ? ? ? ? ? ? ? ? KERNEL? DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? SESSIONS_PER_USER? ? ? ? ? ? ? ? KERNEL? DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? CPU_PER_SESSION? ? ? ? ? ? ? ? ? KERNEL? DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? CPU_PER_CALL? ? ? ? ? ? ? ? ? ? KERNEL? DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? LOGICAL_READS_PER_SESSION? ? ? ? KERNEL? DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? LOGICAL_READS_PER_CALL? ? ? ? ? KERNEL? DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? IDLE_TIME? ? ? ? ? ? ? ? ? ? ? ? KERNEL? 3
KILLIDLE? ? ? ? ? ? ? ? ? ? ? CONNECT_TIME? ? ? ? ? ? ? ? ? ? KERNEL? DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? PRIVATE_SGA? ? ? ? ? ? ? ? ? ? ? KERNEL? DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? FAILED_LOGIN_ATTEMPTS? ? ? ? ? ? PASSWORD DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? PASSWORD_LIFE_TIME? ? ? ? ? ? ? PASSWORD DEFAULT
PROFILE? ? ? ? ? ? ? ? ? ? ? ? RESOURCE_NAME? ? ? ? ? ? ? ? ? ? RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------
KILLIDLE? ? ? ? ? ? ? ? ? ? ? PASSWORD_REUSE_TIME? ? ? ? ? ? ? PASSWORD DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? PASSWORD_REUSE_MAX? ? ? ? ? ? ? PASSWORD DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? PASSWORD_VERIFY_FUNCTION? ? ? ? PASSWORD DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? PASSWORD_LOCK_TIME? ? ? ? ? ? ? PASSWORD DEFAULT
KILLIDLE? ? ? ? ? ? ? ? ? ? ? PASSWORD_GRACE_TIME? ? ? ? ? ? ? PASSWORD DEFAULT
16 rows selected.
測試用戶:
SQL> select username,profile from dba_users where username='EYGLE';
USERNAME? ? ? ? ? ? ? ? ? ? ? PROFILE
------------------------------ --------------------
EYGLE? ? ? ? ? ? ? ? ? ? ? ? ? DEFAULT
修改eygle用戶的PROFILE使用新建的PROFILE:
SQL> alter user eygle profile killidle;
User altered.
SQL> select username,profile from dba_users where username='EYGLE';
USERNAME? ? ? ? ? ? ? ? ? ? ? PROFILE
------------------------------ --------------------
EYGLE? ? ? ? ? ? ? ? ? ? ? ? ? KILLIDLE
進行連接測試:
[oracle@test126 admin]$ sqlplus eygle/eygle@eygle
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Oct 13 08:07:13 2006
Copyright (c) 1982, 2005, Oracle.? All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning and Data Mining options
SQL> select username,profile from dba_users where username='EYGLE';
USERNAME? ? ? ? ? ? ? ? ? ? ? PROFILE
------------------------------ ------------------------------
EYGLE? ? ? ? ? ? ? ? ? ? ? ? ? KILLIDLE
當IDLE超過限制時間時,連接會被斷開:
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2006-10-13 08:08:41
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual
*
ERROR at line 1:
ORA-02396: exceeded maximum idle time, please connect again
總結
以上是生活随笔為你收集整理的oracle的释放机制,Oracle连接数过多释放机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 并行提交,如何配置Orac
- 下一篇: oracle raw性能,对Oracle