V$BGPROCESS
displays information about the background processes.
Column | Datatype | Description |
---|---|---|
|
|
Address of the process state object |
|
|
Process state object serial number |
|
|
Name of this background process |
|
|
Description of the background process |
|
|
Error encountered |
SQL> col description for a50
SQL> set linesize 200
SQL> select * from v$bgprocess where paddr <> '00' order by name;
PADDR PSERIAL# NAME DESCRIPTION ERROR
---------------- ---------- ----- -------------------------------------------------- ----------
0000000C220A3F88 1 ACMS Atomic Controlfile to Memory Server ##########
0000000C5A014930 2 ARC0 Archival Process 0 ##########
0000000C2A048230 1 ARC1 Archival Process 1 ##########
0000000C220AB490 1 ARC2 Archival Process 2 ##########
0000000C5A0159E8 1 ARC3 Archival Process 3 ##########
0000000C5A0127C0 1 ASMB ASM Background ##########
0000000C2A065650 244 CJQ0 Job Queue Coordinator ##########
0000000C5A011708 1 CKPT checkpoint ##########
0000000C3202F718 1 DBRM DataBase Resource Manager ##########
0000000C32032940 1 DBW0 db writer process 0 ##########
0000000C2A043F50 1 DBW1 db writer process 1 ##########
PADDR PSERIAL# NAME DESCRIPTION ERROR
---------------- ---------- ----- -------------------------------------------------- ----------
0000000C320307D0 1 DIA0 diagnosibility process 0 ##########
0000000C5A00D428 1 DIAG diagnosibility process ##########
0000000C5A00E4E0 1 DSKM slave DiSKMon process ##########
0000000C220AE6B8 1 EMNC EMON Coordinator ##########
0000000C220A2ED0 1 GEN0 generic0 ##########
0000000C5A016AA0 2 GTX0 Global Txn process 0 ##########
0000000C32035B68 2 LCK0 Lock Process 0 ##########
0000000C220A71B0 1 LGWR Redo etc. ##########
0000000C220A5040 1 LMD0 global enqueue service daemon 0 ##########
0000000C220A60F8 1 LMHB lm heartbeat monitor ##########
0000000C2A041DE0 1 LMON global enqueue service monitor ##########
PADDR PSERIAL# NAME DESCRIPTION ERROR
---------------- ---------- ----- -------------------------------------------------- ----------
0000000C5A00F598 1 LMS0 global cache service process 0 ##########
0000000C32031888 1 LMS1 global cache service process 1 ##########
0000000C220A9320 1 MARK mark AU for resync koordinator ##########
0000000C5A010650 1 MMAN Memory Manager ##########
0000000C2A0460C0 1 MMNL Manageability Monitor Process 2 ##########
0000000C32034AB0 1 MMON Manageability Monitor Process ##########
0000000C2A0492E8 1 NSA2 Redo transport NSA2 ##########
0000000C2A040D28 1 PING interconnect latency measurement ##########
0000000C5A00C370 1 PMON process cleanup ##########
0000000C3202E660 1 PSP0 process spawner 0 ##########
0000000C2A04A3A0 2 QMNC AQ Coordinator ##########
PADDR PSERIAL# NAME DESCRIPTION ERROR
---------------- ---------- ----- -------------------------------------------------- ----------
0000000C220A8268 1 RBAL ASM Rebalance master ##########
0000000C32038D90 1 RCBG Result Cache: Background ##########
0000000C2A045008 1 RECO distributed recovery ##########
0000000C2A042E98 1 RMS0 rac management server ##########
0000000C2A047178 2 RSMN Remote Slave Monitor ##########
0000000C5A0211D0 1 SMCO Space Manager Process ##########
0000000C320339F8 1 SMON System Monitor Process ##########
0000000C2A068878 110 VKRM Virtual sKeduler for Resource Manager ##########
0000000C2A03FC70 1 VKTM Virtual Keeper of TiMe process ##########
42 rows selected.
SQL>
DBWR
数据写进程 写脏块到数据文件中,如果数据量大跟不上写的速度,这时候可以多个10g 20个11g可以36个,跟你的cpu数量1:1 开多了也能开但影响cpu
怎么开?
看一下决定多少的参数 db_writer_process
SQL>show parameter db_writer_process
NAME TYPE VALUE
———————————— ———– ——————————
db_writer_processes integer 1
DBW0-DBW9 进程的编号
DBWa-DBWj 进程的编号
触发条件:
1 commit肯定会触发
2 databuffer中的脏块超过1/3
3 3s一次触发 DBWR
4 Racping 要求两个机器数据完全一样不允许有脏块
5CKPT LGWR
你就要知道我不够了我加,还有就是什么时候去触发
LGWR
日志写进程
将日志缓存区中的内容写入到日志文件
10 11g LGWR只能有一个 12cLGWR也能有多个
触发条件:
1. commit
当用户进程提交一事务时写入一个提交记录。
2.日志缓存区1/3触发
当日志缓冲区的已满1/3 时,将日志缓冲区输出。
3.日志缓存区1M 平常3M没问题
当 log buffer 达到1MB 时。
4.
每 3 秒将日志缓冲区输出。
5.
当 DBWR 将修改缓冲区写入磁盘时,则将日志缓冲区输出。
Oracle有个机制你要记住:所有我们的不主动提交的数据都是不确定数据
现在都写进去了没commit,把电源了我们的数据时按照新的来还是旧的?
一定是旧的
注意: 当需要更多的日志缓冲区时,LWGR 会在一个事务提交前就将日志项写出,而这些日志
项仅当后续事务提交后才永久化。
Oracle 使用快速提交机制,当用户发出COMMIT 语句时,一条COMMIT 记录立即被放入日
志缓冲区,但相应的数据缓冲区改变被延迟,直到更有效时才将它们写入数据文件。提交时,将
事务赋给一个系统变更号(SCN),它同事务日志项一起被记录在日志中。
CKPT
会下降我们的数据库性能,安全性角度很好的一个东西
你想触发CKPT一个是系统内置
另一个人为如下命令
Alter system sheckpoint;
CPCK就是改变我们的scn
CPCK触发会触发DBWR触发LGWR
三个一起的要玩一块玩
下面三个你管不了
PMON
进程监控进程
清除死进程
重启部分进程
监听的自动注册
注:PMON 进程在用户进程出现故障时执行进程恢复,负责清理存储区和释放该进程所使用的资
源。比如,某个进程死掉了,PMON 要重置活动事务表的状态,释放锁资源,将该故障的进程ID
从活动进程表中移去。PMON 还周期性地检查调度进程(DISPATCHER)和服务器进程的状态,如
果发现这些后台进程死掉,就需要重新启动。PMON有规律地被呼醒,检查是否有需要完成的工作。
SMON
系统监控进程
实例崩溃的自动恢复
回收我们的空间碎片
主要是内存的
注:SMON 进程负责在实例启动时执行实例恢复,并清理不再使用的临时段。在具有并行服务器
选项的环境下,SMON 对有故障的CPU 或实例进行实例恢复。从Oracle 9i 开始,事务回滚操作
的默认行为也是由SMON 来负责处理的。虽然SMON 本身不做恢复操作,而是启用并行进程来
处理,但是它起到整体协调的作用。SMON 进程有规律地被唤醒,并检查是否有工作要完成,如
有需要,就做相应的处理,否则继续休眠。
RECO
11G新加的 这个是分布式进程
DBLINK查
打个比方
两个库 两个用户 update
一个事物操作多个库叫分布式事务
有可能一个数据改完了 另一个出现问题了
这时候提交不了
那你的RECO会把你的都给你回滚了
只不过10的时候不是核心进程 11时是了
RECO 进程是启用分布式选项时才会存在的进程,而且DISTRIBUTED_TRANSACTIONS 参
数大于0。当然,分布式事务在绝大多数系统中是默认安装的,因此一般来说,总是能在数据库
实例中看到这个进程。RECO 进程能够自动解决分布式事务中的故障。一个节点的RECO 后台进
程能够自动连接到包含错误的分布式事务的其他数据库中,在解决了所有的故障后,将这个全局
事务从dba_2pc_pending 等相关的表中删除。
当数据库服务器的RECO 后台进程试图同一远程服务器建立通信时,如果远程服务器不可
用,或者网络连接不能建立,RECO 将在一定时间间隔后自动重连。
ARCH 进程
ARCH 进程将已填满的在线日志文件复制到指定的存储设备。当数据库的日志模式为
ARCHIVELOG 模式并可自动归档时,ARCH 进程才存在。
LCKn 进程
LCKn 进程在具有并行服务器选件的环境下使用,可多至10 个进程(LCK0,LCK1,…,
LCK9),用于实例间的封锁。
Dnnn 进程(调度进程)
Dnnn 进程允许用户进程共享有限的服务器进程(SERVER PROCESS)。没有调度进程时,
每个用户进程需要一个专用服务进程(DEDICATED SERVER PROCESS)。多线索服务器
(MULTI-THREADED SERVER)可支持多个用户进程。如果系统具有大量用户,多线索服务器
可以很好地支持,尤其在客户/服务器环境中。
在一个数据库实例中可建立多个调度进程。对每种网络协议至少建立一个调度进程。数据库
管理员根据操作系统中每个进程可连接数目的限制决定启动的调度程序的最优数,在实例运行时
可增加或删除调度进程。多线索服务器需要SQL*Net 版本2 或更高的版本。在多线索服务器的
配置下,一个网络接收器进程等待客户应用连接请求,并将每一个发送到一个调度进程。如果不
能将客户应用连接到一调度进程时,网络接收器进程将启动一个专用服务器进程,该网络接收器
进程不是Oracle 实例的组成部分,而是处理与Oracle 有关的网络进程的组成部分。在实例启动
时,该网络接收器被打开,为用户连接到Oracle 建立一通信路径,然后每一个调度进程把连接请
求的调度进程的地址传给它的接收器。当一个用户进程作连接请求时,网络接收器进程分析请求
并决定该用户是否可使用一调度进程。如果是,该网络接收器进程返回该调度进程的地址,之后
用户进程直接连接到该调度进程。有些用户进程不能调度进程通信(如果使用SQL*Net 以前的
版本),网络接收器进程不能将此类用户连接到一调度进程。在这种情况下,网络接收器将建立
一个专用服务器进程和一种合适的连接。