dbwn:数据写
DBWn的"n"意味着一个实例是可以有多个数据库写入器的。作用简而言之,DBWn的作用就是将变脏了的缓冲区从数据库缓冲区缓存中写入到磁盘中的数据文件中去。会话的更新,插入,删除包括查询等都是先作用到缓冲区上,随后,DBWn会将其中的脏缓冲区转储到磁盘上去。
以下四种情况DBWn会执行写入
-
没有任何可用缓冲区(不得不写啊)
-
脏缓冲区过多
-
3秒超时(最晚3秒会执行一次写入)
-
遇到检查点,即checkPoint(检查点),检查点是个Oracle事件,遇到检查点,DBWn会执行写入。比如实例有序关闭的时候会有检查点,DBWn会将所有脏缓冲区写入到磁盘上去的,这很容易理解,要保持数据文件的一致性。
日志写入进程(LGWR)
日志写入进程(LGWR)就是把日志缓冲区内的内容写入到磁盘的重做日志文件中去,相比数据库写入器(DBWn),日志写入器就勤快多了。
以下五种情况LGWR会执行写入
-
log buffer里写满1M了。
-
每三秒将日志缓冲区输出。
-
当日志缓冲区的1/3已满时将日志缓冲区输出。
-
当用户进程提交一事务时写入一个提交记录。
-
当DBWR将修改缓冲区写入磁盘时则将日志缓冲区输出。
CKPT(Checkpoint Process)
检查点是一个维护数据库一致性的重要的后台进程
检查点是一个数据库事件,它将已修改的数据从脏缓存里刷新到磁盘,并更新控制文件和数据文件的一致性信息
手动设置检查点的语法
SMON(System Monitor)
它的主要职责有如下:
-
实例恢复
-
每3秒整理区碎片
-
清理临时段
PMON(Process Monitor)
进程监视进程,主要监视服务器进程。
当碰到了进程异常,将做如下处理
-
释放该进程的buffer cache资源
-
进程相关的锁资源
-
其他资源,比如进程号等信息,v$process可以看到的一些信息
-
检查调度器和服务器进程,来实现调度器分配请求队列和响应队列
-
PMON还有一个任务,它可以实现服务注册