第07章数据库实例与操作模式.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第07章数据库实例与操作模式

* Dnnn(调度进程) 功能:Dnnn进程是多线程服务器(Multithreaded Server,MTS)的组成部分,以后台进程的形式运行。 调度进程接受用户进程请求,将它们放入请求队列中,然后为请求队列中的用户请求分配一个服务器进程 最后,从响应队列返回数据给用户进程 * RECO(恢复进程) 功能 RECO进程负责在分布式数据库环境中自动解决分布式事务的故障。 一个节点的RECO自动解决所有的悬而未决的事务。 当一个数据库服务器的RECO后台进程试图建立同一远程服务器的通信,如果该远程服务器不可用或者网络连接不能建立时,RECO自动地在一个时间间隔之后再次连接。 当且仅当数据库配置为分布式事务处理,且初始化参数DISTRIBUTED_TRANSACTIONS的值大于0时,RECO进程才会自动启动。 * LCKn(锁进程) 功能 LCKn进程用于Oracle并行服务器环境中。在数据库中最多可以启动10个LCKn进程,主要用于实例间的封锁。 * SGA(System Global Area) 共享SQL区 共享池 数据库缓冲存储区 日志缓冲区 数据字典 Server Process User Process DBWR PMON CKPT LGWR SMON ARCH Datafiles Control Files Redo Log Files 归档 * 小结 数据库实例的概念 实例内存区的组成与功能 实例后台进程的分类与功能 数据库服务器操作模式 软件1201 ruanjian * 1302 * 计科1201 * * * 7.2.3 PGA区 功能:为每一个与Oracle数据库服务器进程保留的内存区。 非共享,只有服务进程本身才能访问它自己的PGA区 组成 排序区:存放排序操作所需要的临时数据,大小由初始化参数SORT_AREA_SIZE定义 会话区:用户会话的权限、角色、性能统计信息 游标区:执行游标操作时所产生的数据; 堆栈区:会话过程中产生的绑定变量、会话变量等信息。 * 数据库操作模式 数据库操作模式:数据库为用户进程提供服务的方式 专用服务器模式 多线程服务器模式 * 专用服务器模式 Oracle为每个用户会话启动一个专门的服务器进程,该服务器进程仅为该用户提供服务 服务器进程与用户会话是一对一的关系。 直到用户断开连接时,对应的服务器进程才终止。 各个专用服务器进程之间是完全独立的,它们之间没有数据共享。 * 专用服务器模式 用户进程 用户进程 服务器进程 服务器进程 客户端 服务器端 SGA 区 后台 进程 数据库 实例 * 用户进程向一个数据库实例发出连接请求。 Oracle监听程序首先验证用户名和口令 验证通过后,创建一个服务器进程专门为该用户进程提供服务。 用户提交一条SQL语句。 服务器进程首先判断在共享SQL工作区中是否存在类似的SQL语句。 如果不存在,将为这条SQL语句分配新的共享SQL工作区,然后解析(编译和优化)该语句,同时将该语句的私有数据和信息保存到服务器进程的PGA中。 专用服务器模式工作过程 * 解析完成后:服务器进程 在数据高速缓冲区中寻找SQL语句所要求的数据。 如果找不到,则从文件中将所需的数据读入高速缓冲 执行SQL语句。 如果SQL语句对数据进行更改,仅在数据高速缓冲区中对缓存块进行更改,并将更改所生成的重做记录保存在重做日志缓存中。 将来,由LGWR进程将重做记录写入重做日志文件,由DBWR进程将脏缓存块写入数据文件。 服务器进程将结果返回给用户进程。 * 多线程服务器模式 多线程服务器模式:共享服务器模式 在数据库中创建并启动一定数目的服务器进程 在调度进程的帮助下,这些服务器进程可以为任意数量的用户进程提供服务 一个服务器进程可以被多个用户进程共享 * 多线程服务器模式 * 在客户端创建的用户进程,连接数据库: Oracle监听程序首先验证用户名和口令 验证通过后,为该用户进程分配给一个调度进程。 用户进程直接与调度进程进行交互。 用户提交一条SQL语句 调度进程对SQL语句进行处理(格式化?),然后将处理结果及调度程序ID放入位于SGA区中的“请求队列”中 多线程服务器模式工作过程(一) * 当某个服务器进程空闲时,从“请求队列”中取出一条处理后的SQL语句,并对该语句进行解析和执行,得到它所请求的数据。 服务器进程将处理结果放入SGA区中的一个“响应队列”中。 调度程序定期检查“响应队列”,如果发现有自己请求的处理结果,则将结果取出。 调度程序根据处理结果中调度程序ID来判断该结果是否是自己的。 调度程序将处理结果返回给用户进程。 多线程服务器模式工作过程(二) * User process Stack space Session info

文档评论(0)

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

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

1亿VIP精品文档

相关文档