隨筆-48  評論-26  文章-0  trackbacks-0
          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
          posted on 2009-09-26 14:48 Worker 閱讀(233) 評論(0)  編輯  收藏 所屬分類: 數據庫

          主站蜘蛛池模板: 沧州市| 宁南县| 宜川县| 乐山市| 电白县| 江阴市| 靖远县| 介休市| 贞丰县| 马鞍山市| 通渭县| 论坛| 姚安县| 彭山县| 文昌市| 阳信县| 蓬安县| 营山县| 铜陵市| 集安市| 收藏| 万州区| 临颍县| 康平县| 阿拉尔市| 土默特右旗| 雷州市| 德惠市| 隆昌县| 富锦市| 邻水| 娄烦县| 石台县| 札达县| 灵寿县| 鄂尔多斯市| 常德市| 普格县| 彭山县| 仁化县| 兴宁市|