Oracle 11G体系结构
Oracle三个重要概念
实例(instance) | 一组Oracle后台进程以及在服务器中分配的共享内存区域 |
数据库(databas) | 由基于磁盘的数据文件、控制文件、日志文件、参数文件和归档日志文件等组成的物理文件集合 |
数据库服务器 (database server) |
管理数据库的各种软件工具(如SQLPLUS、OEM等)和实例及数据库三个部分 |
逻辑存储结构
数据块 ∈ 数据区间 ∈ 数据段 ∈ 表空间 ∈ 数据库(由小至大)
(Data Blocks)∈(Extent) ∈ (Segment)∈(TableSpace)∈ (DB)
1.数据块
数据块Oracle逻辑存储结构中最小的逻辑单位,也是数据库输入输出中最小的存储单位
2.数据区
一个或多个数据块组成一个数据区
3.段
一个或多个数据区组成数据段
段是为特定的数据对象(如表、索引、回滚等)分配一系列数据区
4.表空间
表空间是数据库的最大逻辑划分区域,任何数据对象在创建时都必须被指定存储在某个表空间中。
每个数据库至少有一个表空间(即SYSTEM表空间),表空间的大小等于所有从属于它的数据文件大小的总和。
(1)SYSTEM表空间------系统表空间
(2)SYSAUX表空间------SYSTEM的辅助表空间
(3)UNDO表空间----------用于存储撤销信息的表空间
(4)USERS表空间--------用户表空间
物理存储结构
Oracle物理结构包含了数据文件、日志文件、控制文件、服务器参数文件和密码、警告、跟踪文件等等
主要介绍前三种文件
1. 数据文件:Oracle数据库在逻辑上由表空间组成,每个表空间可以包含一个或多个数据文件,一个数据文件只能隶属一个表空间
2.控制文件:控制文件是一个二进制文件,它记录了数据库的物理结构,其中主要包括数据库名、数据文件与日志文件的名字和位置、数据库建立日期等信息。
一个控制文件只能隶属一个数据库。数据恢复时也要使用控制文件
3.日志文件:日志文件的主要功能是记录对数据所作 的修改对数据库所作的修改几乎都记录在日志文件中。
在日志文件上可以随时读取原始记录以恢复某些数据。
日志线程由若干“日志组”构成,而每个日志组又由一个或者多个日志文件构成。
默认情况下Oracle不采用归档日志文件---------------应为归档日志文件会产生更多日志文件,非归档日志文件当日志文件读满时重新开始覆盖不产生新文件。
Oracle 11G 服务器结构
SGA随着数据库实例的启动而加载到内存中,当数据库实例关闭时,SGA区域也就消失了
概念
1.高速数据缓存区
脏数据区:已被修改的数据
空闲区:可被写入数据
保留区:正在用户访问,明确保留以作为将来使用的数据块
2.重做日志缓存区
日志信息在写入 重做日志之前,首先放到重做日志缓冲区中
3.共享池
库高速缓存(library cache)
共享SQL区:存放SQL或PL/生SQL语句的语法分析结果和执行结果
私有SQL区:存放SQL语句中的绑定变量环境和会话等信息
字典高速缓冲区
存放Oracle系统内部管理所需要的数据字典信息,如用户名,数据对象和权限等
4.大型池
5.Java池
6.流池
数据库与数据库之间进行信息共享
程序全局区(PGA)
各个服务进程的PGA的总和即为实例的PGA的大小
1.私有SQL区
静态区:在会话过程中保持不变,只有当会话结束时,静态区才会被释放
动态区:在整个会话过程中是不断变化的,一旦SQL语句指定完毕,即使会话还没有结束动态区就被释放掉
2.会话区
会话区用于存放用户的会话信息(如登陆用户名)
如果数据库出于共享服务器链接模式下,则会话区将位于SGA中而不是PGA中