- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle 事务的完整流程的分析
oracle 客户端与服务端的连接
要想登录数据库并在数据库中真正做事情,一定要先连接数据库,根据连接的原理不同,
分为专用服务器连接(dedicated server)和共享服务器连接(shared server)。TCP/IP 是
网络上连接Oracle 所用的主要网络协议
什么是专用服务器?
在登录oracle 时,Oracle 总会为我创建一个新的进程。这通常称为专用服务器配置,因
为这个服务器进程会在我的会话生存期中专门为我服务。对于每个会话,都会出现一个新的
专用服务器,会话与专用服务器之间存在一对一的映射。按照定义,这个专用服务器不是实
例的一部分。我的客户进程(也就是想要连接数据库的程序)会通过某种网络通道(如TCP/IP
socket )与这个专用服务器直接通信,并由这个服务器进程接收和执行我的SQL 。如果必要,
它会读取数据文件,并在数据库的缓存中查找我要的数据。也许它会完成我的更新语句,也
可能会运行我的PL/SQL 代码。这个服务器进程的主要目标就是对我提交的SQL 调用做出响应。
什么是共享服务器?
Oracle 还可以接受另一种方式的连接,这称为共享服务器(shared server ),正式的说
法是多线程服务器(Multi-ThreadedServer )或MTS。如果采用这种方式,就不会对每条用户
连接创建另外的线程或新的UNIX 进程。在共享服务器中,Oracle 使用一个“共享进程”池为
大量用户提供服务。共享服务器实际上就是一种连接池机制(例如程序的连接池)。利用共享
服务器,我们不必为10000 个数据库会话创建10000 个专用服务器(这样进程或线程就太多
了,难于管理),而只需建立很少的一部分进程/线程,顾名思义,这些进程/线程将由所有会
话共享。这样Oracle 就能让更多的用户与数据库建立连接,否则很难连接更多用户。如果让
我的机器管理10000 个进程,这个负载肯定会把它压垮,但是管理100 个或者1 000 个进程
还是可以的。采用共享服务器模式,共享进程通常与数据库一同启动,使用ps 命令可以看到
这个进程。
共享服务器连接和专用服务器连接之间有一个重大区别,与数据库连接的客户进程不会
与共享服务器直接通信,但专用服务器则不然,客户进程会与专用服务器直接通信。之所以
不能与共享服务器直接对话,原因就在于这个服务器进程是共享的。为了共享这些进程,还
需要另外一种机制,通过这种机制才能与共享服务器进程“对话”。为此,Oracle 使用了一个
或一组称为调度器(dispatcher,也称分派器)的进程。客户进程通过网络与一个调度器进程
通信。这个调度器进程将客户的请求放入SGA 中UGA 中的请求队列(这也是SGA 的用途之
一)。第一个空闲的共享服务器会得到这个请求,并进行处理(例如,请求可能是UPDATE T SET
X X+5 WHERE Y 2 )。完成这个命令后,共享服务器会把响应放在原调度器(即接收请求的
调度器)的响应队列中。调度器进程一直在监听这个队列,发现有结果后,就会把结果传给
客户。
一 . oracle 客户端与服务端的连接
首先一个用户进程发出一个连接请求,如果使用的是主机命名或者是本地服务命中的主
机名使用的是机器名 非IP 地址 ,那么这个请求都会通过DNS 服务器或HOST 文件的服务名
解析然后传送到ORACLE 监听进程,监听进程接收到用户请求后会采取两种方式来处理这个用
户请求。
C:/Documents and Settings/Administrator sqlplus sys/aibo@test as sysdba
SQL*Plus: Release .4.0 - Production on 星期一 8 月 16 10:51:15 2010
Copyright c 1982, 2007, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release .4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL
sys/aibo 是用户名密码,test 是TNS 服务名,TN
文档评论(0)