惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cisco Blogs
Schneier on Security
Schneier on Security
T
Tor Project blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
Security Latest
Security Latest
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
NISL@THU
NISL@THU
L
Lohrmann on Cybersecurity
Scott Helme
Scott Helme
Webroot Blog
Webroot Blog
Project Zero
Project Zero
Google Online Security Blog
Google Online Security Blog
The Last Watchdog
The Last Watchdog
Spread Privacy
Spread Privacy
Hacker News: Ask HN
Hacker News: Ask HN
PCI Perspectives
PCI Perspectives
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
W
WeLiveSecurity
Attack and Defense Labs
Attack and Defense Labs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News | PayPal Newsroom
Help Net Security
Help Net Security
The Hacker News
The Hacker News
H
Heimdal Security Blog
O
OpenAI News
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
Cyberwarzone
Cyberwarzone
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 叶小钗
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
I
Intezer
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Security Affairs
P
Proofpoint News Feed
S
Secure Thoughts
腾讯CDC
Google DeepMind News
Google DeepMind News
量子位
罗磊的独立博客

博客园 - bluesky4485

Elasticsearch及java客户端jest使用 在windows环境下基于sublime text3的node.js开发环境搭建 CentOS6.4安装及配置oracle Ant学习 Springframework3.1源码编译 如何测试java支持的最大内存 win7x64下安装oraclex64版本后,plsql Developer无法登录的问题 VMWare安装redhat9后上网的的问题 Tomcat中部署后JspFactory报异常的解决方案 MyEclipse10 中增加svn插件 OPDS1.1 VMware下Redhat9鼠标选用usb后不能使用的解决办法 m2e插件安装 Java开发Maven环境配置和介绍 javadoc生成出现错误“编码 GBK 的不可映射字符” Google常用搜索技巧 设置Google不跳转到google.com.hk CodeSmith支持中文配置 jni和C++通信中文乱码的问题
Oracle连接池信息的修改
bluesky4485 · 2012-04-18 · via 博客园 - bluesky4485

最近项目中用到的Oracle数据库在服务器上是建了多个表空间供不同系统使用,两个系统同时在使用过程中,正在开发的一个项目在测试运行时,时不时就出现连接池满了,连接不上的问题,为此查了下怎么修改Oracle连接池配置的修改方式,特记录下来备查。

目前Oracle只支持一个连接池,pool name为“SYS_DEFAULT_CONNECTION_POOL”,管理连接池信息的也就一个包“DBMS_CONNECTION_POOL”。

先看看包的相关说明:

SQL> desc DBMS_CONNECTION_POOL
Element          Type      
---------------- --------- 
ALTER_PARAM      PROCEDURE 
CONFIGURE_POOL   PROCEDURE 
RESTORE_DEFAULTS PROCEDURE 
START_POOL       PROCEDURE 
STOP_POOL        PROCEDURE 

包里面有5个存储过程。默认Oracle是包含一个缺省的连接池SYS_DEFAULT_CONNECTION_POOL,但是并没有被打开,需要显示的开启连接池,第一步当然就是开启连接池:

exec DBMS_CONNECTION_POOL.START_POOL('SYS_DEFAULT_CONNECTION_POOL');

这个操作只需要做一次,下次数据库重启了之后连接池会自动开启的。

打开了连接池之后可以通过系统视图dba_cpool_info进行查询:

SQL> select connection_pool,status from dba_cpool_info;
 
CONNECTION_POOL                                                                  STATUS
-------------------------------------------------------------------------------- ----------------
SYS_DEFAULT_CONNECTION_POOL                                                      ACTIVE

当连接池启动了之后,可以通过DBMS_CONNECTION_POOL.CONFIGURE_POOL来查看连接池的相关配置项。

SQL> desc DBMS_CONNECTION_POOL.CONFIGURE_POOL
Parameter              Type           Mode Default? 
---------------------- -------------- ---- -------- 
POOL_NAME              VARCHAR2       IN   Y        
MINSIZE                BINARY_INTEGER IN   Y        
MAXSIZE                BINARY_INTEGER IN   Y        
INCRSIZE               BINARY_INTEGER IN   Y        
SESSION_CACHED_CURSORS BINARY_INTEGER IN   Y        
INACTIVITY_TIMEOUT     BINARY_INTEGER IN   Y        
MAX_THINK_TIME         BINARY_INTEGER IN   Y        
MAX_USE_SESSION        BINARY_INTEGER IN   Y        
MAX_LIFETIME_SESSION   BINARY_INTEGER IN   Y        
 

参数说明:

参数 说明
MINSIZE 在pool中最小数量的pooled servers,缺省为4
MAXSIZE 在pool中最大数量的pooled servers,缺省为40
INCRSIZE 这个参数是在一个客户端应用需要连接的时候,当pooled servers不可用的状态时候,每次pool增加pooled servers的数目。
SESSION_CACHED_CURSORS 缓存在每个pooled servers上的会话游标的数目,缺省为20
INACTIVITY_TIMEOUT pooled server处于idle状态的最大时间,单位秒,超过这个时间,the server将被停止。缺省为300.
MAX_THINK_TIME 在一个客户端从pool中获得一个pooled server之后,如果在MAX_THINK_TIME时间之内没有提交数据库调用的话,这个pooled server将被释放,客户端连接将被停止。缺省为30,单位秒
MAX_USE_SESSION pooled server能够在pool上taken和释放的次数,缺省为5000
MAX_LIFETIME_SESSION The time, in seconds, to live for a pooled server in the pool. The default value is 3600.
一个pooled server在pool中的生命值。

在pooled server数目不能低于MINSIZE
可以使用DBMS_CONNECTION_POOL.CONFIGURE_POOL或DBMS_CONNECTION_POOL.ALTER_PARAM对连接池的设置进行修改。

先来看看参数信息:

SQL>  desc DBMS_CONNECTION_POOL.ALTER_PARAM
Parameter   Type     Mode Default? 
----------- -------- ---- -------- 
POOL_NAME   VARCHAR2 IN   Y        
PARAM_NAME  VARCHAR2 IN            
PARAM_VALUE VARCHAR2 IN            
SQL> exec DBMS_CONNECTION_POOL.ALTER_PARAM ('','minsize','10');
 
PL/SQL procedure successfully completed
 
SQL> exec DBMS_CONNECTION_POOL.ALTER_PARAM ('','maxsize','100');
 
PL/SQL procedure successfully completed

由于只有一个连接池,第一个参数的值可以省略。

系统中有几个系统视图比较有用:
DBA_CPOOL_INFO          这个视图包含着连接池的状态
V$CPOOL_STATS             这个视图包含着连接池的统计信息
V$CPOOL_CC_STATS       这个视图包含着池的连接类型级别统计

修改成功了之后可以查询下连接池信息:

SQL> select CONNECTION_POOL, STATUS,MINSIZE,MAXSIZE from DBA_CPOOL_INFO;
 
CONNECTION_POOL                                                                  STATUS              MINSIZE    MAXSIZE
-------------------------------------------------------------------------------- ---------------- ---------- ----------
SYS_DEFAULT_CONNECTION_POOL                                                      ACTIVE                   10        100
到此,连接池的设置和相关修改已经完成。