二、Oracle数据库体系结构
2017-11-03 00:59:42 58 举报
AI智能生成
二、Oracle数据库体系结构
作者其他创作
大纲/内容
物理存储结构
数据文件(.DBF) —— 多个
:存储数据库数据的文件(记录、索引、数据字典信息等)
数据文件的读取/存储过程:
(重做)日志文件(.LOG) —— 成组
:记录数据库修改信息
日志文件的读取/存储过程:
日志文件组
日志成员(文件)
文件1, 2 ……. n
日志成员(镜像)(存储在不同磁盘中)
镜像1,2 …… n
当一个日志组被填满时,发生日志切换,切换到下一个文件组
控制文件(.CTL) —— 3个
:描述数据库的物理结构,安装时自动创建
参数文件
:记录Oracle数据库的基本参数信息,包括数据库名、控制文件路径、进程等
逻辑存储结构
表空间1
在物理上 → 数据文件
1个表空间 → 1~n个数据文件;1个数据文件 → 1个表空间
……
表空间n
段1
数据段 —— 存储表中数据
索引段 —— 存储表的索引信息
临时段 —— 存储排序/汇总时生成的临时表数据
LOB段 —— 存储大型对象数据(CLOB/BLOB等)
回退段 —— 存储用户修改前的数据值
……
段n
盘区1
……
盘区n
数据块1
管理存储空间的最基本单元
最小的逻辑存储单元
组成部分:块头部、表目录、行目录、空闲空间、行空间
……
数据块n
内存结构
系统全局区(SGA) —— 一组系统分配的共享内存区域
数据缓冲区 —— 存储从数据文件读取的数据
脏缓存块 —— 保存已被修改过的数据
空闲缓存块 —— 无任何数据
命中缓存块 —— 正在被用户访问的缓存块
日志缓冲区(循环使用) —— 存储数据库修改信息
共享池
库缓存区 —— 缓存已解析并执行过的SQL或PL/SQL程序代码,提高执行效率
数据字典缓冲区 —— 包含数据字典中的表、列定义和权限
用户全局区 —— 包含用户的会话信息
程序全局区(PGA) —— 包含单独用户/服务器数据和控制信息的内存区域
排序区 —— 为排序显示的SQL语句提供内存空间
大池 —— 数据库管理员(DBA)能够配置的可选内存空间
Java池 —— Java语言语法分析区
实例进程结构
实例 —— 内存区域+后台进程
类型
单进程实例 —— 一个进程执行全部Oracle代码
多进程实例 —— 多个进程执行代码的不同部分
用户进程
服务器进程
后台进程
数据库写入进程(DBWR)—— 将缓冲区中的数据写入数据文件
日志写入进程(LGWR)—— 将重做日志缓冲区中的日志记录写入日志文件组
检查点进程(CKPT)—— 执行检查点、更新控制文件、启用DBWR将脏缓存快数据写入数据文件
系统监控进程(SMON)—— 数据库恢复、回收临时表空间/段中不再使用的存储空间、合并空闲空间碎片
进程监控进程(PMON)—— 进程故障时执行进程恢复、清理内存储区、释放进程资源
归档进程(ARCH)—— 归档模式下,将写满的日志文件复制到指定设备中,避免被覆盖
恢复进程(RECO)—— 在分布式数据库环境自动恢复失败的分布式事务
封锁进程LCKn
调度进程(Dnnn)—— 在共享服务器操作模式下,将用户进程分配给空闲的服务进程、将处理结果返回组用户进程
操作模式 —— 数据库为用户进程提供服务的方式
专用服务器操作模式 —— 为每个连接到实例的用户进程启动专门的服务进程
共享服务器操作模式 —— 大量用户进程由少量服务进程提供服务
数据字典
:由一系列基础表和视图组成,保存数据库及其所有对象的基本信息
数据字典视图
USER视图
ALL视图
DBA视图
数据/日志文件读取/存储过程+DBWR、LGWR工作过程
0 条评论
下一页
为你推荐
查看更多