Oracle后台进程是一组运行于Oracle服务器端的后天程序,是Oracle实例的重要组成部分。这组后台进程有若干个,它们分工明确——分别完成不同的系统功能。其中SMON、PMON、DBWR、LGWR和CKPT这5个后台进程必须正常启动,否则将导致数据库实例崩溃。此外,还有很多辅助进程,用于实现相关的辅助功能,如果这些辅助进程发生问题,只会使某些功能受到影响,一般不会导致数据库实例崩溃。
方法/步骤
1、1.墙绅褡孛数据写入进程(DBWR):数据写入进程的主要任务是负责将内存中的“脏”数据块回写到数据文件中撅掏浑锌。“脏”数据块是指高速数据缓冲区中的被修改过的数据块,这些数据块的内容与数据文件的数据块内容不一致。但DBWR并不是随时将所有的“脏”数据块都写入数据文件,只有满足一定的条件时,DBWR进程才开始成批量的将“脏”数据块写入数据文件Oracle这样做的目的是为了尽量减少I/O操作,提高Oracle服务器性能。通常在以下几种情况发生时,DBWR进程会将“脏”数据块写入数据文件:
2、2.检溽朽孑臾查点进程(CKPT):检查点进程可以看作一个事件,当检查点事件发生时,CKPT会要求DBWR将某些“鳢匆押琴脏”数据块回写到数据文件。当用户进程发出数据请求时,Oracle系统从数据文件中读取需要的数据并存放到高速数据缓冲区中,用户对数据的操作时在缓冲区中进行的。当用户操作数据时,就会产生大量的日志信息并存储在重做日志缓冲区,当Oracle系统满足一定条件时,日志写入进程(LGWR)会将日志信息写入到重做日志文件组中,当发生日志切换时(写入操作正要从一个日志文件组切换到另一组时),就会启动检查点进程。另外,DBA还可以通过修改初始化参数文件SPFILE中的CHECKPOINT_PROCESS参数为TRUE来启动检查点进程。
3、3.日志老揉孟阼写入进程(LGWR):日志写入进程用于将重做日志缓冲区中的数据写入重做日志文件。Oracle系统将用户所做鹚兢尖睁的修改日志信息写入日志文件,然后将修改结果写入数据文件。Oracle实例在运行中会产生大量日志信息,这些日志信息首先被记录在SGA的重做日志缓冲区中,当发生提交命令、或者重做日志缓冲区的信息满1/或者日志信息存放超过3秒钟时,LGWR进程就将日志信息从重做日志缓冲区中读出并写入日志文件组中序号较小的文件中,一个日志组写满后接着写另外一组。当LGWR进程将所有䣌日志文件都写过一遍后,它将再次转向第一个日志文件组重新覆盖。
4、4.归档进程(ARCH):归档进程是一个可选择的进程,只有当Oracle数据库处于归档模式时,该进程才可能起到作用。若Oracle数据库处于归档模式,当各个日志文件组都被写满即将被覆盖之前,先由归档进程(ARCH)把即将覆盖的日志文件中的日志信息读出,然后再把这些“读出的日志信息”写入到归档日志文件中。当系统比较繁忙而导致LGWR进程处于等待ARCH进程时,可通过修改LOG_ARCHIVE_MAX_PROCESSES参数启动多个归档进程,从而提高归档写磁盘的速度。
5、5.系统监控进程(SMON):系统监控进程是在数据库启动时执行恢复工作的强制性进程。比如,在并行服务器模式下,SMON可以恢复另一个处于失败的数据库,使系统切换到另外一台正常的服务器上。
6、6.进程监控进程(PMON):进程监控进程用于监控其他进程的状态,当有进程启动失败时,PMON会清除失败的用户进程,用于数据不一致时进行恢复工作。
7、7.锁定进程(LCKN):这是一个可选进程,并行服务器模式下可以出现多个锁定进程以利于数据库通信。
8、8.恢复进程(RECO):这是在分布式数据库模式下使用的一个可选进程,用于数据不一致时进行恢复工作。
9、9.调度进程(DNNN):这是一个可选进程,在共享服务器模式下使用,可以启动多个调度进程。
10、10.快照进程(SNPN):快照进程用于处理数据库快照的自动刷新,并通过DBMS_JOB包运行预定的数据库存储过程。
11、例如:从v$bgprocess数据字典中查询当前实例进程信息