kcbzps oracle_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

CORE11.2.0.1.0Production

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_POOLSTATUSMINSIZEMAXSIZE INACTIVITY_TIMEOUT

------------------------------ ---------------- ---------- ---------- ------------------

SYS_DEFAULT_CONNECTION_POOLINACTIVE440300

连接池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_POOLSTATUSMINSIZE

------------------------------ ---------------- ----------

SYS_DEFAULT_CONNECTION_POOLACTIVE4

注意,此时没有连接,但是我们观察后台进程,发现新增加了连接池Server Process对象。

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

oracle580011 05:07 ?00:00:00 ora_n000_wilson

oracle581655840 05:07 pts/000:00:00 grep ora_n

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

oracle568910 05:03 ?00:00:00 ora_lgwr_wilson

oracle580210 05:07 ?00:00:00ora_l000_wilson

oracle580410 05:07 ?00:00:00 ora_l001_wilson

oracle580610 05:07 ?00:00:00 ora_l002_wilson

oracle580810 05:07 ?00:00:00 ora_l003_wilson

oracle581855840 05:07 pts/000: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

oracle596359310 05:14 pts/100: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

oracle580610 05:07 ?00:00:00 ora_l002_wilson

oracle597559310 05:15 pts/100: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

oracle580610 05:07 ?00:00:00 ora_l002_wilson

oracle598159310 05:15 pts/100: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

oracle580010 05:07 ?00:00:00 ora_n000_wilson

oracle600859310 05:18 pts/100:00:00 grep ora_n

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

oracle568910 05:03 ?00:00:00 ora_lgwr_wilson

oracle601059310 05:18 pts/100:00:00 grep ora_l

关闭连接池后,连接池中连接lxxx立即被销毁释放。Connection Broker进程暂时存在。但是,过一会之后,该进程消失。

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

oracle602759310 05:22 pts/100:00:00 grep ora_n

本篇中,我们一起进行了Oracle DRCP启动关闭,以及对应的后台Server Process情况。下篇中,我们一起来分析如何进行配置DRCP各种参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2019数据安装勾选_【安装部署】esweb服务器如何单独部署

推荐指数&#xff1a;☆☆☆☆☆背景&#xff1a;在勤哲Exce服务器软件的使用过程中&#xff0c;有的客户并发用户数多&#xff0c;可将esweb服务器单独部署。具体安装步骤&#xff1a;首先&#xff0c;在一台服务器上安装除填报网站外的应用程序。双击安装包运行。点击”接受“…

linux多点触控软件测试,测试工程师日常工作中高频Linux命令

最近&#xff0c;一直在整理Linux这块的命令 。出发点&#xff0c;是在浩瀚的Linux命令和每个命令众多的参数中&#xff0c;挑选出一些高频的场景和命令 。加速测试从业者学习效率 & 学习精准度 。花最少的时间&#xff0c;学到最适用的技能 。Linux命令整理这事&#xff…

html css 前端实现消息提醒数_自学的福音,web前端学习全套视频教程+最新学习思维导图都在这里...

1、产品经理。这些是负责策划应用程序的一群人。他们会想出很多新鲜的、奇怪的、甚至是不可能实现的应用。一般来说&#xff0c;产品经理都追求丰富的功能。2、UI设计师。这些人负责应用程序的视觉设计和交互模拟。3、项目经理。这些人负责实际地运行和维护应用程序。4、最终用…

5233杨光--Linux第一次实验

学习计时&#xff1a;共14小时 读书&#xff1a;2小时 代码&#xff1a;7小时 作业&#xff1a;2小时 博客&#xff1a;3小时 一、学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命…

求序列最长不下降子序列_最长不下降子序列nlogn算法详解

今天花了很长时间终于弄懂了这个算法……毕竟找一个好的讲解真的太难了&#xff0c;所以励志我要自己写一个好的讲解QAQ这篇文章是在懂了这个问题n^2解决方案的基础上学习。解决的问题&#xff1a;给定一个序列&#xff0c;求最长不下降子序列的长度(nlogn的算法没法求出具体的…

cmap参数 plt_plt.imshow的参数有哪些?

plt.imshow( X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, *, data=None, **kwargs, ) 参数:X图像数据。支持的…

安装Linux后windows在哪启动,在Linux下安装windows后解决Linux不能启动能问题

我的机器是Windows和Linux双系统&#xff0c;那天由于Windows用就了比较卡&#xff0c;就重装了一下Windows&#xff0c;结果导致重启后linux系统不知道到哪去了。懒得去重装Linux了&#xff0c;于是查找了一下资料&#xff0c;经过一番折腾&#xff0c;终于把我的Linux救回来了…

asp.net web开发步骤_WEB开发流程

1.需求确定2.分析与设计 (1)架构分析与设计 (2)业务逻辑分析 (3)业务逻辑设计 (4)界面设计3.开发环境搭建4.开发-测试-开发-测试5.文档编纂各个阶段过程都是有文档的,需求有需求的文档,设计有设计的文档,测试也有测试的文档.首先来看需求确定:需求…

