原创

Oracle数据库进程

Oracle数据库进程主要包括用户进程、服务器进程和后台进程。
用户进程是需要与Oracle Server交互的程序,常见的用户进程如SQL/PLUS、PL/SQL。
Oracle创建服务器进程来处理连接到这个实例的用户进程请求。
后台进程用来维护物理存储和内存中的数据之间的关系。一个Oracle实例的后台进程主要包括:
(1)数据库写入进程(Database Writer Process,DBWn)
DBWn在以下几种情况下将数据写入磁盘:
* 发生检查点
* 达到脏缓冲区阈值
* 没有可用的缓冲区
* 超时
* 将表空间设置为脱机或只读
* 删除或截断表
* 备份表空间
(2)日志写入进程(Log Writer Process,LGWR)
LGWR在以下情况下将缓冲区的数据写入磁盘(联机日志文件redo log):
* 事务提交
* 1/3的redo日志缓冲区已满
* Redo日志缓冲区中的内容超过1MB
* 每3s
* 在DBWn写磁盘前
(3)检查点进程(Checkpoint Writer Process,CKPT)
CKPT主要负责:
* 使DBWn将SGA中所有被修改的数据库缓冲区的内容写入磁盘,无论事务是否被提交
* 用检查点信息更新数据文件头
* 用检查点信息更新控制文件
CKPT可以保证完成以下任务:
* 将经常被修改的数据块写入磁盘
* 简化实例恢复
(4)系统监视进程(System Monitor Process,SMON)
SMON负责检查和维护Oracle Database的一致性,主要完成以下工作:
* 实例恢复
* 重做已提交的事务
* 打开数据库
* 回滚未提交的事务
* 合并数据文件中相邻的自由空间
* 释放临时段的空间
(5)进程监视进程(Process Monitor Process,PMON)
当某个进程失效,需要清除相关的资源时,PMON负责以下工作:
* 回滚用户的当前事务
* 释放相关的锁
* 是否存在其他与之相关的资源
(6)归档进程(ARCn)
ARCn是一个可选的后台进程,当将数据库设置为ARCHIVELOG模式时,可以自动归档联机redo日志,能够保存所有对数据库修改的记录。

正文到此结束
该篇文章的评论功能已被站长关闭