Oracle 各后台进程功能说明

简介:
一、SMON:系统监督进程
1.主要是已经提交的数据但是还没有进行写入数据文件给断电了,重启的时候,smon 就会进行恢复
a.执行前滚,将已经写入重做日志文件但是还没有写入到数据文件中的数据(使用scn 号码来识别提交记录的)
b.打开数据库
c.回滚没有提交的事务
2.还可以进行磁盘空间维护工作
a.回收或者合并数据文件中相连的空闲区
b.释放临时段
二、PMON:进程监督进程
1.当某个进程崩溃,PMON 将负责进行如下的清理工作
a.回滚用户当前事务
b.释放用户所加的所有表一级和行一级的锁
c.释放用户所有的其他资源等
三、CKPT:校验(检查)点和检验点进程
1.提高系统效率和数据库一致性,引入了校验点的事件,CKPT 是在DBWR 将高速缓冲中的数据写入到数据文件上的时
候产生的,理论上说它是不需要的
可以通过redo log 和 scn 保证了完全恢复,引入它是为了提高效率,因为所有的校验点为止的变化都已经写入到数
据文件中了,在恢复的时候
校验点之前的重做日志就不在需要了,这样实例恢复就加快了,CKPT 会将校验点写入到所有相关的数据文件的文件头中,还要将校验点号码、重做日志序列号、归档日志名称和最低、最高scn 号都会写入控制文件中,由于ckpt 会产生大量的IO操作,因此不能频繁的产生校验点,最好在20 分钟以上
四、ARCn:归档日志进程
1.当一组重做日志文件写满后,会写另外一组,当最后一组写满后会在写第一组,叫做日志切换
2.如果没有开归档,那么覆盖后就无法进行恢复了
3.如果开了归档,那么就会使用arch 进程进行写入归档日志文件中,oracle 会确保在一组重做日志的归档操作完成
之前不会重新使用该组日志
五、DBWn:数据库写进程
1.11g 之前只可以有0~9,10 个进程,11g 之后可以有36 个,0~9 和a~z,通过 db_writer_processes 来设置个数
的,如果启动的时候没有说明个数
那么是由cpu 的个数来决定的该参数的
2.当以下情况发生时,DBWR 会将高速缓冲区中的数据写入到数据文件中
a.当脏缓冲区的数量超过了所设定的限额
b.所设定的时间间隔已到
c.有进程需要高速缓冲区,但是没有空闲的高速缓冲区空间时候
d.校验(检查点)发生时
e.某个表被删除或者截断(truncate,drop)
f.某个表空间被设置为只读
g.表空间进行联机备份时
h.表空间被设置为脱机时
六、LGWR:重做日志写进程
1.将重做日志缓冲区的记录顺序写入到重做日志文件中,这里注意它是顺序写入的,因此IO 相对要小
2. commit 语句怎样工作,这里使用了快速提交技术
a.服务器进程把提交的记录连同产生的scn 号码一起写入重做日志缓冲区中
b.LGWR 将重做日志缓冲区中的记录写入在重做日志文件中,这样就可以保证恢复了
c.oracle 通知用户(进程)提交已经完成
e.服务器进程将修改数据库高速缓冲区中相关数据的状态并释放资源和打开锁(这个时候可能这些数据并没有写入
到数据文件中,他们标记为脏数据,之后由DBWR 写入数据文件)
3.以下情况LGWR 会写入重做日志文件
a.事务提交
b.重做日志缓冲区中的记录超过了缓冲区容量的1/3
c.DBWR 将数据库高速缓冲区中的数据块写入到数据文件之前

d.每3 秒












本文转自xiaocao1314051CTO博客,原文链接:http://blog.51cto.com/xiaocao13140/1972058 ,如需转载请自行联系原作者



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
29天前
|
Unix Shell Linux
Linux 终端和进程的关系,以及在终端前后台切换进程
Linux 终端和进程的关系,以及在终端前后台切换进程
27 1
|
1月前
|
Linux Shell
Linux 进程的前台/后台切换
当你用shell启动一个程序时,往往他是在前台工作的。程序会一直占用终端命令行,例如你在前台解压的时候必须等着,期间干不了别的事(除非另开一个终端)。 例如经常用连接到远程服务器执行脚本的时候,如果本地网络中断后,这个时候前台进程就结束了,比较的懊恼,必须重新执行。
48 6
|
28天前
|
前端开发 Android开发 iOS开发
应用研发平台EMAS使用 aliyun-react-native-push 库接入推送和辅助通道,推送都可以收到,但是在App切到后台或者杀掉进程之后就收不到推送了,是需要配置什么吗?
【2月更文挑战第31天】应用研发平台EMAS使用 aliyun-react-native-push 库接入推送和辅助通道,推送都可以收到,但是在App切到后台或者杀掉进程之后就收不到推送了,是需要配置什么吗?
26 2
|
2月前
|
机器学习/深度学习 安全 API
如何在 Python 中启动后台进程?
如何在 Python 中启动后台进程?
66 1
|
3月前
|
存储 算法 Java
【JavaEE】“探索计算机世界:进程的基本概念与功能“
【JavaEE】“探索计算机世界:进程的基本概念与功能“
|
3月前
|
网络协议
多进程利用TCP进行信息群发功能
多进程利用TCP进行信息群发功能
15 0
|
3月前
|
算法 Linux 开发者
【Linux】后台进程
【Linux】后台进程
45 0
|
3月前
|
Shell 网络安全
在Shell中,后台进程管理
在Shell中,后台进程管理
32 4
|
7月前
|
SQL Oracle 关系型数据库
java实现oracle和mysql的group by分组功能|同时具备max()/min()/sum()/case when 函数等功能
java实现oracle和mysql的group by分组功能|同时具备max()/min()/sum()/case when 函数等功能
|
8月前
|
Oracle 关系型数据库 Linux
Oracle设置连接数进程数会话数
Oracle设置连接数进程数会话数
124 0

相关实验场景

更多