oracle模式的概念及进程的 概念

上传人:ji****72 文档编号:37521097 上传时间:2018-04-17 格式:DOC 页数:10 大小:112.50KB
返回 下载 相关 举报
oracle模式的概念及进程的 概念_第1页
第1页 / 共10页
oracle模式的概念及进程的 概念_第2页
第2页 / 共10页
oracle模式的概念及进程的 概念_第3页
第3页 / 共10页
oracle模式的概念及进程的 概念_第4页
第4页 / 共10页
oracle模式的概念及进程的 概念_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《oracle模式的概念及进程的 概念》由会员分享,可在线阅读,更多相关《oracle模式的概念及进程的 概念(10页珍藏版)》请在金锄头文库上搜索。

1、1 模式的概念: 模式是一系列逻辑数据结构或对象的集合。一个模式只能够被一个数据用户所拥有, 并且模式的名称与这个用户的名称相同。 从数据库理论的角度看,模式是数据库中存储的数据的一个逻辑表示或描述,是一系 列数据结构和数据对象的集合(既可以是全局逻辑描述也可是局部逻辑描述) 。调度进程:调度进程:DDNDDN 它是位于用户进程和共享进程之间的关键进程,负责将请求队列中的用户进 程分配给空闲的服务进程处理,并将处理后的结果返回给用户进程。 在一个实例中可以同时运行同时多个调度进程,但是至少要为 Oracle 数据库 所用的每种网络协议建立一个调度进程。 在共享服务器操作模式下,由监听程序来接受

2、用户端传来的用户进程请求, 然后将用户进程请求交给合适的调度进程处理。如果监听程序无法找到一个 合适的调度进程,它将启动一个服务进程来为用户进程提供服务。这个专用 服务进程并不属于实例,而是 oracle 网络结构中的一个进程。 服务进程服务进程: 在共享服务器操作模式下,每个服务进程能够为任何一个用户进程提供服务, 而不是固定地为一个用户进程提供服务。 共享服务器进程的 PGA 区并不包括任何与用户相关的数据,因为这些数据所 有的服务进程都将使用到。 在共享服务进程的 PGA 区中,只包含与共享服务进程本身相关的私有 SQL 工 作区部分,其他与会话相关的私有 sql 工作区部分都保存在 S

3、GA 区中,这样 所有的服务进程都可以访问任何一个会话的信息。 .共享服务器操作模式下处理用户进程的过程:共享服务器操作模式下处理用户进程的过程: 1。用户通过使用 Oracle 工具或执行应用程序在客户端创建一个用户进程, 该用户进程将尝试连接到一个数据库实例。 2。客户端计算机通过网络与数据库服务器建立连接。位于数据库中的 Oracle 监听程序探测到用户进程请求后,首先验证用户进程提供的用户和口令,验 证通过后将该用户进程分配给一个调度进程。 3。当某个共享服务进程空闲时,它从请求队列中取出一条处理后的 SQL 语句。4。共享服务器进程对这条 SQL 语句进行解析和执行,最后得到它所请求

4、的数 据。 5。共享服务进程对这条 SQL 语句进行解析和执行,最后得到它所请求的数据。6。调度程序定期地检查返回队列,如果他发现在返回队列中有自己送出请求 的处理结果,则将结果取出。 7。调度程序将处理结果返回给用户进程。 创建实例时启动的共享服务进程数量由初始化参数 SHARED_SERVERS。在实例 运行过程中,Oracle 会根据请求队列长度自动调整共享服务器的数量。实例 中能创建的共享服务进程数量不能超出由初始化参数 MAX_SHARED_SERVERS 指 定的值。 共享服务器操作模式: 1。共享服务器操作模式的概念:实质是由少数服务进程为大量用户进程提供服务,使这些进程始终处于

5、繁忙 状态,这就是 Oracle 数据库的共享服务器操作模式。 2。共享服务器操作模式的结构: 在创建实例时,每个调度进程将自己的监听地址告诉 Oracle 监听程序,监听 程序将根据监听地址把用户进程的请求传递给相应的调度进程。一个 Oracle 实例至少要为它所支持的每一个网络协议启动一个调度进程。 当用户进程请求连接时,监听程序首先检查该用户进程是否能够使用共享服 务进程。如果可以,监听程序将这个用户进程的请求传递给当前负荷最轻的 调度进程。 共享服务器操作模式:共享服务器操作模式: 1。共享服务器操作模式的概念: 实质是由少数服务进程为大量用户进程提供服务,使这些进程始终处于繁忙 状态

