Oracle的三种进程.docx
- 文档编号:23797848
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:7
- 大小:382.28KB
Oracle的三种进程.docx
《Oracle的三种进程.docx》由会员分享,可在线阅读,更多相关《Oracle的三种进程.docx(7页珍藏版)》请在冰豆网上搜索。
Oracle的三种进程
Oracle的三种进程
用户进程:
在用户请求连接Oracle服务器时启动
需要从数据库请求信息的数据库用户必须先建立与Oracle服务器的连接。
连接由SQL*Plus这类的数据库接口工具请求,并开始用户进程。
用户进程并不与Oracle服务器直接进行交互操作,而是通过用户程序接口(UPI)生成各种调用。
用户程序接口则可以创建会话并启动服务器进程。
服务器进程:
与Oracle服务器实例相连接,在用户建立会话时启动
用户建立连接后,服务器进程便会启动,以处理用户进程的请求。
服务器进程可以是专用服务器进程或共享服务器进程。
在专用服务器环境中,服务器进程只处理一个用户进程的请求。
用户进程断开连接后,服务器进程就会终止。
在共享服务器环境中,服务器进程将处理多个用户进程的请求。
服务器进程可以通过Oracle程序接口(OPI)与Oracle服务器进行通信。
后台进程:
在Oracle实例启动时启动
维护并加强物理结构和内存结构之间的关系
• 必备的后台进程:
(五个进程分别对应了Oracle的物理结构和内存结构)
–DBWn(数据文件)
-LGWR(重做日志文件)
-CKPT(控制文件)
-PMON(SGA)
-SMON(PGA)
•可选的后台进程:
–ARCnLMDnRECO
–CJQ0LMONSnnn
–DnnnPnnn
–LCKnQMNn
数据库写入程序(DBWn)-->n可以是0-n
服务器进程在数据库缓冲区高速缓存中记录对还原块和数据块所做的更改。
DBWn将数据库缓冲区高速缓存中的灰数据缓冲区写入数据文件。
这可确保数据库缓冲区高速缓存中有
足够数量的空闲缓冲区(即当服务器进程需要读取数据文件中的块时可以覆盖的缓冲区)可用。
由于服务器进程只在数据库缓冲区高速缓存中进行更改,因此提高了数据库的性能。
DBWn延迟写入数据文件,直到发生下列事件之一:
•增量或正常检查点
•灰数据缓冲区的数量达到阈值
•进程扫描指定数量的块而无法找到任何空闲缓冲区时
•出现超时
•实时应用集群(RealApplicationClusters,RAC)环境中出现ping请求
•使一般表空间或临时表空间处于脱机状态
•使表空间处于只读模式
•删除或截断表
•执行ALTERTABLESPACE表空间名BEGINBACKUP操作
DBWn写入数据文件的数据跟是否提交事务没关,有时没提交事务的数据也会被写入数据文件,假设发生rollback会按需把这些数据回滚掉,
这些数据就不再用得上,是垃圾数据了。
日志写入程序(LGWR)-->使用REDO
日志写入器(LGWR)
LGWR在下列情况下执行从重做日志缓冲区到重做日志文件的连续写入:
•当提交事务时
•当重做日志缓冲区的三分之一填满时
•当重做日志缓冲区中记录了超过1MB的更改时
•在DBWn将数据库缓冲区高速缓存中修改的块写入数据文件以前
•每隔三秒
因为恢复操作需要重做,所以LGWR只在重做写入磁盘后确认提交操作。
(如果重做写入失败,数据提交操作应该也会失败)
LGWR还可以调用DBWn来写入数据文件。
发出COMMIT 命令时执行下面的步骤
1. 服务器进程随同SCN 一起在重做日志缓冲区中放置一个提交记录。
2. LGWR 向重做日志文件中连续写入,直到提交记录(含提交记录)的所有重做日志缓冲区条目,这之后Oracle 服务器就能够保证即使存在例程失败也不会丢失更改。
3. 通知用户COMMIT 命令已完成。
4. 服务器进程记录信息以指出事务处理已完成,并且可以释放资源锁,将灰数据缓冲区刷新到数据文件由DBW0 独立执行,在提交之前或之后进行都可以。
(因此请牢记,DBWR的触发不依赖于Commit行为)
回滚段UNDO与REDO的关联
回滚段可以说是用来保持数据变化前映象而提供一致读和保障事务完整性的一段磁盘存储区域。
当一个事务开始的时候,会首先把变化前的数据和变化后的数据先写入日志缓冲区(REDO缓冲区),
然后把变化前的数据写入回滚段(UNDO块),
最后才在数据缓冲区中修改(日志缓冲区内容在满足一定的条件后可能被写入磁盘,但在事务提交的时候日志必须写入磁盘,而数据缓冲区中的数据依赖于检查点的发生和DBWR进程的活动)
检查点(CKPT)
每隔三秒,CKPT进程就会向控制文件存储数据,以标识重做日志文件中恢复操作的起始位置,该操作称作检查点。
检查点的用途是确保数据库缓冲区高速缓存中在时间点之间发生修改的所有缓冲区内容都已写入数据文件。
这个时间点(称作检查点位置)是例程失败时开始恢复数据库的位置。
DBWn应将数据库缓冲区高速缓存中在该时间点之前发生修改的所有缓冲区内容写入数据文件。
对于Oracle9i之前的版本,这项操作在重做日志的结尾处执行。
切换日志时,CKPT还将这个检查点的信息写入数据文件的头部。
启动检查点的原因如下:
•确保定期向磁盘写入内存中发生修改的数据块,以便在系统或数据库失败时不会丢失数据
•缩短例程恢复所需的时间。
只需处理最后一个检查点后面的重做日志条目以启动恢复操作
•确保提交的所有数据在关闭期间均已写入数据文件
由CKPT写入的检查点信息包括检查点位置、系统更改号、重做日志中恢复操作的起始位置以及有关日志的信息等等。
系统监控程序(SMON)-->主要是对于SGA的操作
如果Oracle例程失败,那么SGA中尚未写入磁盘的所有信息都会丢失。
例如,操作系统的失败导致例程失败。
例程丢失后,后台进程SMON在数据库重新打开时自动执行例程恢复。
恢复例程需要执行以下步骤:
1.前滚以恢复尚未记入数据文件但已经记入联机重做日志中的数据。
由于例程失败时SGA的丢失,所以尚未将这些数据写入磁盘。
在该进程中,SMON读取重做日志文件并将重做日志中记录的更改应用到数据块中。
由于提交的所有事务处理都已写入重做日志,因此该进程完全恢复了这些事务处理。
2.打开数据库以便用户可以登录。
未被未恢复事务处理锁定的任何数据都立即可用。
3.回退未提交的事务处理。
它们由SMON回退,或在访问锁定的数据时由单个服务器进程回退。
SMON也执行一些空间维护功能:
•它联合或合并数据文件中空闲空间的邻近区域。
•它回收临时段,将它们作为数据文件中的空闲空间返回。
过程监控程序(PMON)-->主要对于PGA的操作
进程失败后,后台进程PMON通过下面的方法进行清理:
•回退用户的当前事务处理
•释放当前保留的所有表锁或行锁
•释放用户当前保留的其它资源
•重新启动已失效的调度程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 进程