Oracle 11g体系结构
Oracle 11g 体系结构概述
基本概念
数据库database:一个数据集合,数据存放在数据文件中;
实例instance:通俗的讲,实例就是操作数据库的一种手段,也称作服务器,是用来访问数据库文件集的存储结构和后台进程的集合;一个数据库可以被多个实例访问。
体系结构的组成
Oracle数据库
指安装在磁盘上的Oracle数据库文件和相关的数据库管理系统(DBMS)的集合,主要包括以下几种文件:
数据文件(Data files)
控制文件(Control files)
重做日志文件(Redo log files)
初始化参数文件(Paramter file)
口令文件(Password file)
归档重做日志文件(Archived log files)等
Oracle实例
- 实例:是连接库的入口,仅打开并连接至一个数据库,包括后台进程和内存进程;
- 后台进程包括以下几种进程:
a) 数据库写入进程(DBWn)
b) 日志写入进程(LGWR)
c) 日志归档进程(ARCn)
d) 检查点进程(CKPT)
e) 系统监控进程(SMON)
f) 进程监控进程(PMON) - 内存结构组织称为系统全局区(System Global Area,SGA)。SGA是由所有用户进程共享的一块区域。主要包括以下几方面:
a) 数据库缓冲存储区(Database Buffer Cache);
b) 重做日志缓冲区(Redo Log Buffer);
c) 共享池(Shared Pool);
d) Java池(Java Pool);
e) 大型池(Large Pool)等。
Oracle用户环境
- 指用户进程发布并执行SQL语句的用户环境,包括以下三种:
a) 用户进程(User process);
b) 服务器进程(Server process);
c) 程序全局区(Program Global Area,PGA); - 当用户连接到Oracle服务器时,Oracle便创建一个服务器进程与之交互,并代表该用户进程完成与Oracle数据库间的交互;
- 程序全局区PGA是用户专用的内存结构,存储该用户连接期间与SQL语句执行相关的信息。
Oracle 服务器的内存结构
系统全局区(System Global Area,SGA)
一组共享内存结构,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。主要包括数据库缓冲存储区、重做日志缓冲区、共享池、大型池、Java池等。
数据库缓冲存储区
- 用于存放最近访问的数据块;
- 大小由初始化参数定义;
- 采用LRU(Least Recently Used,最近最少使用)算法管理数据库缓冲存储区;
重做日志缓冲区
- 用于存放数据进行的所有修改;
- 大小由初始化参数定义;
- 当重做日志缓冲区被添加满时,由日志写入进程把重做日志缓冲区的内容写到磁盘的重做日志文件中保存。
共享池
- 用于存放最近执行的SQL语句(库高速缓存)和数据字典信息(数据字典高速缓存);
- 大小由初始化参数定义,可动态变化;
- 其大小影响数据库的性能。
大型池
- 为大的内存需求提供内存空间;
- 大小由初始化参数LARGE_POOL_SIZE定义。
Java池
- 用于存放Java代码、Java语句的语法分析表、Java语句的执行方案和支持Java程序开发;
- 大小由初始化参数JAVA_POOL_SIZE定义。
程序全局区(Program Global Area,PGA)
指用户进程连接到数据库并创建一个会话时,由Oracle服务器进程分配的专