全部博文(29)
2010年(29)
分类: Oracle
2010-09-23 15:06:56
1)Focused Background Processes
ora_pmon_SID :
1)connection在不正常终止时,pmon负责释放资源,rollback未提交的事务
2)监控后台进程,如果某些后台进程不正常终止,则会重启它(比如dispatcher),或者直接终止实例(比如lgmr终止时)
03)实例启动时,pmon负责注册实例到监听上,当实例启动时,pmon进程会检查默认监听器是否启动,如果使用非默认的监听器,需要设置
local_listener参数。
ora_smon_SID:
系统监视进程
ora_dbw0_SID:
1)负责将dirty buffer写入到datafile中,目的是腾出sga空间和advance checkpoint
2)Advance checkpoint后,oracle在做instance recover时,就从online redo file的新位置做为起点位置做恢复。
03)当发生log switch时,会出发checkpoint
04)当online log file 需要被重用时,checkpoint还没有做完的话,警告文件里面会有checkpoint note complete的警告
05)如果dbwr的性能低下,我们会发现很多free buffer waits和write complete waits的等待
6)可以配置多个dbwr进程,比如dbw1,dbw2,...dbw9,...dbwj,最多20个,参数为db_writer_processes,这可以利用多个CPU的并行处理功能
7)如果操作系统支持AIO,dbwr就可以不用等待操作系统写完,而继续下一个dbwr请求。
8)如果操作系统不支持AIO,可以利用dbwr slaves来模拟,参数为dbwr_io_slaves
ora_lgwr_SID:
1)将redo log buffer写入到redo log file中
2)3s,commit,redo log buffer 1/3满时,都会触发lgwr写
3)因此redo log buffer不需要太大
4)lgwr采用sequenctial地写入,不像dbwr是scatter的写入,因此lgwr的性能要高很多。
ora_ckpt_SID:
1)CKPT进程不是做checkpoint(A checkpoint is the writing of dirty (modified) blocks from the buffer cache to disk)的,而是在发生checkpoint时,修改数据文件头的。
2)在oracle8以前,CKPT的任务可以由LGWR进程来执行,因此CKPT进程可选,但从8.0开始,CKPT进程是必须的,LGWR也减少了执行负担。
ora_reco_SID:
1)reco有个主要工作,就是recover那些两阶段提交的但由于网络或其它原因造成状态为prepared 的挂起事务。
2)当某些节点反馈yes给事务协调器可以提交时,但事务协调器还未正式发出可以提交的最后指示时,由于网络的原因,这些节点失去了和事务协调节点的联系,此时这些事务就成为 了an in-doubt distributed transaction。此时,RECO就负责定期的联系事务协调器,当联系到时,就会提交或者回滚这些事务了
3)对于某些大的事务,如果使用reco的成本比较高,可以人为的干涉来处理掉这些事务
2)Utility Background Processes
ora_mman_SID:
1)当使用自动管理内存功能时,MMAN负责处理sga各组件的内存动态分配,包括有default buffer pool,shared pool,java pool,large pool.ITPUB个人空间Oc.ws`
ITPUB个人空间 b'E2AZL)k"R
ora_cjq0_SID:
1)当配置job_queue_processes时,会有Jnnn和CJQ0进程
2)Jnnn进程最多可有1000个
3)Jnnn进程在job之间是共享的,但同时每个Jnnn只能执行一个job,并且它使用的内存是在UGA中
4)物化试图的刷新一般要用到job
5)streams一般用到AQ
6)CJQ0,做为jnnn的coordinator,它来控制jnnn的启动和关闭
7)Jnnn进程只会在有job需要处理时才会启动
ora_mmon_SID,ora_mmnl_SID,Mnnn:
1)用于AWR(autmatic workload repository)
2)MMNL负责将SGA中的统计信息写入到表中
3)MMON监控数据库性能,进行自动调优
4)Mnnn属于MMON的帮手,帮助进行调优工作
ora_pnnn_SID:
1)当执行某些语句时,会产生很多执行计划,这些执行其实可以并行执行,然后合并成一个输出结果
2)可以利用并行查询功能来实现并行
3)产生的并行查询进程名为Pnnn
3)服务器进程
oracleSID (LOCAL=NO)
4)监听进程
/Oracle/ora10G/product/bin/tnslsnr LISTENER -inherit