本文为对Oracle数据库系统的体系结构的一些归纳总结。基本概念实例:一组Oracle后台正在运行的程序以及在服务器分配的共享内存区
数据库: 保存数据的一些文件集合
完整Oracle数据库系统的组成:实例+数据库
系统全局区(SGA):Oracle中很大的一块内存块
操作实现原理: 1、用户 —-> 实例 —-> 数据库; 2、数据库 —-> 实例 —-> 用户
服务器处理请求方式 = 专用服务器连接 + 共享服务器连接
专用服务器连接:每个用户请求一个专用服务器进程为其提供服务。二者一对一联系且“同生共死”
共享服务器请求:数据库保持一定数量的服务器进程。当用户请求服务时,首先连接到一个特殊进程【调度程序】,其次该程序再为每个用户分配服务进程以提供服务。逻辑存储结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20|---数据库1
|---表空间1
|---段1
|---盘区1
|---数据块1 #数据块:存储空间的最小单元,也是执行I/O操作的最小单位
|---数据块2 #数据库 = 头部信息区(快头部 + 表目录 + 行目录) + 存储区(空闲空间 + 行空间)
...
|---数据块n
|---盘区2 #盘区: 存储分配的最小单位,当一个盘区空间用完后,系统自动分配新盘区
...
|---盘区n
|---段2 #段:只属于一个特定的数据库对象,分为几种类型: 数据段 | 索引段 | 临时段 | 回退段 | LOB段
...
|---段n
|----表空间2 #表空间分类: SYSTEM表空间(存储数据字典和内部系统表基表) | 撤销表空间 | 临时表空间
....
|----表空间n
|--数据库2
...
|--数据库n物理存储结构
1、物理存储结构 = 数据文件 + 控制文件 + 其他文件
2、文件操作:读取文件时先从数据缓冲区读取,或没有成功,则读取文件同时保存一份至数据缓冲区;修改数据时先修改保存至数据缓冲区,之后再由后台进程将数据写入数据文件逻辑存储结构与物理存储结构关系
一个表空间由一个或多个数据文件组成 ==> 表空间= 数据文件之和
增大存储空间(表空间)方法:追加新的数据文件
扩大现有的数据文件或让数据文件的大小自增实例的内存结构
内存结构 = 系统全局区(SGA) + 程序全局区(PGA)
1、SGA: 所有用户共享的内存区域
2、SGA = 数据缓冲区 + 共享池 + 重做日志缓存 + Java池 + 大型池等
3、PGA: 保存特定程序服务进程数据和控制信息的内存结构,结构非共享,只有特定的服务进程才能访问
4、PGA = 私有SQL工作区 + 会话内存区数据字典
1、是数据库系统的核心组件,任何用户都无法对其进行修改,唯有Oracle系统可以负责
2、用户所适应到的数据字典视图大致分为三类USER视图: 以”USER_”开头的视图,尽自己可见
ALL视图: 以”ALL_”开头视图,本人也可见
DBA视图: 以”DBA_”开头视图,记录了所有信息