派趣吧

Oracle11g新技术数据库如何常驻连接池呢?

综艺时间:1年前阅读:15

  对Oracle数据库而言,其连接资源指的是数据库服务器进程、会话以及相关的内存。要令数据库资源消耗最小化,并使终端用户能同时并发访问,应用程序通常能提供多种资源池解决方案。Oracle已经为包括OCI、OCCI、JDBC和ODP。NET等在内的所有数据访问驱动器提供了连接池解决方案。

  这些解决方案利用了一个应用程序进程中的多线程能够共享资源的能力。

然而,有很多中间层部署是面向进程的,也有很多线程之间的资源共享不够充分。这些部署可以归结为两大主要类群:

1、 单线程应用软件,如大多数的PHP应用软件。

2、 多线程应用软件,能够得益于跨进程甚至跨系统之间的共享,常负载大量的闲置连接,例如冗余进程。

当需要应付大量用户的请求时,这些应用软件往往能够保持数据库的永久连接,避免了同时完成多个任务时,连接的创建和终止的架空。中间层进程往往被设置成处理终端用户并发请求,终端用户并发请求比要后端数据库并发访问更高级。如果所有的中间层进程都与数据库进行雇用就连接,那么由于数据库资源的约束,中间层的可扩性就会受到限制。

Oracle共享服务器模式通过把Oracle服务器进程集中在能够被多连接共享的数据库端,在一定程度上解决了这个问题。但是会话资源是不能够共享的。当客户需要长期保持会话(例如长线交易),而事实上只有少量客户在某些时间点会进行数据库活动时,这个模式很有用。

   然而,在数据库活动需要会话,并且多请求的数据库活动并不依赖于会话状态的情况下,通过使用数据库驻留连接池,应用软件能达到更高的可扩性。

数据库常驻连接池

数据库驻留连接池是Oracle Database 11g的一个新特性,专门为了解决在需要支持大量连接的环境对可扩性的迫切需求而设计的。

  数据库驻留连接池把数据库服务器进程和对话汇合起来(这样的组合称之为池服务器),通过从单主机或不同主机发出的多个应用软件进程的连接进行共享。由一个连接代理(Connection Broker)进程控制着数据库后台进程中的池服务器。连接代理会持续的连接客户并对客户进行验证。

  当需要进行某种数据库活动时,客户将请求连接代理提供池服务器,使用完毕后再将它们释放以供其他客户重新使用。

当池服务器处在使用当中时,相当于一台专用服务器。对于来自常驻通道中的客户端连接请求,连接代理会为其选择一个合适的池服务器,并把客户端请求交给该池服务器处理,不再干涉。

  此后客户通过和该池服务器的直接对话来完成所有的数据库活动。当客户完成请求任务释放池服务器后,连接代理将重新接管该池服务器。

数据库常驻连接池的使用

数据层

激活和配置连接池:数据库驻留连接池附有一个简单易用的数据库管理应用程序接口(API)。

  每个11g的数据库内存结构和后台进程中都有一个默认连接池。DBA可以使用如下PLSQL包“DBMS_CONNECTION_POOL”来配置和管理连接池。

SQL>execute dbms connection pool。 configure pool(null, minsize=>10,

maxsize=>100,

inactivity timeout=>300,

max_think_time=>600, …);

上述脚本是一个可选项,在需要更改默认设置时使用。

必须在客户端发出连接请求前启动连接池。下面的命令可以调出连接代理,代理会通过数据库监听器进行自注册。

SQL> execute dbms_connection_pool。start_pool;

一旦通过这个方式激活,连接池将随着数据库后台进程的重启而自动重启,直到使用“dbms_connection_pool。

  stop_pool”命令关闭连接池。

上一篇:送机票?我是常驻意大利的?

下一篇:《创造营2019》选秀结束,R.1.S.E男团出道你怎么看?

派趣吧

我来回答