large pool用来分配大内存快,用来处理shared pool更大的内存,是做备用池,用以缓解oracle对共享池和pga区内存的使用压力
使用large pool的对象主要有:
多线程服务器MTS:在SGA的large_pool中分配UGA
语句的并行查询parallel exection:用作进程间的消息缓冲器
恢复管理器rman:备份时用作磁盘io缓冲器
查看large_pool参数默认设置值,为0则应表示ASMM已开启
show parameter large_pool_size
查看large_pool当前运行期间ASMM实际分配大小
select pool,sum(bytes) from v$sgastat group by pool;
java pool
oracle在内核中加入了对java的支持,该缓冲区专为java开发和应用所设,若不用java程序则没有必要改变该缓冲区的默认大小
查看java_pool参数默认设置值,为0则应表示ASMM已开启
show parameter java_pool_size
查看Java_pool当前运行期间ASMM实际分配大小
select pool,sum(bytes) from v$sgastat group by pool;
streams_buffer
用于对流复制进行缓冲
查看大小
show parameter streams_pool_size;
redo_log_buffer
对数据库的任何修改都按顺序被记录在该缓冲区中,然后由LGWR进程根据条件更改信息批量写入磁盘上的redolog文件,以节省磁盘io,该缓存不参与ASMM的动态管理,不能自动调整大小
查看redo_log_buffer大小
show parameter log_buffer;
select name,bytes from v$sgastat where name='log_buffer';
手工修改redo_log_buffer大小
alter system set log_buffer=6000000 scope=spfile;
oracle进程:
后台进程
服务器进程
用户进程
后台进程:
后台进程是oracle的程序,用来管理数据库的读写,恢复和监视等工作,服务器进程主要是通过后台进程和用户进程进行联系和沟通,并由后台进程与用户进程进行数据交换
查看已在运行的后台进程
$ps -ef |grep ora_
sql>select name,description from v$bgprocess where paddr != '00';
DBWn(数据库写入进程)
将数据缓冲区的数据写入数据文件,是负责数据缓冲区管理的一个后台进程。默认数量是1个,最多10个。
数据缓冲快写盘时,要将每个数据缓存快的内容写入到数据文件内的指定快中,因这些指定快通常都是不连续的,因此写这些快称为离散写,因磁头须要反复定位数据文件内的各指定快,而磁头反复定位非常耗时,因此离散写比较慢
DBWn的作用:
通过LRU算法管理数据缓冲区,将修改后的dirty缓冲区数据写入数据文件,维护数据缓冲区的clean,以便用户进程总能够找到足够的空闲缓冲区
通过延迟写数据来优化磁盘io读写
LGWR
将日志数据从日志缓冲区写入redolog日志文件组,日志缓冲块写盘时,每个日志缓冲块的内容无需写入到指定快,而只需顺序写入到日志文件内的每个快中即可,因此称为顺序写,顺序写速度较快。
LGWR的作用·:
管理·日志缓冲区,将数据库的更改·写入日志文件,以便维护数据的一致性,并为数据丢失后进行恢复提供依据
通过延迟写日志来优化磁盘io读写
关于事务
‘一个事务生成一条或多条重做记录,一个重做记录包含多个改动向量change vector,用用日志数据进行恢复时,以事物为最小单位进行