导航

2.1.3 后台进程

Posted on 2008-09-01 15:15  毅无涯  阅读(220)  评论(0编辑  收藏  举报

1,SMON(System Monitor)

执行例程恢复

(1)REDO:重新应用那些被记载到重做日志但尚未写入数据文件的数据。因为所有被提交的事务已经记载到了重做日志,所以可以确保恢复事务数据。

(2)打开数据库。在打开数据库时,既包括了已提交的数据,也包括了未提交的数据(加锁)。

(3)UNDO。取消未提交的数据。在打开数据库之后,Oracle 会自动使用UNDO 段回退未提交的数据。

 

2,PMON(Process Monitor)

PMON 用于监视服务器进程的执行,并且在服务器进程失败时清除该服务器进程。当访问Oracle Server 时,Oracle 会在服务器端为用户进程分配服务器进程。假定用户进程地址例外意外终止运行,PMON 可以轮询检测该服务器进程,并执行以下操作:

  • 回退用户的当前事务。
  • 释放服务器进程所占有的表锁和行锁。
  • 释放用户所占用的其他资源。

 

3,DBWR(Database Writer)

DBWR 用于将数据高速缓存的脏缓冲区数据写入到数据文件中。当执行DML 操作时,服务器进程会修改缓冲区,并且将这些缓冲区标识为“脏缓冲区”,将来这些脏缓冲区数据会由后台进程DBWR 写入到数据文件中。

默认情况下只有一个DBW0 进程,通过设置初始化参数db_writer_processes 可以定义最多10个DBWR 进程(DBW0~DBW9)。在出现以下情况时,DBWR 进程会开始工作:

  • 系统发出检查点(checkpoint)。
  • 服务器进程不能找到空闲缓冲区。
  • 删除或截断表。
  • 使表空间正常脱机(ALTER TABLE ... OFFLINE NORMAL)。
  • 开始表空间备份(ALTER TABLESPACE ... BEGIN BACKUP)。

 

4,LGWR(Log Writer)

LGWR 用于将重做日志缓冲区所记载的全部内容写入到重做日志。当执行DML 或DDL 语句时,服务器进程首先将事务变化写到重做日志缓冲区,然后才会修改高速缓存。注意,Oracle  总是“先日志后修改”(先记载变化后修改数据)。因此,在将脏缓冲区数据写入到数据文件之前,Oracle 首先将事务变化写入到重做日志。也就是说,在DBWR 工作之前,LGWR 首先将事务变化写入到重做日志。

在以下情况中LGWR 进程会开始工作:

  • 提交事务(COMMIT)。
  • 每隔三秒钟。
  • 当重做信息超过1M 时。
  • 重做日志缓冲区已有1/3 填满。
  • 在DBWR 进程将脏缓冲区写入到数据文件之前。

 

5,CKPT(Checkpoint Process)

CKPT 用于发出检查点,并且检查点会同步数据库的数据文件、控制文件和重做日志。当发出检查点时,后台进程CKPT 会将检查点时刻的SCN(System Change Number)写入到控制文件和数据文件头部,同时会促使后台进程DBWR 将所有脏缓冲区数据写入到数据文件中。

当发出检查点时,不仅后台进程CKPT 和DBWR 要开始工作,而且LGWR 也会将重做日志缓冲区写入到重做日志,从而确保了数据文件、控制文件和重做日志的一致性。

在以下情况中CKPT 会开始工作:

  • 日志切换。
  • 关闭例程(SHUTDOWN ABORT 除外)。
  • 手工检查点操作(ALTER SYSTEM CHECKPOINT)。
  • 由初始化参数fast_start_mrrt_target 强制发出检查点。

 

6,ARCH(Archive Process)

ARCH 用于将重做日志的事务变化复制到归档日志中。

在ARCHIVELOG 模式下才会被启动。

默认只有两个进程(ARC0、ARC1),通过初始化参数log_archive_max_processes 可以最多定义10个归档进程(ARC0~ARC9)。

在ARCHIVELOG 模式下,当进行日志切换时会自动生成归档日志。

通过查询动态性能视图v$bgprocess ,可以显示所有后台进程信息。

SQL> select name, description from v$bgprocess where paddr<>'00';

NAME  DESCRIPTION
----- ----------------------------------------------------------------
PMON  process cleanup
PSP0  process spawner 0
MMAN  Memory Manager
DBW0  db writer process 0
LGWR  Redo etc.
CKPT  checkpoint
SMON  System Monitor Process
RECO  distributed recovery
CJQ0  Job Queue Coordinator
QMNC  AQ Coordinator
MMON  Manageability Monitor Process
MMNL  Manageability Monitor Process 2

已选择12行。