--==================================
--Oracle实例和数据库(Oracle体系结构)
--==================================
一、Oracle实例
Oracle Server:
一个Oracle Server由一个Oracle实例和一个Oracle数据库组成。
即:Oracle Server = Oracle Instance + Oracle Database
Oracle实例:
包括了内存结构(SGA)和一系列后台进程(Background Process),两者合起来称为一个Oracle实例
即:Oracle Instance = SGA + Background Process
二、Oracle内存结构
包含系统全局区(SGA)和程序全局区(PGA)
即Oracle Memory Structures = SGA + PGA
SGA由服务器和后台进程共享
PGA包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA正相反。PGA是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收,即由服务器进程产生。
1.SGA
系统全局区SGA,SGA = 数据缓冲区+ 重做日志缓冲区+ 共享池+ 大池+ Java 池+ 流池
ORACLE 10G 引入了ASMM(自动共享内存管理),DBA只需设置SGA_TARGET,ORACLE就会自动的对共享池、JAVA池、大池、数据缓冲区、流池进行自动调配。取消自动调配就是sga_target设为。
数据缓冲区(Database buffer cache):存储从数据文件中获得的数据块的镜像
重做日志缓冲区(Redo log buffer):对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR进程将它写入磁盘,大小由LOG_BUFFER决定
共享池(Shared pool):是SGA中最关键的内存片段,共享池主要由库缓存(共享SQL区和PL/SQL区)和数据
字典缓存组成,它的作用是存放频繁使用的sql,在有限的容量下,数据库系统根据一定的算法决