Oracle事务的完整流程的分析.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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/Administratorsqlplus sys/aibo@test as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on 星期一 8月 16 10:51:15 2010 Copyright (c 1982, 2007, Oracle. All Rights Reserved. 连接到 : Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL sys/aibo是用户名密码, test 是 TNS 服务名, TNS 代表透明网络底层 (Transparent Network Substrate , 这是 Oracle 客户端处理远程连接的 “基础” 软件, 有了它才有

文档评论(0)

676200 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档