Oracle进程结构包括用户进程,服务进程,后台进程。
1. 用户进程
用户进程在数据库用户要求连接到Oracle服务器时开始启动。
用户进程是要求Oracle服务器交互的一种进程
它必须首先建立一个连接
不直接和Oracle服务器交互
2. 服务进程
服务进程连接Oracle实例,当用户建立一个会话时开始启动。
服务进程是直接和Oracle服务器交互的一段程序
他响应用户要求,向服务器发起呼叫并返回结果给用户。
可用专用服务器模式,也可用共享服务器模式创建会话。
3. 后台进程
后台进程在Oracle实例启动时可用。
必须的后台进程有:DBWn,LGWR,PMON,SMON,CKPT等
可选的后台进程有:ARCn,LMON,Snnn,QMNn,LMDn,CJQ0,Pnnn,Dnnn,LCKn等
3.1 DBWn
数据库写进程,负责将内存中变更的数据写入到磁盘。
DBWn写的条件:
检查点执行 脏块上限数到达 缓冲区没有*空间 超时
连接RAC要求 表空间脱机 表空间只读 清理和删除表 表空间开始备份
内存中的数据块是零散的,DBWR执行批量写出有利于性能提升。
3.2 LGWR
日志写进程LGWR管理SGA中的Redo Log Buffer,将其中的内容批量写出到在线重做日志中。LGWR进程通过日志写操作,延迟DBWn的写操作,从而实现协同与性能促进。
LGWR开始写的条件:
提交时 三分之一缓冲区满 当有1MB日志 每三秒 DBWn写之前
3.3 PMON
Oracle实例第一个启动的进程。用于监控其他用户进程,当出现用户进程失败时,执行进程恢复工作。还负责向TNS监听器注册实例。
3.4 CKPT
负责更新控制文件和数据文件头的检查点信息,还会通知DBWn进程去执行写操作。
3.5 ARCn
归档进程,当archivelog模式被设置时自动归档联机重做日志文件,保存所有数据库变化,是可选的后台进程。