文章目录
一、哪些后台进程杀死会导致数据库重启
-
CKPT:检查点进程,checkpoint 检查点,检查点事件的责任是:标志DBWR进程把在SGA中所有已经改变的数据(包括提交和未提交数据)写到数据文件上;更新控制文件的检查点信息;更新数据文件头部的检查点信息。 检查点可提高效率。因为所有到检查点为止的变化的数据都已经写入数据文件中,在实例恢复时检查点之前的重做日志记录就不再需要,实例的恢复速度就加快了。
-
DBWr:负责将database buffer cachce中的脏数据写到数据文件。DBWR在下列情况下将database buffer cache中的脏数据写到数据文件的8种情况:当脏快达到database buffer cache 容量的1/3;所设定的时间间隔已到(超时);当有进程需要数据库高速缓冲区却找不到空闲缓冲区时,也就是没有空闲的buffer cache;checkpoint发生时;某个表被删除或截断时;某个被表空间被设置为只读状态时;对某表空间进行联机备份时;某个临时表空间被设置为只脱机状态或正常状态等,这些关于表空间和表的实际上是发生了检查点导致DBWr发生。
-
LGWr:LOG write 负责将redo log buffer记录顺序写入重做日志文件。LGWR在下列情况下将重做日志缓冲区记录(内存)顺序写入重做日志文件(外存)中5种情况:
某个事务被提交时;重做日志缓冲区中变化记录超过1M;当重做日志缓冲区中所存记录已经超过缓冲区容量的三分之一时;在DBWR将数据库高速缓冲区中修改过的数据块写到数据文件之前;每3秒。
-
PSP0:进程生成器,生成各个后台进程。
-
VKTM:资源管理进程里面的虚拟调度,这个进程用于提供一个数据库的时钟,每秒更新;或者作为参考时间计数器,这种方式每20毫秒更新一次,仅在高优先级时可用。通过VKTM进程,数据库可以降低和操作系统的交互。
-
DBRM:Oracle资源管理器,为不同会话分配不同的数据库资源,比如IO,内存,CPU等等。
-
ACMS
-
LMD0
-
LMS0
-
RMS0
-
MMAN:内存管理进程,负责内存的动态管理,分配和收回。
-
RBAL:负责协调磁盘组的重新平衡活动(负责磁盘组重平衡)。
-
LCK0
-
GTX0
二、杀死哪些后台进程会导致数据库关闭
-
PMON:进程监控进程,当某个进程崩溃时,如未正常退出qlplus等。PMON负责如下清理工作:回滚用户当前的事务,释放用户所加的所有表一级和行一级的锁,释放用户所有其它资源。同时负责:动态注册监听,清除用户进程、服务器进程。
-
SMON:系统监控进程,如系统崩溃、断电后重新开启时,SMON将自己执行恢复工作。步骤为:执行前滚(ROLL FORWARD),将写入重做日志文件但未写入数据文件中的提交数据写到数据文件中(SCN)前滚完成后立即打开数据库,此时可以登录并使用数据库,这时数据文件中可能有未提交数据,回滚(ROLL BACK)未提交的事务(数据)。SMON还进行回收或组合数据文件中相连的空闲区,释放临时段等磁盘空间维护工作。
-
GEN0:执行SQL和DML所需的任务。
-
LMON
-
ASMB
三、杀死哪些后台进程对数据库没有影响
-
ARCn(自动重启):归档日志进程,最重要的可选后台进程,因为如数据库数据文件丢失或损坏,一般数据库要进行完全恢复,ORACLE数据库需要运行在归档模式。
-
DIAG(自动重启):诊断功能,收集失败进程对应的诊断信息,并生成trace文件。
-
PING
-
DIA0:另一个数据库诊断进程,负责检测Oracle数据库中的挂起(hang)和死锁的处理。
-
LMHB:
-
RECO:分布式数据库恢复:基于2PC分布式协议,允许多个不同的修改实现原子提交,但是在真正提交前,出现网络失败等错误,事务成为一个可疑的分布式事务.此时就需要RECO来负责联系事务协调器来发现协调的结果。在这之前事务会保持未提交状态.当恢复网络或者错误解决后,RECO可能会提交事务,也可能将事务回滚。
-
MMON:与诊断相关的,负责管理一些后台任务.Oracle自动负载仓库(AWR)的核心管理进程,主要负责:定期生成性能快照:默认每小时生成一次AWR快照,用于捕获数据库的性能数据(如SQL执行统计、等待事件、系统负载等)。管理AWR数据的存储:将内存中的性能数据持久化到系统表中(如DBA_HIST_*系列表)。
-
MMNL:与诊断相关,从SGA里面统计信息。如会话的历史信息,刷新输出至数据库表。
-
D000:调度程序 dispatcher process,主要在共享服务器使用的.
-
MARK
-
S000
-
OCF0
-
RSMN
-
O000
-
P000:并行查询从进程。
-
RCBG
-
CJQ0:JOB任务协调进程,负责数据中的JOB的自动执行
-
SMC0:空间管理协调器进程:协调数据库的主动空间管理。
-
QMNC Q000:高级队列进程。QMNC会监视高级队列.并告诉从队列中删除等待消息的"出队进程":已经有一个消息变为可用.它们还要负责队列传播。
-
J000:JOB具体执行进程,接受CJQ0发布的任务。