- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
oracle教程03
课程安排 Oracle实例的进程结构 Oracle数据库对象 Oracle9i 实例的进程结构 Oracle实例(Instance) Oracle启动时,将分配系统全局区SGA并启动Oracle后台进程(Background Processes)。内存区域和后台进程合称为一个Oracle实例(Instance)。 SGA是由Oracle为一个实例分配的一组共享内存区域 后台进程异步地为所有的数据库用户执行不同的任务 参数文件决定了实例的特征及大小 不正确的参数文件,会导致实例启动失败 Oracle数据库的Instance决定了动态运行的数据库的ORACLE_SID Oracle数据库进程结构 Oracle可以在多进程和单进程配置下工作。 多进程配置 多个进程执行Oracle代码的不同部分 多进程允许多个用户同时使用 单进程配置 所有的Oracle代码由一个进程执行 单进程实例只允许单个用户使用 主要用于单任务的机器上 通常使用的Oracle都是多进程实例结构 用户进程与服务器进程 用户进程(User Process)在用户运行应用程序时自动产品产生 系统创建服务器进程(Server Process)处理用户进程的请求 Server进程和User进程通信并为所连接的User进程请求服务 Server进程工作过程: 分析、编译、执行用户的SQL语句 确定执行计划,形成分析树 从磁盘数据文件将数据读入SGA的共享数据库缓冲区 将SQL语句的结果返回给用户进程 相同的SQL代码只编译一次 存在SQL优化问题 DBWR进程 在存储数据之前,服务器进程必须将数据放入数据缓冲区快存中 修改后的数据块通过后台进程: 数据库写(Database Writer-DBWR)写回磁盘 为处理SQL语句,Server进程使用了SGA中的共享内存 DBWR 进程 DBWR管理Database Buffer Cache以便user进程总能找到空闲的缓冲区 将所有修改后的缓冲区数据写入数据文件 使用LRU算法来将最近使用过的块保留在内存中 通过延迟写来优化磁盘I/O读写 可以启动多个数据写入进程 参数DB_WRITER_PROCESSES决定DBWR启动的个数 进程名称分别为DBW0、DBW1、、、DBWj DBWR 进程 DBWR在下面情况将dirty缓冲区写入磁盘: dirty队列达到一定长度 某个进程在LRU队列中扫描指定数目的缓冲区仍没有找到空闲缓冲区 超时(Time_Out)发生 检验点(checkpoint)发生 LGWR进程 LGWR在下面情况将Redo Log缓冲区的信息写入Redo Log文件: 发生数据提交 Redo Log缓冲区池达到总数的三分之一时 超时(Time_Out)发生 DBWR需为检验点(checkpoint)清除缓冲区块时 LGWR 进程 每一个例程(instance)只有一个Redo Log写进程 直到事务已被写入redo log文件,提交确认才被执行 并发提交使每次提交的平均 I/O数小于1 归档进程(ARCH) 将Redo Log 文件写到磁盘或磁带机上用于介质失败时的数据库恢复 ARCH只有当日志文件组切换时才工作 ARCH是可选的,由参数LOG_ARCHIVE_START启动 ARCH可写到磁带或磁盘上 检验点 在检验点(checkpoint),DBWR将database buffer cache 中的所有的dirty 缓冲区写入磁盘,以保证上一个检验点以来修改过的所有数据块都被真正写到磁盘。 检验点产生条件: 在每个日志切换 上一个检验点之后,又经过了指定的时间 从上一个检验点之后,当预定义数量的Redo Log块被写入磁盘之后 例程关闭 DBA强制产生 当表空间置为offline时 检验点: 在检验点发生时和日志切换之后,LGWR将更新数据库头和控制文件 参数LOG_CHECKPOINT_TIMEOUT决定一个检验点发生的时间间隔 参数LOG_CHECKPOINT_INTERVAL决定执行一个检验点需要填充的Redo Log文件块的数目 CKPT进程 数据库检验点保证所有修改过的数据库缓冲区都被写入数据库文件。在给定的时间,数据库文件作上“当前”标记并将检验点记录在控制文件。 检验点: 例程恢复时只需提供从上一个检验点以来的修改。 在保证在该文件中的信息已被写入相应的数据文件后,允许重用一个Redo Log文件。检验点既不中断活动,也不影响当前事务。 检验点完成后更新数据库头和控制文件。 增加检验点次数可以减少例程失败时恢复所需的时间,但降低了数据库动态性能。 RECO与LCKN进程 调度进程Dnnn:MTS结构中对于用户进程的调度。 恢复进程R
文档评论(0)