隨筆-48  評論-26  文章-0  trackbacks-0
          Oracle服務(wù)器連接數(shù)過多會當(dāng)?shù)?,把連接數(shù)過多的客戶機網(wǎng)線拔出后,在遠程Oracle上依然還會保留此用戶的連接數(shù),久久不能釋放,上網(wǎng)查了下可以以下面方法解決。
           
            通過profile可以對用戶會話進行一定的限制,比如IDLE時間。
          將IDLE超過一定時間的會話斷開,可以減少數(shù)據(jù)庫端的會話數(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ù)可以動態(tài)修改:
          SQL> alter system set resource_limit=true;

          System altered.

          數(shù)據(jù)庫缺省的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)建一個允許3分鐘IDLE時間的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.

          測試用戶:
          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


          當(dāng)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
          posted on 2009-09-26 14:48 Worker 閱讀(227) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          主站蜘蛛池模板: 德钦县| 长兴县| 鄂州市| 新田县| 渝北区| 邯郸县| 洞头县| 昌图县| 南昌市| 道孚县| 大连市| 德清县| 依兰县| 孝昌县| 平和县| 绩溪县| 衡水市| 邢台市| 石棉县| 姜堰市| 新平| 寿光市| 泗洪县| 怀集县| 晋州市| 石狮市| 牟定县| 北京市| 临高县| 兴安盟| 卢氏县| 佛坪县| 东乌珠穆沁旗| 常熟市| 永州市| 临桂县| 天峨县| 通江县| 文登市| 莱西市| 静乐县|