資料庫管理Oracle 串連池資訊的修改

來源:互聯網
上載者:User

       最近項目中用到的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

  

  到此,串連池的設定和相關修改已經完成。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.