度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 3447|回复: 10
打印 上一主题 下一主题

[分享] oracle 的服务器进程(PMON, SMON,CKPT,DBWn,LGWR,ARCn)

[复制链接]

348

主题

3572

帖子

9382

积分

论坛元老

Rank: 8Rank: 8

积分
9382
跳转到指定楼层
楼主
发表于 2020-5-21 21:38:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

PMON

  PMON,进程监视。PMON主要有3个用途:

  1,在进程非正常中断后,做清理工作。例如:dedicated server失败了或者因为一些原因被杀死,这是PMON的工作分两种。第一,是对dedicated server所做的工作进行恢复或撤销。第二:是释放dedicated server占用的资源。PMON会把失败进程的未提交的工作进行rollback,释放锁,释放SGA空间

  2,在进程abort后,PMON进行清理工作。PMON会监视oracle其他的后台进程,并在需要的时候对它们进行重建。如果shared server或者dispatcher失败后,PMON会介入其中,并在清理完失败进程后,重建一个shared server或dispatcher.例如:在数据库进行写日志的时候LGWR进程失败,这是个很严重的错误。解决这种问题最安全的方法是立即中断实例, 并恢复。

  3,PMON的第三个用途是,向Oracle TNS listener注册实例信息。在实例启动的时候,PMON会查询oracle的默认端口(1521端口)是否处于工作状态。如果这个端口已经处于工作状态,那么该实例就可以启动,PMON把实例的相关信息告诉listener,包括服务名、实例的信息等。如果listener没有启动,PMON就会定期 的尝试去连接listener.这里要注意如果oracle没有是默认的1521端口,而是使用其他的端口时,PMON和listener的连接过程和使 用1521端口还是很相似的,除了,在使用非默认端口时,listener的地址要在参数LOCAL_LISTENER中指定。

  SMON

  SMON,系统监视。SMON的工作如下:

  1,清理临时空间。

  2,聚合空闲空间。如果使用dictionary- managed 方式来管理表空间,SMON就要负责把空闲的extent聚合成大的空闲extent.这种情况只有在表空间的管理方式是dictionary- managed ,且参数PCTINCREASE被设置成非零值的时候才会发生。

  3,对不可用文件的事务恢复。在数据库启动的时候,SMON会恢复失败的事务,这些事务是在实例恢复或crash恢复的时候被跳过的。例如:在磁盘上某哥文件不可用了,在这个文件又重新可用后,SMON会恢复它。

  4,在RAC的单节点故障上进行实例恢复。在RAC 环境下,如果cluster(簇群)中有一个实例失败了(如:实例所在的机器挂掉了),在这个cluster上的其他的节点会打开失败实例的redo log,并恢复失败实例

  5,清理OBJ$.OBJ$是个低级别的数据字典,它几乎包含了数据库中所有的objects的entry.多数时候,有的entries的objects已经被删除了,或者当前的entry代表的不再是最新的objects.SMON就负责删除这些entry信息了

  6,收缩undo segments.SMON会自动把rollback segment收缩到最优的大小

  7,离线rollback segments.DBA可能需要把一个处于active状态的事务的rollback segment离线。此时如果事务正在使用这个已经离线的rollback segment,那么这个segment并未真的离线,而是被标记为"pending offline".在后台,SMON会一直尝试离线这个segment,直到成功。

  此外,SMON还会刷新视图DBA_TAB_MONITORING的统计信息等。SMON会消耗大量的CPU.SMON会定期地,或被其他后台进程唤醒,来执行清理工作。

  CKPT

  CKPT,检查点进程。CKPT进程并不像它的名字说的那样进 行checkpoint,执行checkpoint是DBWn的工作。它只是来更新数据文件头的。oracle8.0之前,CKPT只是一个可选的进程。 但oracle8.0之后,CKPT进程就进程被打开。过去更新数据文件头的checkpoint 信息是LGWR的工作,然而,随着数据库文件的增加,LGWR的负担也变得越来越重。如果LGWR要更新100,甚至1000哥文件头,那么就会有很多的 session等待很长时间去commit.所有CKPT就把这个工作承担下来了

  DBWn

  DBWn,数据写进程。DBWn负责把缓冲区的脏数据写到磁盘 上。在oracle发生switch log files的时候,会发生checkpoint.checkpoint发生后,在redo log中的数据就可以被覆盖了。如果在redo log被填满,且要重新利用redo log 来存放新的数据时,而此时checkpoint还为完成,oracle就会返回"checkpoint not complete".

  DBWn的性能相当重要。如果DBWn写数据的速度不够快,这样释放出空闲buffer的速度也就不会快。那么Free Buffer Waits 和Write Complete Waits的值就会很快的增长。

  oracle可以配置多达36个DBW进程。从DBW0到DBW35.多数系统只有一个DBW进程,但在多CPU系统中就可能不止一个DBW进程了。这样做的目的是分散写数据的负担,保证SGA中有足够的空闲空间。

  优化情况下,DBW是通过异步 (asynchronous)I/O向磁盘写数据的。通过异步I/O,DBW先把blocks组成一个batch(一捆),再把batch递交给 OS,DBW不会等待OS把batch写入到磁盘,而是返回,继续收集下一个batch.当OS完成写后,会异步通知DBW进程,已经把batch成功的 写入到磁盘了。

  最后,DBW进程是分散地把数据写到磁盘上的。而LGWR是连续写redo log.分散写要比连续写耗时的多。但是,DBW是在后台进行分散写的,而LGWR做连续写是为了减少用户等待的时间。

  疑问:TOM说DBWn是把blocks组成一个batch,然后异步交给OS,让OS写到磁盘的。为啥又说DBWn是分散写数据的,写数据的活不是OS干的吗?

  LGWR

  LGWR,日志写进程。LGWR是把SGA中redo log buffer的信息写到redo log file的进程。LGWR会在下面情况发生:

  1,每个3秒钟,进行一次LGWR

  2,任何事务进行了commit

  3,当redo log buffer是1/3满,或者里面有1MB的数据

  基于以上的原因,把redo log buffer设置的很大就没必要的。

  ARCn

  ARCn,归档进程。ARCn的工作是在LGWR把 onlone redo log填满后,ARCn把redo log file的内容copy到其他的地方。归档日志可以用来做media recovery.online redo log 是被用来为实例失败的时候,恢复数据文件。而归档日志是被用来在media recovery的时候,恢复数据文件。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复