6、,这就是 Oracle 数据库的共享服务器操作模式。 数据库操作模式 数据库为用户进程提供服务的方式叫做数据库操作模式。 一、专用服务器操作模式: 1。专用服务器操作模式的概念: 在专用服务器操作模式中,Oracle 为每一个连接到实例的用户进程启动一个 专门的服务进程。一个专用服务器进程仅为一个用户进程提供服务。 各个专用服务进程之间是完全独立的,它们不需要共享数据。在用户进程连 接到实例的整个过程中,专用服务器进程一直存在,直到用户进程断开连接 它才被终止。 2。专用服务器操作模式下处理用户进程: 1。用户通过使用 Oracle 工具或执行应用程序在客户端创建一个用户进程, 该用户进程将尝

7、试连接到一个数据库实例。 2。客户端计算机通过网络与数据库服务器建立连接,位于数据库服务器中的 Oracle 监听程序探测到用户进程请求后,首先验证用户进程提供的用户名和 口令,通过后建立一个专用服务器进程为该用户进程提供服务。 3。用户提交一条 SQL 语句。 4。专用服务器进程首先判断在共享 SQL 工作区中是否存在类似的 SQL 语句。 若不存在,它将为这条 SQL 语句分配新的共享 SQL 工作区。 5。解析完成后,服务进程开始在数据库缓存中寻找这条 SQL 语句对应的数据。6。开始执行 SQL 语句。 7。将结构返回给用户。 DnnnDnnn 调的程序进程:调的程序进程: 它实际上时

8、多线程服务器的组成部分,它以后台进程的形式运行。 它接受用户进程的请求,将它们放入到请求队列中,然后为请求队列中的用 户进程分配一个服务进程。 ARCnARCn 归档进程归档进程: 当数据库运行在归档模式下时,归档进程 ARCn 负责在日志切换后将已经写满 的重做日志文件复制到归档目标中,以防止写满的重做日志文件被覆盖。只有数据库运行在归档模式下,ARCn 才启动。要启动它,初始化参数 ARCHIVE_LOG_START 必须设置为 TRUE。 RECORECO 恢复进程:恢复进程: 负责在分布式数据库环境中自动恢复那些失败的分布事务。 如果在分布式事务处理下(初始化参数 DISTRIBUTE

9、D_TRANSACTIONS 的值设置 为大于 0,RECO 进程会自动启动)。 当某个分布式事务由于网络连接故障或者其他原因而失败时,RECO 进程将尝 试与该事务相关的所有数据库进行联系,以完成对失败事务的处理工作。负 责在分布式数据库环境中自动恢复那些失败的分布事务。 如果在分布式事务处理下(初始化参数 DISTRIBUTED_TRANSACTIONS 的值设置 为大于 0,RECO 进程会自动启动)。 当某个分布式事务由于网络连接故障或者其他原因而失败时,RECO 进程将尝 试与该事务相关的所有数据库进行联系,以完成对失败事务的处理工作。 PMON 进程监视进程: 负责对失败的用户进程

10、或服务进程进行恢复,并释放进程所占用的资源。 用户可能关闭客户端程序,但是却没有从数据库中退出,或者由于网络的突 然中断而造成一个数据库连接的异常终止。这时,Oracle 将 PMON 进程来启动 清除中断或失败的用户进程,包括清除非正常中断的用户进程留下的孤儿会 话,回退未提交的事务,释放会话所占用的锁、SGA 区、PGA 区等资源。 此外,它还会定期的检查调度程序和服务程序进程的状态。 SMION 相似,PMON 也会定期的被唤醒。 SMON 系统监视进程: 系统监视进程是在实例启动时负责对数据库进行恢复操作。如果上一次数据 库是非正常关闭的,当下一次启动实例时,它会自动读取重做日志文件,

11、对 数据库进行恢复。此外,它还有两个任务: *在临时段或临时表空间中回收不再使用的存储空间。 *将各个表空间中的空闲空间碎片合并在一起。 在实例运行期间,它也可以定期地被唤醒。 检查点的相关初始化参数检查点的相关初始化参数3。检查点的相关初始化参数: *LOG_CHECKPOINT_TIMEOUT 这个参数用于指定检查点执行的最大间隔时间。 *LOG_CHECKPOINT_INTERVAL 这个参数用于指定在出现检查点之前必须写入重 做日志文件中的操作系统块的数量。 *LOG_CHECKPOINT_TO_ALERT 用于设置是否将检查点信息记录到警告日志中。 CKPTCKPT 检查点进程检查点

