体系结构
内存结构 :SGA 和PGA
sga:共享池
用于Sql语句的 解析、编译、运行;由 数据库缓冲区、数据字典缓冲区和用户全局区组成;
数据高速缓存
从数据文件中读入的数据 放在这个 缓存中 ,用于所用用户的共享 ,
修改的数据暂时存放在数据高速缓存中,通过dbwr 进程写入到数据文件中;
重做日志缓存
用于日志信息的暂时存储,当达到一定大小时;通过lgwr进程写入到日志文件中;
Java池
安装java后 为Java程序保留的;用于Java开发
大池
为需要大内存操作时提供的相对的独立内存, 比如 数据库备份和恢复 ,;
pga:用于存储单个用户或服务器和控制信息; 不共享;
分为: 会话区,排序区,游标区,堆栈区;
进程结构:
用户进程:每个客户端链接到数据库时 为每个客户创建的用户进程;
oracle进程: 服务进程:
ServerXXX(sid) 数据库服务进程;
Listenser 数据库监听进程;
isql*plus 为各种终端链接到数据库是的服务进程
DBConsole 为企业管理器开启的进程;
后台进程:
数据写入进程: 将修改过的数据缓冲区的数据写入对应数据文件;
日志写入进程; 重做日志缓冲区的数据写入重做日志文件;
检查点进程; 同步数据文件,日志文件和控制文件,
由于DBWR/LGWR的工作原理,造成了数据文件,日志文件,控制文件的不一至, 这就需要CKPT进程来同步。
归档进程;
系统监视进程;
进程监视进程;
恢复进程;
服务器进程;
调度进程;
存储结构:
逻辑结构:逻辑上划分的系统结构
分为:库----> 表空间-----> 区 --------> 段 ------->块;
物理结构:存储介质中实实在在的各种文件的存储结构
分为: 数据文件,日志文件,参数文件;控制文件;
表空间:表空间是最大的逻辑单元;一个表空间可以包含多个数据文件;
段 :段是用于存储表空间中某种特定的具有独立存储结构的对象的所有数据;
区 :是由物理上连续存放的块构成; 是oracle 存储分配的最小单位;
块 :最小的数据管理单位;是操作系统块的大小的整数倍;
据字典是一些系统表或视图,他存放系统的信息,他包括数据库版本,数据文件信息,表与索引等段信息,
系统的运行状态等各种和系统有关的信息和用户脚本信息。数据库管理员可以通过对数据字典的查询,
就可以了解到Oracle的运行状态。
数据字典包括:
l各种对象的定义信息,包括表、视图、索引、同义词、序列、存储过程、函数、包、触发器以及其他各种对象。
l数据库存储空间的分配信息
l数据库安全信息,包括用户、权限、角色等。
控制文件:一般在 1MB 到 5 MB;
排序区:用于存放排序操作所产生的临时数据和其大小
会话区:用户会话所具有的权限,角色,性能统计信息,
游标区:用于存放游标操作所所产生的数据,
堆栈区:用于保存会话过程中的绑定变量,会话变量等信息。
Oracle 表空间:
SYSTEM表空间:数据库创建时自动创建的系统表空间,用于存放数据字典
SYSAUX表空间:是系统表空间的辅助表空间;
临时表空间 :用来存放临时数据,列如:排序操作的表空间,他的表空间会在下次系统启动的时候全部被释放
撤销表空间 :当数据库进行插入更新删除的时候 ,新的数据被写到原来的数据文件,旧的数据放在回滚段中,
如果需要回滚,那么可以从回滚段将数据在复制到数据文件中,完成数据的回滚,在系统恢复的时候,
回滚段用来回滚;没有被commit 的数据,解决系统的一致性;
归档模式:
排序区:用于存放排序操作所产生的临时数据,它是影响pga 区大小的主要因素;其大小由初始化参数 SORT_AREA_SIZE定义;
会话区:存储用户所具有的权限、角色、性能统计信息
游标区:当运行使用游标时; oracle 会在共享池中为该语句分配上下文区,游标实际是指向该上下文区的指针;
游标区在打开游标是创建,关闭游标时 释放;
堆栈区:保存会话中的绑定变量;会话变量;及sql 语句运行时的内存结构等信息;
参数文件:也称 初始化参数文件, 用于存储SGA,可选的 Oracle 特性和后台进程的配置参数,分 文本参数文件 和服务参数文件
可以使用其中之一来配置例程和数据选项,