Oracle 11g DRCP配置與使用(上)
Oracle 11g推出了駐留連線池(Database Resident Connection Pool)特性,提供了資料庫層面上的連線池管理機制,為應對高併發、短會話前端應用進行有益的嘗試。
DRCP的配置很簡單,本篇中讓我們一起來配置一個11g環境上的DRCP,分析其工作特性。
1、Database Level Configuration
配置DRCP是分為兩個步驟:database level configuration和application level configuration。首先在Database Server層面建立連線池物件。我們使用Oracle 11g進行試驗。
SQL> select * from v$version;
BANNER
---------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 – Production
在預設情況下,Oracle 11g中是有一個預設的連線池物件。在檢視dba_cpool_info中,可以看到連線池資訊。
SQL> select connection_pool, status, minsize, maxsize, INACTIVITY_TIMEOUT from dba_cpool_info;
CONNECTION_POOL STATUS MINSIZE MAXSIZE INACTIVITY_TIMEOUT
------------------------------ ---------------- ---------- ---------- ------------------
SYS_DEFAULT_CONNECTION_POOL INACTIVE 4 40 300
連線池sys_default_connection_pool就是預設連線池,狀態是inactive。使用dbms_connection_pool包,可以方便的對其進行管理。
SQL> exec dbms_connection_pool.start_pool();
PL/SQL procedure successfully completed
使用start_pool方法,可以對預設池進行開啟。注意:該方法還有引數pool_name,如果指定了名稱,就可以建立出一個自定義的連線池,也可以同時管理多個連線池情況。如果不指定名稱,就針對預設連線池進行管理。
Start_pool之後,dba_cpool_info檢視中可以看到連線池狀態。
SQL> select connection_pool, status from dba_cpool_info;
CONNECTION_POOL STATUS MINSIZE
------------------------------ ---------------- ----------
SYS_DEFAULT_CONNECTION_POOL ACTIVE 4
注意,此時沒有連線,但是我們觀察後臺程式,發現新增加了連線池Server Process物件。
[oracle@oracle11g ~]$ ps -ef | grep ora_n
oracle 5800 1 1 05:07 ? 00:00:00 ora_n000_wilson
oracle 5816 5584 0 05:07 pts/0 00:00:00 grep ora_n
[oracle@oracle11g ~]$ ps -ef | grep ora_l
oracle 5689 1 0 05:03 ? 00:00:00 ora_lgwr_wilson
oracle 5802 1 0 05:07 ? 00:00:00 ora_l000_wilson
oracle 5804 1 0 05:07 ? 00:00:00 ora_l001_wilson
oracle 5806 1 0 05:07 ? 00:00:00 ora_l002_wilson
oracle 5808 1 0 05:07 ? 00:00:00 ora_l003_wilson
oracle 5818 5584 0 05:07 pts/0 00:00:00 grep ora_l
其中ora_n000程式是對應的Connection Broker物件,負責連線管理。Ora_lxxx程式就是連線池中的連線物件。當沒有連線的時候,連線池維持minsize大小,與配置minsize=4相匹配。
下面進行application level configuration。
2、Application Level Configuration
在應用層面,可以從連線字串或者本地服務名上進行配置。本篇主要從本地服務名上進行配置。
在tnsnames.ora中,我們可以進行本地命名配置。為了保證正確性,筆者傾向使用Oracle提供的netca工具來進行基礎配置。
--開啟X Windows Passive模式
[oracle@oracle11g ~]$ export DISPLAY=192.168.0.1:0.0
[oracle@oracle11g ~]$ netca
Oracle Net Services Configuration:
Default local naming configuration complete.
Created net service name: wilsondrcp
Oracle Net Services configuration successful. The exit code is 0
之後,修改tnsname.ora檔案的相關內容。
WILSONDRCP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.88)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = POOLED) --新增加到其中,表明連線使用連線池;
(SERVICE_NAME = wilson)
)
)
可以使用tnsping方法進行驗證。
[oracle@oracle11g ~]$ tnsping wilsondrcp
TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 01-MAR-2012 05:10:46
Copyright (c) 1997, 2009, Oracle. All rights reserved.
Used parameter files:
/u01/oracle/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.88)(PORT = 1521))) (CONNECT_DATA = (SERVER = POOLED) (SERVICE_NAME = wilson)))
OK (0 msec)
配置了wilsondrcp名稱之後,就可以使用sqlplus等工具進行連線。
[oracle@oracle11g ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Thu Mar 1 05:11:47 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn scott/tiger@wilsondrcp
Connected.
SQL> select sid from v$mystat where rownum<2;
SID
----------
146
此時,會話(sid=146)已經連線。此時,我們可以檢視後臺程式情況。
--標記LOCAL的本地連線程式不存在;
[oracle@oracle11g ~]$ ps -ef | grep LOCAL
oracle 5963 5931 0 05:14 pts/1 00:00:00 grep LOCAL
那麼,我們連線的會話程式究竟是哪一個呢?
SQL> select paddr from v$session where sid=146;
PADDR
--------
38BCD994
SQL> select pid, spid from v$process where addr='38BCD994';
PID SPID
---------- ------------------------
31 5806 –OS Level的程式編號;
[oracle@oracle11g ~]$ ps -ef | grep 5806
oracle 5806 1 0 05:07 ? 00:00:00 ora_l002_wilson
oracle 5975 5931 0 05:15 pts/1 00:00:00 grep 5806
對應的ora_l002_wilson程式就是我們剛剛看到的連線池程式。說明:我們使用sqlplus連線使用的連線池物件是透過DRCP。
在sqlplus退出之後,l002程式依然存在,只是被釋放回連線池。
SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@oracle11g ~]$ ps -ef | grep 5806
oracle 5806 1 0 05:07 ? 00:00:00 ora_l002_wilson
oracle 5981 5931 0 05:15 pts/1 00:00:00 grep 5806
[oracle@oracle11g ~]$
3、連線池關閉
DRCP連線池是可以關閉的,同樣使用dbms_connection_pool的stop_pool方法。
--關閉connection pool
SQL> exec dbms_connection_pool.stop_pool;
PL/SQL procedure successfully completed
[oracle@oracle11g ~]$ ps -ef | grep ora_n
oracle 5800 1 0 05:07 ? 00:00:00 ora_n000_wilson
oracle 6008 5931 0 05:18 pts/1 00:00:00 grep ora_n
[oracle@oracle11g ~]$ ps -ef | grep ora_l
oracle 5689 1 0 05:03 ? 00:00:00 ora_lgwr_wilson
oracle 6010 5931 0 05:18 pts/1 00:00:00 grep ora_l
關閉連線池後,連線池中連線lxxx立即被銷燬釋放。Connection Broker程式暫時存在。但是,過一會之後,該程式消失。
[oracle@oracle11g ~]$ ps -ef | grep ora_n
oracle 6027 5931 0 05:22 pts/1 00:00:00 grep ora_n
本篇中,我們一起進行了Oracle DRCP啟動關閉,以及對應的後臺Server Process情況。下篇中,我們一起來分析如何進行配置DRCP各種引數。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2055062/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 11g DRCP配置與使用(下)Oracle
- Oracle 11g DRCP連線跟蹤配置Oracle
- Oracle 11g 新特性之DRCPOracle
- Oracle 11g DRCP連線方式——基本原理Oracle
- 【配置上線】Oracle靜默建庫 for 11gOracle
- Oracle 11g RAC One node 安裝與配置Oracle
- oracle 11G dataguard配置Oracle
- Oracle 11g Data Guard 物理備庫快速配置指南(上)Oracle
- 【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 單向同步配置 上OracleGo
- [20130730]11G的DRCP特性.txt
- [zt] Oracle 11g DataGuard 配置Oracle
- DRCP總結
- [20170824]11G備庫啟用DRCP連線.txt
- oracle 11g Oracle Database Vault 的配置方法OracleDatabase
- 【Services】Oracle 11g RAC使用Manual和Policy Managed方法配置和使用ServicesOracle
- oracle 11g streams 配置詳解Oracle
- ORACLE 11g dataguard配置練習Oracle
- SQL Query Result Cache的使用和配置--Oracle 11G新特性SQLOracle
- ORACLE 11g RAC EM手動配置Oracle
- oracle 11g tns和監聽配置Oracle
- [20170825]11G備庫啟用DRCP連線3.txt
- Solaris 10上安裝Oracle 11gOracle
- Oracle 11g Advanced Compression(上)Oracle
- oracle 11g adrci使用Oracle
- Oracle 11g新引數USE_LARGE_PAGES與AMM使用Oracle
- oracle 11g dg broker開啟和配置Oracle
- Oracle 11g dataguard 配置簡約步驟Oracle
- Oracle 11G RAC ntp時間同步配置Oracle
- Oracle 11g RAC 配置單例項 DataGuardOracle單例
- oracle goldengate 10g--->11g配置OracleGo
- 聊聊Oracle 11g中的Reference Partition(上)Oracle
- AIX上配置、使用VNCAIVNC
- AIX 上配置、使用NFSAINFS
- 在oracle linux 5.6上安裝oracle 11g RACOracleLinux
- oracle ovm配置使用Oracle
- 11G DRCP(Database Resident Connection Pooling)的一些問題DatabaseIDE
- Oracle 11g ADRCI工具使用Oracle
- Oracle Stream概述與配置Oracle