12、进程CKPT 检查点进程 1。检查点的概念: “检查点”是一个事件。当该事件发生时,数据库缓存中的脏缓存块被写入数据文件,同时 Oracle 将对数据库控制文件和数据文件进行更新,以记录下 当前的数据库结构和状态。 在执行了一个检查点后,Oracle 知道自己所有以提交事务对数据库所做的更 改已经全部被写入到硬盘中了,此时数据库处于一个完整状态。在发生数据 库崩溃后,只要将数据库恢复到上一个检查点执行时刻即可。 2。CKPT 进程的工作。 *执行检查点和更新控制文家和数据文件 *将脏缓存块写入数据文件的任务交给 DBWR 进程完成。快速提交和组提交快速提交和组提交2。快速提交: 当用户提交一条

13、 COMMIT 语句时,LGWR 进程会立即将一条提交记录写入到重做 日志文件中,然后再开始写入与该事务相关的重做信息。这时事务产生的脏 缓存块并不会立即被 DBWR 进程写入数据文件,这称为“快速提交”机制。 事务提交成功后,Oracle 将为该事务生成一个系统变更码(SCN)。事务的 scn 将同时记录在它的提交记录和重做记录中。 它还有个任务:实例没有启动 CKPT 进程,则由 LGWR 进程来完成检查点执行 任务。 3。组提交: 数据库中同时存在许多事务,LGWR 进程在写入重做日志文件时可以采取“组 提交”的方式。 一个用户提交事务时,LGWR 进程开始将该进程的重做记录写入硬盘。如

14、果在 写入的过程中有其他多个用户也执行 COMMIT 语句提交事务,这时 LGWR 进程 不能立即将这些事务的重做记录写入硬盘,而必须等待当前的写操作完成。 当第一个事务的重做记录都被写入到硬盘中后,LGWR 进程将被重做日志缓存 中的数据一次性全部写入重做日志文件。 LGWRLGWR 日志写文件日志写文件LGWR 日志写文件: 日志写文件负责将重做日志缓存中的重做记录写入到联机重做日志文件。前 面已经提到,重做日志缓存是一个循环结构,在 LGWR 进程将缓存中的数据写 入重做日志文件的同时,Oracle 还能够继续向缓存中写入新的数据。 1。将缓存数据写入重做日志文件的情况: *用户通过 C

15、OMMIT 语句提交当前事务。 *重做日志缓存被写满 1/3 时。 *DBWR 进程开始将脏数据块写入数据文件。*每隔 3 秒,即发生一次超时,此时会启 LGWR。与与 DBWRDBWR 进程相关的初始化参数进程相关的初始化参数2。与 DBWR 进程相关的初始化参数: *DB_WRITER_PRICESSES 这个参数用于设置创建实例时启动的 DBWR 后台进程的 数量。 *DB_BLOCK_CHECKPOINT_BATCH 这个参数用于设置每个检查点发生时,DBWR 进 程写入的脏缓存块的最大数目。 *DB_BLOCK_RLU_LATCHES 这个参数用于设置数据库缓存区中 LRU 的数量。

16、在多 处理器系统中,它通常设为处理器数目的一半。 BDWRBDWR(数据库写进程)(数据库写进程)BDWRBDWR(数据库写进程):(数据库写进程): 数据库写进程 DBWR 负责将数据库缓存中的脏数据缓存块成批写入到数据文件 中。默认情况下,Oracle 只在创建实例时启动一个 DBWR 进程(称为 DBWR)。 如果数据库中的数据更改操作十分频繁,DBA 可以启动等多的 DBWR 进程以提 高写入能力。Oracle 最多允许启动 9 个额外的 DBWR 进程,但是进程数目不应 超过系统 CPU 的数目,因为每个处理器同时只能运行一个 DBWR 进程。 在数据库缓存区中,如果某个缓存块的数据被修改,它将被标记为脏。但是 缓存块并不是一旦产生就立即被 DBWR 进程写入数据库文件。 另外,DBWR 进程也不是将所有的脏缓存块写入数据文件。因为脏缓存块一旦 被写入数据文件,它将被标记为空闲缓存块,其中保存的数据将丢失。 通过 LRU 算法能够解决这个问题。最近未被访问过的缓存块被标记为“冷缓 存块”,DBWR 进程只将那些同时被标记为“脏”和“冷”的缓存块写入数据 文件,这样,那些经常

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号