使用道具 举报

348

主题

3572

帖子

9382

积分

论坛元老

Rank: 8Rank: 8

积分
9382
沙发
 楼主| 发表于 2020-5-21 21:52:55 | 只看该作者
多学习

点评

起床学习了,还睡[attachimg]791[/attachimg]  详情 回复 发表于 2020-5-22 14:07
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
板凳
发表于 2020-5-22 14:03:13 | 只看该作者
有些高深,先收藏慢慢研究
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
地板
发表于 2020-5-22 14:07:16 | 只看该作者

起床学习了,还睡
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
5#
发表于 2020-5-22 19:28:08 | 只看该作者
果然有深度!
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
6#
发表于 2020-5-22 20:18:23 | 只看该作者
这些都要了解和掌握哦。数据库方面的东西很多。
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9382

积分

论坛元老

Rank: 8Rank: 8

积分
9382
7#
 楼主| 发表于 2020-5-24 20:49:40 | 只看该作者
张兴康 发表于 2015-12-22 14:07
起床学习了,还睡

还早呢,让哥再睡会
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9382

积分

论坛元老

Rank: 8Rank: 8

积分
9382
8#
 楼主| 发表于 2020-5-24 20:50:34 | 只看该作者

多给你们科普科普,要多学习多了解

点评

哦哦,好的!  详情 回复 发表于 2020-5-24 20:53
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
9#
发表于 2020-5-24 20:53:32 | 只看该作者
万望 发表于 2015-12-24 20:50
多给你们科普科普,要多学习多了解

哦哦,好的!

点评

天天学习,天天上进  详情 回复 发表于 2020-5-25 17:32
回复 支持 反对

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
10#
发表于 2020-5-25 17:32:17 | 只看该作者

天天学习,天天上进

点评

毛主席说的?  详情 回复 发表于 2020-5-25 21:30
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-12-27 11:31 , Processed in 0.236042 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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