设为首页 收藏本站
查看: 842|回复: 0

[经验分享] Oracle - 后台进程

[复制链接]

尚未签到

发表于 2018-9-25 09:56:10 | 显示全部楼层 |阅读模式
  From: http://blog.163.com/myy10146@126/blog/static/11355718620104109121965/
  

但是通过另外的工具,就可以看到包含在这里进程中  


  • 后台进程是Oracle的程序,用来管理数据库的读写,恢复和监视等工作。Server Process主要是通过他和user process进行联系和沟通,并由他和user process进行数据的交换。在Unix机器上,Oracle后台进程相对于操作系统进程,也就是说,一个Oracle后台进程将启动一个操作系统进程;在Windows机器上,Oracle后台进程相对于操作系统线程,打开任务管理器,我们只能看到一个ORACLE.EXE的进程,但是通过另外的工具,就可以看到包含在这里进程中的线程。
  • 在Unix上可以通过如下方法查看后台进程:
  • ps –ef | grep ora_
  • # ps -ef | grep ora_ | grep XCLUAT
  • oracle 29431 1 0 Sep 02 ? 2:02 ora_dbwr_SID
  • oracle 29444 1 0 Sep 02 ? 0:03 ora_ckpt_SID
  • oracle 29448 1 0 Sep 02 ? 2:42 ora_smon_SID
  • oracle 29442 1 0 Sep 02 ? 3:25 ora_lgwr_SID
  • oracle 29427 1 0 Sep 02 ? 0:01 ora_pmon_SID


  • a、Oracle系统有5 个基本进程他们是
  • DBWR(数据文件写入进程)
  • LGWR(日志文件写入进程)
  • SMON(系统监护进程)
  • PMON(用户进程监护进程)
  • CKPT(检查点进程,同步数据文件, 日志文件,控制文件)


  • b、DBWR
  • 将修改过的数据缓冲区的数据写入对应数据文件,维护系统内的空缓冲区。
  • 这里指出几个容易错误的概念:
  • --当一个更新提交后,DBWR把数据写到磁盘并返回给用户提交完成.
  • --DBWR会触发CKPT 后台进程
  • --DBWR不会触发LGWR 进程
  • 上面的概念都是错误的.
  • DBWR是一个很底层的工作进程,他批量的把缓冲区的数据写入磁盘。和任何前台用户的进程几乎没有什么关系,也不受他们的控制。至于DBWR会不会触发LGWR和CKPT进程,我们将在下面几节里讨论。
  • DBWR工作的主要条件如下:
  • --DBWR 超时
  • --系统中没有多的空缓冲区用来存放数据
  • --CKPT 进程触发DBWR 等


  • c、LGWR
  • 将重做日志缓冲区的数据写入重做日志文件,LGWR是一个必须和前台用户进程通信的进程。当数据被修改的时候,系统会产生一个重做日志并记录在重做日志缓冲区内。这个重做日志可以类似的认为是以下的一个结构:
  • SCN=000000001000
  • 数据块ID
  • 对象ID=0801
  • 数据行=02
  • 修改后的数据=0011
  • 提交的时候,LGWR必须将被修改的数据的重做日志缓冲区内数据写入日志数据文件,然后再通知前台进程提交成功,并由前台进程通知用户。从这点可以看出LGWR承担了维护系统数据完整性的任务。
  • LGWR 工作的主要条件如下:
  • --用户提交
  • --有1/3 重做日志缓冲区未被写入磁盘
  • --有大于1M 重做日志缓冲区未被写入磁盘
  • --超时
  • --DBWR需要写入的数据的SCN号大于LGWR 记录的SCN号,DBWR 触发LGWR写入


  • d、SMON
  • 工作主要包含:
  • --清除临时空间
  • --在系统启动时,完成系统实例恢复
  • --聚结空闲空间
  • --从不可用的文件中恢复事务的活动
  • --OPS中失败节点的实例恢复
  • --清除OBJ$表
  • --缩减回滚段
  • --使回滚段脱机


  • e、PMON
  • 主要用于清除失效的用户进程,释放用户进程所用的资源。如PMON将回滚未提交的工作,释放锁,释放分配给失败进程的SGA资源。


  • f、CKPT
  • 同步数据文件,日志文件和控制文件,由于DBWR/LGWR的工作原理,造成了数据文件,日志文件,控制文件的不一至,这就需要CKPT进程来同步。CKPT会更新数据文件/控制文件的头信息。
  • CKPT工作的主要条件如下:
  • --在日志切换的时候
  • --数据库用immediate ,transaction , normal 选项shutdown 数据库的时候
  • --根据初始话文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的设置的数值来确定
  • --用户触发


  • 以下进程的启动需要手工配置
  • g、ARCH
  • 当数据库以归档方式运行的时候,Oracle会启动ARCH进程,当重做日志文件被写满时,日志文件进行切换,旧的重做日志文件就被ARCH进程复制到一个/多个特定的目录/远程机器。这些被复制的重做日志文件被叫做归档日志文件。


  • h、RECO
  • 负责解决分布事物中的故障。Oracle可以连接远程的多个数据库,当由于网络问题,有些事物处于悬而未决的状态。RECO进程试图建立与远程服务器的通信,当故障消除后,RECO进程自动解决所有悬而未决的会话。


  • i、服务进程Server Process
  • 服务进程的分类
  • --专用服务进程(Dedicated Server Process)
  • 一个服务进程对应一个用户进程
  • --共享服务进程(MultiTreaded Server Process)
  • 一个服务进程对应多个用户进程,轮流为用户进程服务。
  • PGA & UGA
  • PGA = Process Global Area
  • UGA = User Global Area
  • 他保存了用户的变量、权限、堆栈、排序空间等用户信息,对于专用服务器进程,UGA在PGA中分配。对于多线程进程,UGA在Large pool中分配。


  • j、用户进程User Process
  • 在客户端,将用户的SQL 语句传递给服务进程
  

  的线程。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-601134-1-1.html 上篇帖子: oracle变量绑定 下篇帖子: Netezza 和Oracle Exadata PK
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表