oracle pmon andsmon,SMON and PMON

我们知道Oracle实例Instance由系统全局区SGA和一些后台进程background Process组成,SGA又由Database buffer cache,Redo log buffer,Shared Pool(它包括Libaray cache和Data dictionary cache),和可选的Large pool,Java pool构成。

Oracle通常把最常用的block块缓存起来,以备其他用户重用以提高性能。Database buffer cache将常用的block读到自己里面来,以备重用,同时它也把将要写入的数据缓存起来,等到合时的时候一并写入到disk中的数据文件中,这样可以提高系统性能。当我们的Instance失败(比如:断电,系统突然死机导致Instance失败),在SGA中的数据就可能有没有写入到disk中的datafile之中。下次启动open oracle的时候,SMON就开始发挥它的作用对Instance进行Recovery了。

数据的更改已经记录到了online redo log file之中,但是还没有来的及提交,instance失败了,导致Database buffer cache之中的数据丢失了。启动oracle的时候,SMON从online redo log file之中读取修改的记录然后将这些更新到数据库的block之中。

打开数据库以便用户可以登录

回退未提交的事务处理。它们由SMON 回退,或在访问锁定的数据时由单个服务器

进程回退。

SMON 也执行一些空间维护功能:

• 它联合或合并数据文件中空闲空间的邻近区域。

• 它回收临时段,将它们作为数据文件中的空闲空间返回。

清理临时表空间:伴随这“真正”的临时表空间的出现,清理临时表空间的杂事已经减轻了,但它还没完全消失。例如,当建立一个索引,在创建期间分配给索引的扩展区被标志为TEMPORARY。如果Create Index会话因某些原因异常中断,SMON负责清理他们。其他操作创建的临时扩展区,SMON同样会负责。

 接合空闲空间:如果你正使用数据字典管理表空间,SMON负责把那些在表空间中空闲的并且互相是邻近的extent接合成一个较大的空闲扩展区。这发生仅在带有默认的pctincrease设置为非零的存储子句的字典管理表空间。

PMON进程:该进程在用户进程出现故障时执行进程恢复,负责清理内存储区和释

放该进程所使用的资源。例:它要重置活动事务表的状态,释放封锁,将该故障

的进程的ID从活动进程表中移去。PMON还周期地检查调度进程(DISPATCHER)和

服务器进程的状态,如果已死,则重新启动(不包括有意删除的进程)。

PMON有规律地被呼醒,检查是否需要,或者其它进程发现需要时可以被调用。

SMON进程:该进程实例启动时执行实例恢复,还负责清理不再使用的临时段。在

具有并行服务器选项的环境下,SMON对有故障CPU或实例进行实例恢复。SMON进程

有规律地被呼醒,检查是否需要,或者其它进程发现需要时可以被调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值