Oracle SMON进程的经典剖析

数据库 Oracle
以下的文章主要是对Oracle SMON进程的经典说明,以及系统监视进程SMON的概述,希望你浏览完之后会在Oracle SMON进程中有所收获。

在Oracle中有很多的地方是值得我们学习的,这篇文章里主要介绍的是Oracle SMON进程,其中包括归档进程ARCH的实际应用方面的介绍。以及在Oracle数据库中有两个进程非常的渺小,但是其作用却是非常的巨大。

由于其比较小而往往被数据库管理员所忽视。笔者这次就给大家提醒提醒,不要忽视了这两个进程的作用。如果利用的好的话,会减少系统管理员不少的工作。

系统监视进程SMON

这个进程对于Oracle数据库来说,可以利用一句话来概括,即人小鬼大。其负责的内容并不是很多,但是对于数据的安全与数据库的性能却有很关键的作用。如随着表空间中的数据不断的建立、删除、更新等等,在表空间中难免会产生碎片。由于这些碎片的存在,数据库的性能会逐渐的降低。而现在系统监视进程SMON的作用,就可以解决这些碎片。

Oracle SMON进程会将各个表空间的空闲碎片合并在一起,让数据库系统更加容易分配。从而提高数据库的性能。另外,在数据库运行的过程中,会因为断电或者其他的原因而发生故障。此时由于数据高速缓存中的脏缓存块还没有来得及写入到数据文件中,从而导致数据的丢失。

在数据库启动的时候,系统监视进程SMON会在下一次启动例程的时候,自动读取重做日志文件并对数据库进行恢复。也就是说,进行将已提交的事物写入数据文件(已经写入到日志文件中而没有写入到数据文件中的数据)、回退未提交的事务操作。可见,Oracle SMON进程是一个比较小但是却非常重要的角色。

在管理这个进程的时候,笔者认为主要需要注意两个问题。一是其启动的时机。一般情况下,例程重新启动的时候,会启动这个系统监视进程。然后在这个例程运行期间,这个进程也会被系统定期的唤醒,然后其会检查是否有工作需要其完成。最重要的是,在有需要的时候,数据库管理员可以通过其他进程来启动这个SMON系统系统监视进程,来完成一些特定的工作。

第二需要注意表空间配置对这个进程的影响。在表空间管理中,有一个参数叫做PCTINCREASE。如果将这个参数设置为0的话,则这个SMON系统监视进程对于这个表空间的作用就要打折扣了。在设置为0的情况下,SMON进程就不会对这个表空间中的空闲碎片进行整理、合并操作。

也就是说,需要数据库管理员通过数据的导出导入等手工操作,才能够解决表空间的碎片问题。显然这会增加数据库管理员的工作量。为此笔者建立,除非有特别的需要,不要将这个参数设置为0。让Oracle SMON进程自动对表空间中的碎片进行管理,自动合并表空间中的空闲碎片。

不过如果某个表空间这个参数设置为0的话,不会影响到系统监视进程的其他用途,如不会影响到在例程非正常关闭时对数据的恢复操作。即即使这个参数设置为0 ,在有需要的时候其仍然可以利用重做日志文件中的记录来恢复相关的数据。

【编辑推荐】

  1. Oracle数据库的重复数据删除技术的优势体现
  2. Oracle存储过程的用法简介
  3. 创建Oracle procedure并调用在pl/sql里
  4. Oracle to_char的用法描述
  5. Oracle 多表关联如何更新多个字段
责任编辑:佚名 来源: 互联网
相关推荐

2009-11-20 10:40:33

Oracle SMON

2010-04-27 14:33:44

Oracle SMON

2010-04-06 17:52:09

Oracle SMON

2010-04-13 09:29:54

Oracle SMON

2010-05-10 13:25:09

Oracle SMON

2010-02-22 16:09:33

WCF宿主

2010-03-02 13:43:01

WCF事务演示

2009-11-19 17:08:55

Oracle数据服务器

2021-02-22 07:58:45

算法进程调度

2010-06-01 12:19:27

SVN分支与合并

2010-03-19 15:02:50

Java Socket

2009-12-03 11:10:32

SMONARCHOracle

2010-04-29 16:36:19

Oracle数据库

2010-04-12 17:58:38

Oracle更改

2010-03-08 14:40:27

Linux进程调度

2010-05-05 16:30:25

Oracle后台进程

2010-04-08 12:31:03

Oracle死锁进程

2010-08-31 14:01:48

CSS

2009-03-26 10:33:34

Oracle数据块数据库

2009-03-06 16:48:23

数据块原理Oracle
点赞
收藏

51CTO技术栈公众号