求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
数据库管理Oracle连接池信息的修改
 

作者:悠虎,发布于2012-7-19,来源:比特网

 

最近项目中用到的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. Thedefault 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  

到此,连接池的设置和相关修改已经完成。


相关文章 相关文档 相关视频



我们该如何设计数据库
数据库设计经验谈
数据库设计过程
数据库编程总结
数据库性能调优技巧
数据库性能调整
数据库性能优化讲座
数据库系统性能调优系列
高性能数据库设计与优化
高级数据库架构师
数据仓库和数据挖掘技术
Hadoop原理、部署与性能调优

 
分享到
 
 
     


MySQL索引背后的数据结构
MySQL性能调优与架构设计
SQL Server数据库备份与恢复
让数据库飞起来 10大DB2优化
oracle的临时表空间写满磁盘
数据库的跨平台设计
更多...   


并发、大容量、高性能数据库
高级数据库架构设计师
Hadoop原理与实践
Oracle 数据仓库
数据仓库和数据挖掘
Oracle数据库开发与管理


GE 区块链技术与实现培训
航天科工某子公司 Nodejs高级应用开发
中盛益华 卓越管理者必须具备的五项能力
某信息技术公司 Python培训
某博彩IT系统厂商 易用性测试与评估
中国邮储银行 测试成熟度模型集成(TMMI)
中物院 产品经理与产品管理
更多...