Oracle后台进程
重新学习一下Oracle的后台进程,因为感觉这块内容还是比较重要的,就当是复习一下了。另外在后面还介绍了关于锁、等待、跟踪文件、进程信息、并行等一些Oracle内部相关特性的监控方法,都是对于数据库的管理是非常有用的内容,只是粗略介绍一下,如果要仔细学习的话,每一块内容都是一个专题。
一、基本后台进程
1、数据库写入进程(DBWn):
数据库写入程序讲数据库告诉缓存区中的修改块写入数据文件。对于多数系统来说,一个数据库写入程序(DBW0)就已经足够,但是对于有大量修改数据任务的系统来说,就需要配置额外的进程(DBW1-DBW9)来改善写入的性能。初始化参数DB_WRITER_PROCESSES来指定DBWn的个数。
2、日志写入进程(LGWR):
日志写入进程将重做日志条目写入磁盘中。重做日志条目在系统全局区(SGA)的重做日志缓冲区中生成,而且LGWR按顺序将重做日志条目写入联机重做日志文件。如果有多个重做日志,则写入到重做日志写入联机重做日志的某个组中。
3、检验点进程(CKPT):
在特定时期,系统全局区的所有修改过的数据都通过DBWn写入到数据文件中,这种事件称为检验点。检验点进程负责在检验点时通知DBWn,并且更新数据库的所有数据文件和控制文件,文件中指明新的检验点。
4、系统监视进程(SMON):
当失败的实例再次启动时,系统监视进程执行紧急恢复操作,在RAC中一个实例的SMON可以恢复其他失败的实例。SMON还可以清除不再使用的临时段,以及恢复在紧急实例恢复过程中因为文件读取或脱机错误遗漏的停用事务。
SMON进程还合并了数据库字段管理表空间中的空闲区域,以便使用空闲空间连接,从而更容易分配空闲空间。
5、进程监视进程(PMON):
用户进程失败时,由PMON执行恢复操作。PMON负责清理缓存和进程使用的空闲资源。还检查调度程序进程和服务器进程,并在这些进程失败后重新启动它们。
6、存档进程(ARCn):
一个或多个存档程序进程备份联机重做日志文件,以便在文件中充满日志或发生日志切换时存储档案。
7、恢复进程(RECO):
恢复程序进程用于解决分布式事务,在分布式数据库中这些事务的悬而未决要归咎于网络或系统的失败。在计时间隔内,本地RECO会视图连接远程数据库并自动完成任何一个未解决的分布式事务在本地部分的提交或回滚操作。
8、调度进程(Dnnn):
调度进程是可以选择的后台进程,用于控制共享服务器。
9、全局缓存服务(LMS):
在RAC中用该进程管理资源并提供实例间的资源控制。
10、作业队列协调进程(CJQ0):
监视JOB$表并启动作业队列进程(Jnnn)。当需要执行作业时,Jnnn进程讲执行由DBMS_JOBS包创建的作业请求。视图做多可以查看1000个Jnnn进程,之后自动刷新视图的内容。
Jnnn进程的另一个功能是讲队列消息传播到另一个数据库上的队列。注:CJQO失败并不会引起实例失败。
二、监视Oracle实例进程
1、进程信息的视图:
V$PROCESS:包含有关当前活动进程的信息;
V$SESSION:列出每个当前会话的会话信息;
V$SESS_IO:包含每个用于会话的I/O统计表;
V$SESSION_LONGOPS:显示运行时间超过6秒的操作状态;
V$SESSION_WAIT:列出当前会话正在等待的资源或时间;
V$SYSSTAT:会话统计表;
V$RESOURCE_LIMIT:某些系统资源当前使用的全局资源;
V$SQLAREA:共享SQL区域的统计表,并统计SQL字符串列一行信息;
V$LATCH:非父锁存器的统计表以及父锁存器的汇总统计表;
2、监视锁:
可使用V$LOCK视图查询当前的锁信息;
...\oracle\ora92\rdbms\admin\utllockt.sql 脚本以树形结构的形式显示系统中正在等待封锁的会话以及正在等待使用的锁。
...\oracle\ora92\rdbms\admin\catblock.sql 脚本用于创建utllockt.sql需要使用的锁视图
三、跟踪文件 & 报警文件
1、数据库报警文件包括:
* 内部错误()、成组的损坏错误()、死锁错误()
* 管理操作,如CREATE、ALTER、DROP以及STARTUP、SHUTDOWN、ARCHIVELOG等
* 有关共享服务器和调度程序进程函数的一些消息和错误
* 整个视图内容刷新的过程中发生的错误
* 数据库和实例启动时所有的初始化参数的值
2、跟踪文件有关的初始化参数
BACKGROUND_DUMP_DEST:指定跟踪文件的位置
USER_DUMP_DEST:指定服务器进程的所有跟踪文件位置
MAX_DUMP_FILE_SIZE:控制跟踪文件的大小
3、控制Oracle写入跟踪文件的过程
指定当前会话使用SQL跟踪工具
ALTER SESSION SET SQL_TRACE TRUE;
注:进程使用SQL跟踪工具引起系统显著架空,对性能造成严重影响,所以只在收集统计表时使用。
四、管理SQL语句的并行处理
1、SQL语句并行程度:
* 语句中的PARALLEL字句
* 对于查询中引用对象,在创建或更改对象过程中使用的PARALLEL字句
* 插入语句中的并行提示
* Oracle确定的默认值
2、管理并行执行服务器
设置一下参数值,使得可以使用并行执行协调器进程处理并行SQL
PARALLEL_AUTOMATIC_TUNING = TRUE
3、停用/启用并行
ALTER SESSION DISABLE/ENABLE PAPALLEL DML|DDL|QUERY;
DML:INSERT、UPDATE、DELETE
DDL:CREATE、ALTER
QUERY:SELECT
4、强制设置并行度
ALTER SESSION FORCE PARALLEL DDL PARALLEL 5;