一.oracle服务器总体结构
在结构上,oracle服务器由实例和数据库两大部分组成
实例(instance)是一组内存结构和oracle后台进程的集合,数据库在物理上是由多个操作系统文件组成,
主要包括数据文件,控制文件,重做日志文件。
oracle服务器=实例+数据库
二.oracle实例
oracle实例由内存结构(sga)和oracle后台进程组成。
oracle数据库实例(instance)=内存结构(SGA)+后台进程
oracle的内存结构统称为sga(system global area),主要数据库告诉缓冲区(database buffer cache),
重做日志缓冲区(redo log buffer)和共享池(shared pool)三个部分组成。
三.oracle数据库
包含了用于存放数据的数据文件(data files),用于保护数据不丢失的练级重做日志文件(online redo files)和
用于连接oracle实例和数据库所需要的控制文件(controlfiles).
1.data buffer cache的划分
a.脏缓冲区(dirty buffer);
当数据库发生dml操作时,会对缓冲区内容进行修改,这样缓冲区的内容就和对应的数据文件不一致,这是
缓冲区标识为脏缓冲区
b.自由缓冲区(free buffer);
当脏缓冲区的内容被写入数据文件后,因为该缓冲区与数据文件中内容一致,所以称为自由缓冲区
c.忙缓冲区(pinned buffer)
是指服务器进程正在访问的缓冲区
2.使用多个缓冲区
用户可一直定方案对象(schema object)(表,簇,索引,及分区)使用相应的缓冲池,以便控制数据被移除缓存区的时机。
a.保留缓冲区(keep buffer cache);用来保留在内存中最有可能重用的对象。
保留这些对象将减少I/O操作,指定db_keep_cache_size参数的值配置。
b.循环缓冲区(recycle buffer cache):用来保留被重用机会不大的内存块。
指定db_recycle_cache_size参数的值配置该缓冲区的大小、
c.默认缓冲区( default buffer cache),始终存在的池,它相当于一个实例的数据库告诉缓冲区中除保留缓冲区和循环缓冲区之外的部分。
指定参数db_cache_size.