强制释放Oracle连接


  1. Oracle服务器连接数过多会当掉,把连接数过多的客户机网线拔出后,在远程Oracle上依然还会保留此用户的连接数,久久不能释放,上网查了下可以以下面方法解决。   
  2.     
  3.   通过profile可以对用户会话进行一定的限制,比如IDLE时间。   
  4. 将IDLE超过一定时间的会话断开,可以减少数据库端的会话数量,减少资源耗用。   
  5.   
  6.   
  7. 使用这些资源限制特性,需要设置resource_limit为TRUE:   
  8.   
  9. [oracle@test126 udump]$ sqlplus "/ as sysdba"  
  10.   
  11. SQL*Plus: Release 10.2.0.1.0 - Production on Fri Oct 13 07:58:21 2006   
  12.   
  13. Copyright (c) 1982, 2005, Oracle.  All rights reserved.   
  14.   
  15.   
  16. Connected to:   
  17. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production   
  18. With the Partitioning and Data Mining options   
  19.   
  20. SQL> show parameter resource   
  21.   
  22. NAME                                TYPE        VALUE   
  23. ------------------------------------ ----------- ------------------------------   
  24. resource_limit                      boolean    TRUE  
  25. resource_manager_plan                string   
  26.   
  27.   
  28. 该参数可以动态修改:   
  29.   
  30. SQL> alter system set resource_limit=true;   
  31.   
  32. System altered.   
  33.   
  34.   
  35. 数据库缺省的PROFILE设置为:   
  36.   
  37. SQL> SELECT * FROM DBA_PROFILES;   
  38.   
  39. PROFILE              RESOURCE_NAME                    RESOURCE LIMIT   
  40. -------------------- -------------------------------- -------- ---------------   
  41. DEFAULT              COMPOSITE_LIMIT                  KERNEL  UNLIMITED   
  42. DEFAULT              SESSIONS_PER_USER                KERNEL  UNLIMITED   
  43. DEFAULT              CPU_PER_SESSION                  KERNEL  UNLIMITED   
  44. DEFAULT              CPU_PER_CALL                    KERNEL  UNLIMITED   
  45. DEFAULT              LOGICAL_READS_PER_SESSION        KERNEL  UNLIMITED   
  46. DEFAULT              LOGICAL_READS_PER_CALL          KERNEL  UNLIMITED   
  47. DEFAULT              IDLE_TIME                        KERNEL  UNLIMITED   
  48. DEFAULT              CONNECT_TIME                    KERNEL  UNLIMITED   
  49. DEFAULT              PRIVATE_SGA                      KERNEL  UNLIMITED   
  50. DEFAULT              FAILED_LOGIN_ATTEMPTS            PASSWORD 10   
  51. DEFAULT              PASSWORD_LIFE_TIME              PASSWORD UNLIMITED   
  52.   
  53. PROFILE              RESOURCE_NAME                    RESOURCE LIMIT   
  54. -------------------- -------------------------------- -------- ---------------   
  55. DEFAULT              PASSWORD_REUSE_TIME              PASSWORD UNLIMITED   
  56. DEFAULT              PASSWORD_REUSE_MAX              PASSWORD UNLIMITED   
  57. DEFAULT              PASSWORD_VERIFY_FUNCTION        PASSWORD NULL  
  58. DEFAULT              PASSWORD_LOCK_TIME              PASSWORD UNLIMITED   
  59. DEFAULT              PASSWORD_GRACE_TIME              PASSWORD UNLIMITED   
  60.   
  61. 16 rows selected.   
  62.   
  63.   
  64. 创建一个允许3分钟IDLE时间的PROFILE:   
  65.   
  66. SQL> CREATE PROFILE KILLIDLE LIMIT IDLE_TIME 3;   
  67.   
  68. Profile created.   
  69.   
  70.   
  71. 新创建PROFILE的内容:   
  72.   
  73. SQL> col limit for a10   
  74. SQL> select * from dba_profiles where profile='KILLIDLE';   
  75.   
  76. PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT   
  77. ------------------------------ -------------------------------- -------- ----------   
  78. KILLIDLE                      COMPOSITE_LIMIT                  KERNEL  DEFAULT  
  79. KILLIDLE                      SESSIONS_PER_USER                KERNEL  DEFAULT  
  80. KILLIDLE                      CPU_PER_SESSION                  KERNEL  DEFAULT  
  81. KILLIDLE                      CPU_PER_CALL                    KERNEL  DEFAULT  
  82. KILLIDLE                      LOGICAL_READS_PER_SESSION        KERNEL  DEFAULT  
  83. KILLIDLE                      LOGICAL_READS_PER_CALL          KERNEL  DEFAULT  
  84. KILLIDLE                      IDLE_TIME                        KERNEL  3   
  85. KILLIDLE                      CONNECT_TIME                    KERNEL  DEFAULT  
  86. KILLIDLE                      PRIVATE_SGA                      KERNEL  DEFAULT  
  87. KILLIDLE                      FAILED_LOGIN_ATTEMPTS            PASSWORD DEFAULT  
  88. KILLIDLE                      PASSWORD_LIFE_TIME              PASSWORD DEFAULT  
  89.   
  90. PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT   
  91. ------------------------------ -------------------------------- -------- ----------   
  92. KILLIDLE                      PASSWORD_REUSE_TIME              PASSWORD DEFAULT  
  93. KILLIDLE                      PASSWORD_REUSE_MAX              PASSWORD DEFAULT  
  94. KILLIDLE                      PASSWORD_VERIFY_FUNCTION        PASSWORD DEFAULT  
  95. KILLIDLE                      PASSWORD_LOCK_TIME              PASSWORD DEFAULT  
  96. KILLIDLE                      PASSWORD_GRACE_TIME              PASSWORD DEFAULT  
  97.   
  98. 16 rows selected.   
  99.   
  100.   
  101. 测试用户:   
  102.   
  103. SQL> select username,profile from dba_users where username='EYGLE';   
  104.   
  105. USERNAME                      PROFILE   
  106. ------------------------------ --------------------   
  107. EYGLE                          DEFAULT  
  108.   
  109.   
  110. 修改eygle用户的PROFILE使用新建的PROFILE:   
  111.   
  112. SQL> alter user eygle profile killidle;   
  113.   
  114. User altered.   
  115.   
  116. SQL> select username,profile from dba_users where username='EYGLE';   
  117.   
  118. USERNAME                      PROFILE   
  119. ------------------------------ --------------------   
  120. EYGLE                          KILLIDLE   
  121.   
  122.   
  123. 进行连接测试:   
  124.   
  125. [oracle@test126 admin]$ sqlplus eygle/eygle@eygle   
  126.   
  127. SQL*Plus: Release 10.2.0.1.0 - Production on Fri Oct 13 08:07:13 2006   
  128. Copyright (c) 1982, 2005, Oracle.  All rights reserved.   
  129.   
  130.   
  131. Connected to:   
  132. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production   
  133. With the Partitioning and Data Mining options   
  134.   
  135. SQL> select username,profile from dba_users where username='EYGLE';   
  136.   
  137. USERNAME                      PROFILE   
  138. ------------------------------ ------------------------------   
  139. EYGLE                          KILLIDLE   
  140.   
  141.   
  142.   
  143. 当IDLE超过限制时间时,连接会被断开:   
  144. SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'from dual;   
  145.   
  146. TO_CHAR(SYSDATE,'YY   
  147. -------------------   
  148. 2006-10-13 08:08:41   
  149.   
  150. SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'from dual;   
  151. select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'from dual   
  152. *   
  153. ERROR at line 1:   
  154. ORA-02396: exceeded maximum idle time, please connect again  
  • 1
  • 2
  • 下一页

相关内容