oracle的释放机制,Oracle连接数过多释放机制
Oracle服務(wù)器連接數(shù)過多會(huì)當(dāng)?shù)?#xff0c;把連接數(shù)過多的客戶機(jī)網(wǎng)線拔出后,在遠(yuǎn)程Oracle上依然還會(huì)保留此用戶的連接數(shù),久久不能釋放,上網(wǎng)查了下可以以下面方法解決。
通過profile可以對(duì)用戶會(huì)話進(jìn)行一定的限制,比如IDLE時(shí)間。
將IDLE超過一定時(shí)間的會(huì)話斷開,可以減少數(shù)據(jù)庫(kù)端的會(huì)話數(shù)量,減少資源耗用。
使用這些資源限制特性,需要設(shè)置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
該參數(shù)可以動(dòng)態(tài)修改:
SQL> alter system set resource_limit=true;
System altered.
數(shù)據(jù)庫(kù)缺省的PROFILE設(shè)置為:
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.
創(chuàng)建一個(gè)允許3分鐘IDLE時(shí)間的PROFILE:
SQL> CREATE PROFILE KILLIDLE LIMIT IDLE_TIME 3;
Profile created.
新創(chuàng)建PROFILE的內(nèi)容:
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.
測(cè)試用戶:
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
進(jìn)行連接測(cè)試:
[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
當(dāng)IDLE超過限制時(shí)間時(shí),連接會(huì)被斷開:
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
總結(jié)
以上是生活随笔為你收集整理的oracle的释放机制,Oracle连接数过多释放机制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 并行提交,如何配置Orac
- 下一篇: oracle raw性能,对Oracle