ORACEL SQL课程
一、 Where is Data stored?
File DataBase 目的引出: 格式 并发 表头
二、 DBMS: DataBase Management System
RDBMS:
三、 ORACLE的体系架构
A、
架构 Architecture
以上示意图清晰地表明了Oracle的体系结构,在这里加上自己的理解加以总结如下:
Oracle由实例(instance)和数据库(database)组成 --实例:内存(SGA)和后台进程的集合,内存提供了处理的场所,而后台进程相当于工具
--数据库:包含三大文件,数据文件、控制文件和联机日志文件。
实例的组成:
SGA通用的配置中包含:共享池(shared pool),数据库缓冲区(database buffer),日志缓冲区(log buffer)。而另一些配置模式下还可以包含:大池(large pool),JAVA池(java pool),流池(stream pool)。
共享池:由库缓存(library cache,用于缓存最近使用的SQL语句和PLSQL语句)和数据字典缓存(dictionary cache,用于缓存最近使用的数据字典信息,包括表信息,列信息,权限信息)。
数据库缓冲区:用于存放最近使用的数据,待处理的数据被存放在这里,通过调用后台进程(DBWR)将处理结果持久化到数据文件或者将数据展示给用户。
日志缓冲区:存放改变了的数据,当数据库执行DML、DDL、
DCL等改变数据的操作时,ORACLE将改变后的数据缓存在这里,并由LGWR将数据写入联机日志文件。
后台进程由必选后台进程
(DBWn,LGWR,SMON,PMON,CKPT)和特殊组件后台进程(ARCn,RECO,PSPn,CJQn等)
DBWn:将数据库缓冲区中的数据改变持久化到数据文件 LGWR:将数据库日志缓冲区中的数据持久化到联机日志文件中
PMON:监控程序,回收资源
SMON:实例恢复,回收临时段,合并空闲空间 CKPT:触发DBWR将数据写入数据文件,同时更新控制文件和数据文件头。此进程非常重要,是数据库同步的保障。
数据库的组成:
数据文件:用来存储实际的数据,包括数据字典数据、用户业务数据、临时表空间中的临时数据,回退段中的回退数据 控制文件:包含数据库的结构信息 联机日志文件:包含数据库改变了的数据 详细分析如下:
B、 物理结构:(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成)
控制文件:包含维护和验证数据库完整性的必要信息、例如:控制文件用于识别数据文件
和重做日志文件,一个数据库至少需要一个控制文件。
数据文件:存储数据的文件。
重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用。
数据恢复:一个数据库至少需要两个重做日志文件。 参数文件:定义Oracle 例程的特性,例如它包含调整SGA 中一些内存结构大小的参数 ;
归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。
密码文件:认证哪些用户有权限启动和关闭Oracle例程 C、逻辑结构(表空间、段、区、块)
表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。
段:是对象在数据库中占用的空间
区:是为数据一次性预留的一个较大的存储空间 块:ORACLE最基本的存储单位,在建立数据库的时候指定
D、内存分配(SGA和PGA)
SGA:是用于存储数据库信息的内存区,该信息为数据库
进程所共享。
它包含Oracle 服务器的数据和控制信息, 它是在Oracle 服务器所驻留的计算机的实际
内存中得以分配,如果实际内存不够再往虚拟内存中写。
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正
相反; PGA 是只被一个进程使用的区域,PGA 在创建进程时分配, 在终止进程时回收;
E、后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务
进程、用户进程)
数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件
系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复
进程监控:负责在一个Oracle 进程失败时清理资源 检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件
和数据文件中的数据库状态信息。