Oracle 自帶連線池DRCP 配置示例

2021-08-26 18:20:24 字數 2140 閱讀 4052

1、在資料庫端確認版本:

sql> select product,version from product_component_version where product like 『%database%』;

product version

oracle database 11g enterprise edition 11.2.0.4.0

2、檢視現有連線池情況,oracle 11g有乙個預設的連線池物件,通過 dba_cpool_info 可以看到連線池資訊:

sql> col connection_pool format a30

sql> select connection_pool,status,minsize,maxsize from dba_cpool_info;

connection_pool status minsize maxsize

sys_default_connection_pool inactive 4 40

sql>

預設連線池:sys_default_connection_pool,狀態是inactive。

3、使用dbms_connection_pool包,啟動連線池:

sql> exec dbms_connection_pool.start_pool();

pl/sql procedure successfully completed.

sql>

4、檢視連線池狀態:

sql> select connection_pool,status,minsize,maxsize from dba_cpool_info;

connection_pool status minsize maxsize

sys_default_connection_pool active 4 40

sql>

檢視程序情況:

[oracle@vm_0_4_centos ~]$ ps -ef|grep ora_n

oracle 14896 1 0 23:06 ? 00:00:00 ora_n000_xkdb

ora_n000_sid 就是connection broker程序,負責連線管理。

[oracle@vm_0_4_centos ~]$ ps -ef|grep ora_l

oracle 14898 1 0 23:06 ? 00:00:00 ora_l000_xkdb

oracle 14900 1 0 23:06 ? 00:00:00 ora_l001_xkdb

oracle 14902 1 0 23:06 ? 00:00:00 ora_l002_xkdb

oracle 14904 1 0 23:06 ? 00:00:00 ora_l003_xkdb

ora_l00x_sid 是連線池中的連線的server process,初始啟動個數由minsize引數決定

5、應用端tns配置:

xkdbdrcp =

(description =

(address_list =

(address = (protocol = tcp)(host = 192.168.0.1)(port = 1521))

) (connect_data =

(server = pooled) –將常見的server = dedicated修改為server = pooled,表明連線使用連線池;

(service_name = xkdb) ) )

而後通過user/passwd@tns即可使用連線池連線資料庫。

6、跟蹤會話的連線情況:

select pname, spid, username, program from vpr

oces

swhe

read

drin

(sel

ectp

addr

from

v pro

cess

wher

eadd

rin(

sele

ctpa

ddrf

romv

session where sid = :1);

檢視程序情況和使用連線池的程序名稱

一旦連線數超過了minsize,就會繼續建立新的連線池連線供使用。

如何用Oracle自帶的連線池 JDBC

以下只是 片斷,有需要的話自己調整一下 其他資料庫廠商提供的驅動也都會有類似的功能,思路也是一致的,可以參照驅動程式本身的api文件。import oracle.jdbc.pool.oracleconnectionpooldatasource ocpds new oracleconnectionpo...

Mybatis自帶連線池原始碼解析

poolmaximumactiveconnections 連線池最大活躍連線數,預設為10個。poolmaximumidleconnections 連線池最大空閒連線數,預設為5個。poolmaximumcheckouttime 最大可 時間,當活躍連線數達到上限時,如果此時有連線請求,則會檢查當前...

mysql連線池 順序 Mysql 連線池

通常,如果我們的服務涉及到mysql的操作,當乙個新的請求進來的時候,可以先連線mysql,使用完之後再斷開連線即可。但這樣做有個弊端,當請求量巨大時,會在瞬間有大量的資料庫連線與斷開操作,這是非常影響 mysql 效能的做法。此時,我們就需要使用mysql連線池。在 python 服務中使用 my...