目前Oracle只支持一個連接池,pool name為“SYS_DEFAULT_CONNECTION_POOL”,管理連接池信息的也就一個包“DBMS_CONNECTION_POOL”。
先看看包的相關說明:
SQL> desc DBMS_CONNECTION_POOLElement Type---------------- ---------ALTER_PARAM PROCEDURECONFIGURE_POOL PROCEDURERESTORE_DEFAULTS PROCEDURESTART_POOL PROCEDURESTOP_POOL PROCEDURE包里面有5個存儲過程。默認Oracle是包含一個缺省的連接池SYS_DEFAULT_CONNECTION_POOL,但是并沒有被打開,需要顯示的開啟連接池,第一步當然就是開啟連接池:
exec DBMS_CONNECTION_POOL.START_POOL('SYS_DEFAULT_CONNECTION_POOL');這個操作只需要做一次,下次數(shù)據(jù)庫重啟了之后連接池會自動開啟的。
打開了連接池之后可以通過系統(tǒng)視圖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_POOLParameter Type Mode Default?---------------------- -------------- ---- --------POOL_NAME VARCHAR2 IN YMINSIZE BINARY_INTEGER IN YMAXSIZE BINARY_INTEGER IN YINCRSIZE BINARY_INTEGER IN Ysession_CACHED_CURSORS BINARY_INTEGER IN YINACTIVITY_TIMEOUT BINARY_INTEGER IN YMAX_THINK_TIME BINARY_INTEGER IN YMAX_USE_SESSION BINARY_INTEGER IN YMAX_LIFETIME_SESSION BINARY_INTEGER IN Y參數(shù)說明:
參數(shù) | 說明 |
MINSIZE | 在pool中最小數(shù)量的pooled servers,缺省為4 |
MAXSIZE | 在pool中最大數(shù)量的pooled servers,缺省為40 |
INCRSIZE | 這個參數(shù)是在一個客戶端應用需要連接的時候,當pooled servers不可用的狀態(tài)時候,每次pool增加pooled servers的數(shù)目。 |
SESSION_CACHED_CURSORS | 緩存在每個pooled servers上的會話游標的數(shù)目,缺省為20 |
INACTIVITY_TIMEOUT | pooled server處于idle狀態(tài)的最大時間,單位秒,超過這個時間,the server將被停止。缺省為300. |
MAX_THINK_TIME | 在一個客戶端從pool中獲得一個pooled server之后,如果在MAX_THINK_TIME時間之內沒有提交數(shù)據(jù)庫調用的話,這個pooled server將被釋放,客戶端連接將被停止。缺省為30,單位秒 |
MAX_USE_SESSION | pooled server能夠在pool上taken和釋放的次數(shù),缺省為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數(shù)目不能低于MINSIZE可以使用DBMS_CONNECTION_POOL.CONFIGURE_POOL或DBMS_CONNECTION_POOL.ALTER_PARAM對連接池的設置進行修改。
先來看看參數(shù)信息:
SQL> desc DBMS_CONNECTION_POOL.ALTER_PARAMParameter Type Mode Default?----------- -------- ---- --------POOL_NAME VARCHAR2 IN YPARAM_NAME VARCHAR2 INPARAM_VALUE VARCHAR2 INSQL> exec DBMS_CONNECTION_POOL.ALTER_PARAM ('','minsize','10');PL/SQL procedure successfully completedSQL> exec DBMS_CONNECTION_POOL.ALTER_PARAM ('','maxsize','100');PL/SQL procedure successfully completed由于只有一個連接池,第一個參數(shù)的值可以省略。
系統(tǒng)中有幾個系統(tǒng)視圖比較有用:DBA_CPOOL_INFO 這個視圖包含著連接池的狀態(tài)V$CPOOL_STATS 這個視圖包含著連接池的統(tǒng)計信息V$CPOOL_CC_STATS 這個視圖包含著池的連接類型級別統(tǒng)計
修改成功了之后可以查詢下連接池信息:
SQL> select CONNECTION_POOL, STATUS,MINSIZE,MAXSIZE from DBA_CPOOL_INFO;CONNECTION_POOL STATUS MINSIZE MAXSIZE-------------------------------------------------------------------------------- ---------------- ---------- ----------SYS_DEFAULT_CONNECTION_POOL ACTIVE 10 100到此,連接池的設置和相關修改已經(jīng)完成。
新聞熱點
疑難解答
圖片精選