Oracle 連線池配置
介紹一下Oracle開發方便的知識,資料庫連線池,目前Oracle只支援一個連線池,名為SYS_DEFAULT_CONNECTION_POOL,管理連線池資訊是透過一個包DBMS_CONNECTION_POOL來管理的。
首先我們先看看包的相關說明:
SQL> desc dbms_connection_pool
PROCEDURE ALTER_PARAM
引數名稱 型別 輸入/輸出預設值?
------------------------------ ----------------------- ------ --------
POOL_NAME VARCHAR2 IN DEFAULT
PARAM_NAME VARCHAR2 IN
PARAM_VALUE VARCHAR2 IN
PROCEDURE CONFIGURE_POOL
引數名稱 型別 輸入/輸出預設值?
------------------------------ ----------------------- ------ --------
POOL_NAME VARCHAR2 IN DEFAULT
MINSIZE BINARY_INTEGER IN DEFAULT
MAXSIZE BINARY_INTEGER IN DEFAULT
INCRSIZE BINARY_INTEGER IN DEFAULT
SESSION_CACHED_CURSORS BINARY_INTEGER IN DEFAULT
INACTIVITY_TIMEOUT BINARY_INTEGER IN DEFAULT
MAX_THINK_TIME BINARY_INTEGER IN DEFAULT
MAX_USE_SESSION BINARY_INTEGER IN DEFAULT
MAX_LIFETIME_SESSION BINARY_INTEGER IN DEFAULT
PROCEDURE RESTORE_DEFAULTS
引數名稱 型別 輸入/輸出預設值?
------------------------------ ----------------------- ------ --------
POOL_NAME VARCHAR2 IN DEFAULT
PROCEDURE START_POOL
引數名稱 型別 輸入/輸出預設值?
------------------------------ ----------------------- ------ --------
POOL_NAME VARCHAR2 IN DEFAULT
PROCEDURE STOP_POOL
引數名稱 型別 輸入/輸出預設值?
------------------------------ ----------------------- ------ --------
POOL_NAME VARCHAR2 IN DEFAULT
包裡面有5個儲存過程。預設Oracle是包含一個預設的連線池SYS_DEFAULT_CONNECTION_POOL,但是並沒有被開啟,需要顯示的開啟連線池,第一步當然就是開啟連線池:
begin
dbms_connection_pool.start_pool('SYS_DEFAULT_CONNECTION_POOL');
end;
/
這個操作只需要做一次,下次資料庫重啟了之後連線池會自動開啟的。
開啟了連線池之後可以透過系統檢視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
引數名稱 型別 輸入/輸出預設值?
------------------------------ ----------------------- ------ --------
POOL_NAME VARCHAR2 IN DEFAULT
MINSIZE BINARY_INTEGER IN DEFAULT
MAXSIZE BINARY_INTEGER IN DEFAULT
INCRSIZE BINARY_INTEGER IN DEFAULT
SESSION_CACHED_CURSORS BINARY_INTEGER IN DEFAULT
INACTIVITY_TIMEOUT BINARY_INTEGER IN DEFAULT
MAX_THINK_TIME BINARY_INTEGER IN DEFAULT
MAX_USE_SESSION BINARY_INTEGER IN DEFAULT
MAX_LIFETIME_SESSION BINARY_INTEGER IN DEFAULT
引數說明:
引數 |
說明 |
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中的生命值。 |
可以使用DBMS_CONNECTION_POOL.CONFIGURE_POOL或DBMS_CONNECTION_POOL.ALTER_PARAM對連線池的設定進行修改。
SQL>begin
dbms_connection_pool.alter_param('SYS_DEFAULT_CONNECTION_POOL','minsize','20');
end;
/
SQL>begin
dbms_connection_pool.alter_param('SYS_DEFAULT_CONNECTION_POOL','maxsize','150');
end;
/
由於只有一個連線池,第一個引數的值可以省略。
系統中有幾個系統檢視比較有用:
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 20 150
到此,連線池的設定和相關修改已經完成.
2014.08.15 09:06
share you knowledge with the world.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12798004/viewspace-1251572/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- cx_Oracle.SessionPool 連線池OracleSession
- 【JDBC】java連線池模擬測試 連線oracleJDBCJavaOracle
- 【JDBC】使用OracleDataSource建立連線池用於連線OracleJDBCOracle
- 使用 Spring Boot 2.4配置Oracle的UCP資料庫連線池Spring BootOracle資料庫
- 安裝配置PGBouncer連線池
- 配置Oracle DBlink連線MySQL庫OracleMySql
- PL/Plus本地連線oracle配置Oracle
- mysql資料庫連線池配置教程MySql資料庫
- 連線池
- druid資料庫連線池的配置類UI資料庫
- ORACLE 配置連線遠端資料庫Oracle資料庫
- 用idea配置c3p0連線池Idea
- django連線池Django
- HTTP連線池HTTP
- 【JDBC】java連線池模擬測試連線Oracle資料庫指令碼參考JDBCJavaOracle資料庫指令碼
- 如何配置MTS以穿越防火牆連線oracle防火牆Oracle
- Http持久連線與HttpClient連線池HTTPclient
- 連線池和連線數詳解
- Spring系列之整合Druid連線池及監控配置SpringUI
- ElasticSearch連線池建立Elasticsearch
- 自定義連線池
- springboot新增多資料來源連線池並配置MybatisSpring BootMyBatis
- Spring Boot中增強對MongoDB的配置(連線池等)Spring BootMongoDB
- cx_Oracle 連線 OracleOracle
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- thinkphp連線OraclePHPOracle
- PHP 連線 OraclePHPOracle
- PHP 連線oraclePHPOracle
- Servlet連線OracleServletOracle
- go 語言連線池Go
- Golang SQL連線池梳理GolangSQL
- Tomcat 的 JDBC 連線池TomcatJDBC
- tomcat自帶連線池dbcp配置以及最佳化說明Tomcat
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- golang連線MySQL時候的連線池設定GolangMySql
- 線上問題總結-獲取不到連線池(logback 配置+程式碼問題)
- 基於C++11的資料庫連線池環境配置C++資料庫
- Druid連線池引數maxWait配置錯誤引發的問題UIAI
- Flask資料庫連線池Flask資料庫