用户进程
ps –elf | grep oracleorcl|grep –v grep
进程
ps –elf |grep oracleorcl
守护进程
ps –elf |grep oha
大池:在sga中,大池是一个可选的缓冲区域,管理员可以根据需要对其进行配置,在大规模输入输出及备份过程中需要大池作为缓存空间,例如,大数据操作、数据库备份与恢复之类的操作。
java池:java池是一个可选的缓冲区,但是在安装java或者java程序时必须设置java池,它用于编译java语言编写指令。
五大核心进程:
dbwn进程:用来将buffer cache中的脏数据写入到硬盘中数据文件中。
什么是脏数据,例如我执行如下语句
sql> update emp setsal=sal+100;
此时修改过的数据存放在内存中,并没有保存到硬盘上的数据文件中,这些数据缓存在buffer cache中,该事务还没有提交(commit),这样修改过还没有写入硬盘数据文件的数据我们称之为脏数据。其实此时在打开一个会话,使用scott用户连接查看emp表中数据是未修改过的数据。所以在oracle中这样的操作是异步写入,多个进程可以同时写入,多个账户就会有多个dbwn进程,其实进程名叫dmw,后面的n是产生的进程标识
sql> update scott.emp setsal=sal+100;
已更新14行。
sql>
lgwr:日志写入进程只有一个
当用户commit(提交事务)时触发lgwr进程
当red log buffer空间的三分之一空间被使用完时会触发lgwr进程
把脏数据写入磁盘之前,该lgwr进程将日志信息先写入到日志文件中,每隔3秒中执行这样的动作。
lgwr进程不能有多个,因为日志是顺序是写入的,不能做并行写入,否则无法做数据恢复。
ckpt进程:检查所有数据文件和控制文件的头部是否一致,是确保在数据缓冲区中所有修改过的数据块都被写入到数据文件中的一种机制,就是确保数据完整性的一种机制。但检查点完成后,ckpt进程负责更新数据文件和控制文件的头部信息,并保存检查点信息,以保证数据库日志文件和数据文件的同步。其原理是在数据库恢复时,只需找到ckpt保存的最后一次检查点,就可以根据它确定在日志文件中恢复数据的起始位置,重新执行之后的日志信息即可。
smon进程:如果数据文件和控制文件头部不一致,就会触发smon进程。在实例启动时smon进程会检查所有数据文件的同步信息与控制文件中记录的检查点信息是否一致,不一致就启动实例恢复操作。其实ckpt进程是给smon进程使用的。