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

[经验分享] Oracle体系结构理解(3)

[复制链接]

尚未签到

发表于 2018-9-8 13:47:30 | 显示全部楼层 |阅读模式
  服务器进程与后台进程
  服务器进程与后台进程也是两个不同的概念,服务器进程也叫做前台进程,在oracle服务器中负责与Client端的连接。每当clinet端产生一个用户进程来连接数据库,数据库会产生相应的服务器进程和端口号来与之进行连接,在专用服务器中哦个这是一对一的关系,在共享服务器中则会采用调度器的机制。
  后台进程则是实例(instance)的一部分,在实例启动的时候,SGA被分配,后台进程也被分配,且分配需要使用的内存(PGA),后台进程具体实施oracle服务器中的操作,打个比方的话,类似于工地上干活的工人,分工明确。后台进程仅仅占用PGA很小的一部分,严谨的来说PGA在实例启动的时候就已经分配了一部分了(只不过占比重很小),而其余大部分都是在用户进行连接的时候进行分配的,因为PGA大部分都分配给进行客户连接的服务器进程。
  后台进程简单描述
  
   之前已经对后台进程进行了简单的介绍,接下来对常用的后台进程进行简单的介绍:
  SMON:在实例启动的时候执行恢复(如果需要),还负责清楚暂时不使用的临时段。SMON会定期的查看是否需要该进程。其他进程在需要的时候也可以对SMON进行调用。
  PMON:在用户进程失败时进行进程恢复(在我理解是清除所有该用户进程的信息):1.清除buffer cache;2.释放该用户进程所占用的所有资源。PMON还负责监视是否发生空闲会话超时和将数据库的服务动态监听到监听程序。
  PMON会自动的重新启用任何已经停止运行的分派程序和服务器进程。(主要对服务器进程进行管理)
  DBWn:将buffer cache中修改过的数据写入数据文件。写入磁盘有两种方式:1.在执行其他处理的时候异步写入(先写一部分)2.定期执行以推进检查点。
  回写脏块的操作会在以下情况发生:1.全局检查点; 2.关闭数据库; 3.drop表;以及脱机表空间的时候发生。
  LGWR:这个进程的作用相对和DBWn进程的作用都相对单一而且易于理解,LGWR是将redo log buffer中的缓存信息写入redo log file中,LGWR在以下条件中将会被触发:1.redolog buffer被占用1/3; 2.切换日志文件; 3.每3s; 4.在DBWn将dirty block写入数据文件之前; 5用户commit事务处理; 6.redo log buffer占用1M。
  CKPT:将检查点信息写入控制文件和每个数据文件头。当系统发起全局检查点的时候,会通知DBWn将dirty block全部写回数据文件,这时如果大量累积了dirty block,这对DBWn将会是一个非常大的工作量。为了减少这种工作量和减少实例恢复时所要通过redolog恢复的dirty block的数量以减少实例恢复时间,引入了增量检查点。
  发起增量检查点仅仅会对控制文件操作,CKPT定期触发DBWn,CKPT通知DBWn将check point queue中的 dirty block写回数据文件,减小了DBWn的工作量也提高了io效率。
  完全检查点可以通过手动触发(执行Alter system checkponit;),也会在切换日志,shutdown immediate等条件下触发。
  RECO:用于分布式数据库的配置。
  后台进程还有许多,这里简单介绍常用的几种,很多进程的作用相对复杂,需要更深入的对体系结构进行理解和深入的探索。


运维网声明 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-567931-1-1.html 上篇帖子: 【原创】oracle函数INSTR的MySQL实现 下篇帖子: oracle数据文件recover恢复过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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