您的位置:首页 > 数据库 > Oracle

oracle OCP认证学习日志(4)

2014-02-10 22:38 232 查看
1.5实例进程结构

     实例后台进程在启动实例时启动,在终止实例时终止运行。有这样五个后台进程,Oracle 使用它们的历史长久,本节首先予以描述:系统监视器(System Monitor, SMON)、进程监视器(Process Monitor,PMON)、数据库写入器(Database Writer ,DBWn)、日志写入器(Log Writer,LGWR),检查点进程(Chekpoint Process, CKPT)。在更新的产品版本中,引入了其他多个进程,可管理性监视器和内存管理器是其中两个重要进程。



1.5.1 SMON

SMON(System Monitor)起初的任务是安装和打开数据库。简单的讲,SMON通过查找和验证数据库控制文件来安装数据库。此后,它通过查找和验证所有数据文件和联机日志文件来打开数据库。一旦打开数据库并使数据库处于使用状态后,SMON负责执行各种内部管理任务,如合并数据文件中的可用空间。

 1.5.2PMON

        用户会话是连接到服务器进程的用户进程。服务器进程在此会话创建时启动,在会话结束时销毁。从会话有充退出涉及用户注销。在这种情况下,用户执行的任何工作都将有序完成,服务器进程将终止。如果以无序方式终止会话,那么会话将处于一个必须进行清理的状态。PMON(Process Monitor)监视所有服务器进程,并检测会话中的任何问题。如果会话异常终止,PMON将销毁服务器进程,将其PGA内在返回给操作系统的空闲内存池,并回滚任何尚在进行的未完成事务。

1.5.3 DBWn 

       始终注意一点:会话通常并不将数据写入磁盘。会话将数据写入数据库缓冲区缓存中的缓冲区。由数据训写入器负责在随后将缓冲区写入磁盘。一个实例可能有多个数据库写入器,依次称为DBW0和DBW1等。因此,使用术语DBWn特定的数据库写入器。默认数量是每8个CPU对应一个数据库写入器。

       DBWn根据极懒算法执行写入:尽可能少,再尽可能少,在以下四种情况下,DBWn将执行定操作:没有任何可用缓冲区、脏缓冲区过多、遇到三秒超时或遇到检查点。

1.5.4 LGWR

        LGWR(LOG WRITER)将日志缓冲区的内容写入到磁盘上的联机日志文件中,将日志缓冲区写入联机重做日志文件的过程通常称为“日志缓冲区转储”

        LGWR是Oracle体系结构中最大的瓶颈之一。DML的速度不可能超过LGWR将变更向量写入磁盘的速度。在三种情况下,LGWR将转储日志缓冲区:会话发出COMMIT哎占用率真达1/3,DBWn要写入脏缓冲区。

       LGWR会在下面三种情况将日志缓冲区转储到磁盘:会话发生COMMIT时、缓冲区的占用率达到1/3时,DBWn正好要执行写入前。

1.5.5 CKPT

在版本8及更早的版本中,每过一定的时间间隔,就需要设置检查点,以便确保在实例失败时,要以快速恢复数据库。这些检查点由CKPT发起。恢复过程就是修复实例发生故障时的损坏。总之,崩溃后必须从重做日志撮与脏缓冲区对应的所有变更向量,并将其应用于数据块。就就是恢复过程。

    从8i开始,DBWn用增量检查点替代了完全检查点,增量检查点机制要求DBWn以固定速率写出脏缓冲区,因此DBWn和LGWR之间始终有一个可以预见的差距。与早先的完全检查点机制相比,增量检查点助于获得更平稳的性能,恢复时间也更易于预测。

1.5.6 MMON

       MMON是数据库版本10G引入的进程,是数据库的很多自我监视和自我调整功能的支持进程。

        此数据库实例收集有关活动和性能的大量统计数据。这些统计数据收集到SGA中,通过发出SQL查询,可以询问它们的当前值。为了调整性能,也为了分析趋势和获得历史报告,有必要将这些统计数据保存到长期存储的地方。

      每次MMON收集一组统计数据(称为快照),它还启动ADDM。ADDM用来分析数据库活动。它观察两个快照,并得出有关性能的观察结果和建议。

      默认方式下,MMON每小时收集一次快照并启动ADDM。

1.5.7 MMNL

     MMNL 是MMON的辅助进程。

1.5.8MMAN

         MMAN(Memory Manager)进程是在数据库版本10G中引入的。它支持内存分配的自动管理。10G版本实现了SGA大小重调的自动化:MMAN监视SGA内存结构的需要并能根据需要重设其大小。

          11G版本的内存管理能力更进一步:DBA仅需为内存使用情况确定一个总体目标,MMAN将观察PGA内存和SGA内存的需要,并根据需要将内存分配给会话和SGA结构,同时将内存分配总量保持在DBA设定的限制范围内。

1.5.9ARCn

         就数据库而言,这是一个可选的进程,但对于企业来说却通常是必需的。如果没有一个或多个ARCn进程,就可能丢失数据。

      大多数生产环境的事务数据库将在“归档日志模式”下运行,这意味着,ARCn自动启动,而且ARCn成功将联机日志文件成功归档到归档日志文件前,将不允许LGW重写相应的联机日志文件。

      必须监视ARCn进程的进度及写入目标的状态,如果归档操作失败,数据库最终将会挂起。可以通过警报系统完成监视操作。

 1.5.10 RECO

              分布式事务涉及两个或多个数据库的更新。COMMIT命令要求两个数据库提交事务。每个数据库中的提交都必须进行协调:如果一个失败了,而另一个要成功,那么整体看来,数据将处于不一致状态。两阶段提交在准备数据库时,指示其LGWR将日志缓冲区转念到磁盘中,一旦得到确认,就在每处都将事务标记为已经提交,如果在两阶段之间,在任何位置发生了错误,那么RECO进程将采取措施来取消提交,并回滚所有数据库中的工作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: