首页 > 代码库 > 足球与oracle系列(1):32路诸侯点兵,oracle32进程联盟 之A组巴西SMON进程的大局观

足球与oracle系列(1):32路诸侯点兵,oracle32进程联盟 之A组巴西SMON进程的大局观

声明:

       这不是技术文档,既然学来几招oracle简单招式,就忍不了在人前卖弄几下。纯为茶余饭后与数朋库友的插科打诨,只为轻松中带有一丝的诙谐,IT技术也能用来调侃一番,还蛮耐人寻味。

       同时近来数月oracle知识点忘记了不少,为了把知识点重现,点滴间偶出灵感乍现,以一种自由的形式将其发布,由于本人学艺不精,文中列举的例子或故事,其中必然会有与技术联系牵强之处,望大家海涵。只当是一部小菜鸟的杂记,不要把这当做技术文章喔,亲!看过、笑过,就好。

       欢迎拍砖,这将是我成长的最大动力。

线索一:32路诸侯点兵,oracle32进程联盟

之A组 巴西 SMON进程的大局观


       巴西一直以来以一个强者的身份在世界足坛活跃着,它就如同是oracle中的SMON进程一样,是相当重要的,一旦实例崩溃了,需要由SMON来对其恢复。如果有一天足球落寞了(应该是不会出现,哈哈),必然是需要由有着足球王国之称的巴西来力挽狂澜了!

       看看与巴西队同组的小伙伴们,克罗地亚如同是临时表空间,欧洲来到了美洲,哈哈,大家懂得。。。

       墨西哥如同回滚段表空间,是为了让我们记住北美洲球队的历史表现,正如回滚段一样可以维护着读一致性。

       最后就剩喀麦隆了,这支颠沛的球队,不得不说国家的动荡会对球队带来一些影响,同时我们也更庆幸的是动荡消灭不了一个国家对于足球的热爱,但毕竟实例还是要逊色于其它球队,把你比作实例间的空闲空间吧,望有一天重新使用起来,变得强大起来。


SMON进程:

简述:

        重要的后台进程,实例启动时负责实例的恢复。还会清理不再被使用的临时段。在并行服务器环境下,该进程对有故障的实例、故障CPU进行实例恢复。SMON会消耗很多的CPU。SMON会被周期性的唤醒,执行处理诸如以下的事务一样,这像极了2014世界杯的主办国——巴西,足球造诣强大,但同时世界杯的筹划上有的忙了,O(∩_∩)O哈哈~

工作细化:

1、清理临时表空间

举例:当建立一个索引,在创建期间分配给索引的扩展区被标识为temporary。如果create index会话因某些原因异常   中断,SMON会负责清理。其它操作创建的临时扩展区,SMON同样是会这样处理的。

2、清理回滚段

SMON将执行回滚段的自动收缩到它的optimal尺寸(前提是已经被设置了)。

3、合并空闲空间

举例:如果正在使用数据字典管理表空间,SMON会负责把那些在表空间中空间的并且相互近邻的extent接合成一个   较大的空闲扩展区(前提是默认的pctincrease设置为非零的存储子句的字典管理表空间)。

4、将不可用文件事务恢复为活动

举例:假设如果文件可能已经不可用或没装载到磁盘上时。SMON将会恢复它。这个类似于启库期间。文件不能用于 恢复,SMON恢复在实例恢复期间跳过的故障事务。

5、RAC故障节点的实例恢复

举例:集群环境下,当一个节点实例崩溃时,集群中的其它几点将开启故障的实例的重做日志文件,为故障实例执行 所有数据的恢复。

6、清理OBJ$

SMON将负责删除不在被需要的行的进程。

7、回滚段的脱机

当实际应用中需要对active事务的回滚段进行脱机或不可用时,回滚段不是真正意义上的脱机,它被标志为“offline”,在后台进程中,SMON将周期性的使它真正脱机,直到完成为止。

[08:07:05oracle@gc1]$ps -ef|grep ‘ora_.*‘;  --可以查看运行进程有哪些

--进程命名格式:ora_进程具体名字_实例名
oracle    3075     1  0 08:06 ?        00:00:00 ora_pmon_PROD
oracle    3077     1  0 08:06 ?        00:00:00 ora_vktm_PROD
oracle    3081     1  0 08:06 ?        00:00:00 ora_gen0_PROD
oracle    3083     1  0 08:06 ?        00:00:00 ora_diag_PROD
oracle    3085     1  0 08:06 ?        00:00:00 ora_dbrm_PROD
oracle    3087     1  0 08:06 ?        00:00:00 ora_psp0_PROD
oracle    3089     1  0 08:06 ?        00:00:00 ora_dia0_PROD
oracle    3091     1  0 08:06 ?        00:00:00 ora_mman_PROD
oracle    3093     1  0 08:06 ?        00:00:00 ora_dbw0_PROD
oracle    3095     1  0 08:06 ?        00:00:00 ora_lgwr_PROD
oracle    3097     1  0 08:06 ?        00:00:00 ora_ckpt_PROD
oracle    3099     1  0 08:06 ?        00:00:00 ora_smon_PROD
oracle    3101     1  0 08:06 ?        00:00:00 ora_reco_PROD
oracle    3103     1  1 08:06 ?        00:00:00 ora_mmon_PROD
oracle    3105     1  0 08:06 ?        00:00:00 ora_mmnl_PROD
oracle    3107     1  0 08:06 ?        00:00:00 ora_d000_PROD
oracle    3109     1  0 08:06 ?        00:00:00 ora_d001_PROD
oracle    3111     1  0 08:06 ?        00:00:00 ora_d002_PROD
oracle    3113     1  0 08:06 ?        00:00:00 ora_s000_PROD
oracle    3115     1  0 08:06 ?        00:00:00 ora_s001_PROD
oracle    3117     1  0 08:06 ?        00:00:00 ora_s002_PROD
oracle    3119     1  0 08:06 ?        00:00:00 ora_s003_PROD
oracle    3121     1  0 08:06 ?        00:00:00 ora_s004_PROD
oracle    3123     1  0 08:06 ?        00:00:00 ora_s005_PROD
oracle    3125     1  0 08:06 ?        00:00:00 ora_s006_PROD
oracle    3127     1  0 08:06 ?        00:00:00 ora_s007_PROD
oracle    3129     1  0 08:06 ?        00:00:00 ora_s008_PROD
oracle    3131     1  0 08:06 ?        00:00:00 ora_s009_PROD
oracle    3139     1  0 08:06 ?        00:00:00 ora_qmnc_PROD
oracle    3153     1  1 08:06 ?        00:00:00 ora_cjq0_PROD
oracle    3183     1 10 08:06 ?        00:00:02 ora_j000_PROD
oracle    3185     1  0 08:06 ?        00:00:00 ora_j001_PROD
oracle    3189     1  2 08:06 ?        00:00:00 ora_j003_PROD
oracle    3191     1  0 08:06 ?        00:00:00 ora_j004_PROD
oracle    3193     1  0 08:06 ?        00:00:00 ora_q000_PROD
oracle    3195     1  0 08:06 ?        00:00:00 ora_q001_PROD

       想到用足球和oracle作比,首先是因为个人的兴趣所致,其次是觉得这个更贴切,因为足球这项运动是竞技体育中场地最大、参与人数最多的体育运动,和oracle庞杂的知识体系有一个鲜明生动的对应。

 

       本系列将不会根据时间或情节的叙事,而是由作者随意产生的联想,以一种自由的写作风格呈现在大家面前。