oracle实例的后台处理
1、进程:安装和打开数据库。安装数据库的查找和验证数据库的控制文件后,打开数据库以查找和验证所有数据文件和联机日志文件。一旦打开数据库和数据库正在使用,SMON负责执行各种内部管理任务。
2、PMON:用户会话连接到服务器进程,用户进程,服务器进程启动会话时创建,在绘画结束时破坏。如果会议结束,任何工作,用户执行将有序进行和服务器进程将终止。如果会话是正常终止,PMON破坏服务器进程,返回其PGA内存的操作系统,并回滚任何未提交的事务完成的。
3,DBWn:会话不直接写数据到磁盘,但将它写入到数据库缓存,那么数据库作家负责写缓存到磁盘。一般来说,一个实例可以有多个作家。反过来,data files,DBW1等。默认是8 CPU对应一个数据库的作家。
通常,Oracle尽可能减少写入缓冲区的数量,因为IO操作可以降低性能。在实际情况下,如果会话是为某些缓冲区编写的,通常会有一个会话来对其进行操作。
DBWn使用一个非常懒惰的算法进行写作:尽可能的少,尽可能少。有四种类型的操作:无需做的脏缓冲区可用的缓冲区,也遇到三秒超时,遇到检查点。
没有可用的缓冲区:服务器进程需要在将块复制到缓存之前找到可用的缓冲区。可用缓冲区既不脏也不占用。如果可用缓冲区时间太长(Oracle中的自设置),则将脏缓冲区写入磁盘以清除缓冲区。
脏缓冲区的数量太大:在这种情况下,Oracle的内部阈值被确定,如果超出了阈值,一些缓冲区将被写入磁盘。
超时:DBWn秒每三秒缓冲液清洗时间。即使系统处于闲置状态,缓冲区将被清理。
请求检查点:当遇到检查点时,所有的缓冲区数据都将被写入。此时系统的性能下降。检查点仅在不允许的情况下设置。检查点设置在数据库关闭和实例关闭时,命令也可以设置。
需要指出,当会议提交一个事务,DBWn无所作为,DBWn执行,以自己的方式,需要在这个时候进行手术是写日志缓冲区中的数据。
4,LGWR:日志作家写的日志缓冲区的内容到磁盘上的联机日志文件。当会话发出commit,LGWR写的是真正的时间:当缓冲区被写入LGWR的盘,会话将被挂起,在Oracle的架构,LGWR是最大的瓶颈。DML的速度不能超过的速度,LGWR将变化向量到磁盘。在以下三种情况下,LGWR将日志缓冲区:
当提交写入时,提交给事务的每个更改向量都可以在磁盘上的重做日志中获得,并可用于以后的数据文件备份。
The occupancy rate of log buffer is 1/3: in application, it usually fills up 1/3 of log buffer in a very short time, forcing LGWR to change vector to write disk in real time.Since then, there is almost nothing to write when the session is COMMIT: COMMIT can be done immediately.
当DBWn需要写数据库缓存到数据文件的脏缓冲区的写操作时总是写操作之前执行由DBWn执行。目标是未提交的事务总是可以reversed.dbwn可以写未提交事务的数据文件。如果我们能得到所需要的反向业务数据和变化的载体,不会有问题的。所以,在DBWn写的,写的LGWR需要确保数据记录在重做日志文件。
5、CKPT:系统崩溃后,对应的脏缓冲区的所有变化向量必须从重做日志应用到数据块中提取。这是恢复过程。频繁的检查点确保脏缓冲区可以快速写入到磁盘,从而最大限度地减少事故发生后的应用必须返工量。在Oracle8i,我们使用增量检查点机制,和DBWn写的脏缓冲区在一个固定的速度,所以总是有DBWn和LGWR之间的一个可预测的差距,系统性能更稳定的增量检查点时使用,且恢复时间可以预测。
当然,在10g之后,Oracle又增加了一些过程。下面是一个简短的介绍:
常见:管理监控(maniageability监视器)、自我监控和自我调节过程中的数据块的支持。
MMNL辅助过程:MMON的。
MMAN:支持内存分配的自动调节。