Dart基础学习02--变量及内置类型

Dart基础学习02--变量及内置类型 Dart中的变量 首先看一个变量的定义和赋值 var name Bob; 在Dart中变量名都是引用&#xff0c;这里的name就是一个指向值为Bob的字符串的引用。 默认值 在Dart中没有初始化的变量都有一个默认值null&#xff0c;哪怕是int型的变量它的初始值也…

课题申报书范文_课题申报书(范文5篇)

《课题申报书》课题申报书(一)&#xff1a;一、课题研究论证报告1.课题提出的背景与所要解决的主要问题(1)课题提出的背景第一、新的教材、新的课程越来越注重了学生学习主动性、用心性的调动。它的最大特点就是不是仅注重知识研究的结果&#xff0c;而是更重视研究知识的过程&…

psv黑商店pkgj最新版下载_e收银app下载安装_e收银软件最新版免费下载

e-Cashier应用程序是一种高效的收银员服务客户端应用程序。 e-Cashier的移动版本支持多种刷卡方法&#xff0c;使商户可以自定义订单日期&#xff0c;从而使每天的收入一目了然&#xff0c;并且从多个角度分析商店的业务状况非常实用 。特征电子收银机是一种高效便捷的收银工具…

linux vi使用手册,史上最全VIM使用手册

vim是一个向上兼容于vi的文本编辑器&#xff0c;可用于编辑各种纯文本。它对编辑程序特别有用。基本模式&#xff1a;编辑模式&#xff1a;默认编辑文件进入的模式输入模式&#xff1a;末行模式&#xff1a;内置的命令行接口基本使用&#xff1a;# vim [options] [file ..]#&am…

shell判断false_Linux脚本shell常用判断式

在shell脚本编程中&#xff0c;判断式是经常被使用的。判断式的使用有两种方式&#xff0c;其中一种是使用test&#xff0c;另一种是使用 []。下面我们通过两个简单的例子来看一下这两种方式如何使用。例一# test –e /tmp/a.txt ; echo $?结果为0我们看到&#xff0c;上面的结…

微分方程的数值解法与程序实现 pdf_初中数学知识点|一元一次方程的概念及讲解(二)建议收藏!内含pdf版...

长按关注【初中数学解题大全】 获取更多&#xff01;电子课本|学习资料|学习方法|家教知识后台回复“数学”等学科名称即可获取初中数学电子课本后台回复“初一”等相应年级即可获取数学视频讲解及知识点大全后台回复“真题”即可获取2017-2019初中数学各市真题试卷大全后台回复…

Linux下rgmii接口与fpga相连,FPGA控制RGMII接口PHY芯片88E1512网络通信

一、前言网络通信中的PHY芯片接口种类有很多&#xff0c;之前接触过GMII接口的PHY芯片RTL8211EG。但GMII接口数量较多&#xff0c;本文使用RGMII接口的88E1512搭建网络通信系统。这类接口总线位宽小&#xff0c;可以降低电路成本&#xff0c;在实际项目中应用更广泛。二、从GMI…

面试题12:打印1到最大的n位数

题目描述 输入数字n&#xff0c;按顺序打印出1到最大的n位十进制数。比如输入3&#xff0c;则打印出1、2、3一直到最大的3位数即999。 题目分析 剑指Offer&#xff08;纪念版&#xff09;P94 代码实现 void Print1ToMaxOfNDigits_2(int n) {if(n < 0)return;char* number n…

tp3 普通模式url模式_[tp3.2.1]开启URL(重写模式),省略URL中的index.php

重写模式(省略url中的index.php)在apache配置文件httpd.conf中,查找1.mod_rewrite.so, 启动此模块2.AllowOverride , 值 All3. 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下Options FollowSymlinksRewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewrit…

esxi usb插口_酷暑大作战 | USB-C风扇新体验

“枯藤老树昏鸦&#xff0c;空调 Wi-Fi 西瓜”每到炎热的夏天&#xff0c;人类的梦想就变得朴实、无华而简单但当我们吹不到空调时&#xff0c;如何还能享受阵阵清凉&#xff1f;今天我们介绍的两款新型电扇或许可以提供新思路&#xff1a;edon 循环电扇GUZI 挂颈电扇越来越多人…

删除linux内核多余架构,删除多余Linux内核方法

我使用的是Linux Mint&#xff0c;更新频繁&#xff0c;旧版本的Linux内核只会浪费硬盘空间&#xff0c;因此我会定期删除多余的内核。查看已安装所有内核&#xff1a;sudo dpkg --get-selections |grep linux-image查看当前正在使用的内核&#xff1a;uname -r删除不需要的内核…

数据库连接

http://www.cnblogs.com/JamyWong/archive/2009/06/03/1495499.html 转载于:https://www.cnblogs.com/wqy61/p/4835265.html