阿本

Oracle数据库体系结构
Oracle数据库体系结构详解首先明确一下学习目标1、简述oracle的逻辑存储结构 2、简述oracle的物理存...
扫描右侧二维码阅读全文
05
2018/10

Oracle数据库体系结构

Oracle数据库体系结构详解


首先明确一下学习目标
1、简述oracle的逻辑存储结构
2、简述oracle的物理存储结构
3、简述oracle实例启动的三个过程
4、简述oracle内存结构
5、简述oracle的5个常用进程

概念图
3.png

1.Oracle逻辑存储结构

Oracle逻辑存储结构是一个抽象的、实际不存在的东西,它从大到小依次由【数据库→表空间→段→区→块】构成
其中表空间是最大的逻辑划分区域,一个表空间只属于一个和数据库,每个表空间由一个或多个数据文件组成,
Oracle自动创建的主要表空间有【system系统表空间、sysaux辅助表空间、undo撤销表空间、users用户表空间、temp临时表空间】。
区是存储分配最小单位,Oracle是以数据区为单位进行存储空间扩展。

2.Oracle物理存储结构

Oracle物理存储结构比较具体直观、用来表述Oracle数据在磁盘上的物理组成情况
它由多种物理文件组成,主要有【数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告日志文件】

3.Oracle实例启动三个过程

①启动到nomount状态,启动数据库实例。
②启动到mount状态,装载数据库文件。
③启动到open状态,打开数据库。

4.Oracle内存结构

QQ截图20181008003712.png
Oracle内存结构由系统全局区(SGA)和程序全局区(PGA)组成
系统全局区(SGA):一组共享的内存结构(称为SGA 组件),其中包含一个OracleDB 实例的数据和控制信息。SGA 由所有服务器进程和后台进程共享。SGA 中存储的数据有高速缓存的数据块和共享SQL 区域等;
程序全局区(PGA):包含某个服务器进程或后台进程的数据及控制信息的内存区域。PGA 是Oracle DB 在服务器进程或后台进程启动时创建的非共享内存。服务器进程对PGA 的访问是独占式的。每个服务器进程和后台进程都具有自己的PGA。
SGA关键组件:
共享池:用于缓存可在用户间共享的各种构造,比如给定SQL 语句的语法分析树和执行计划;
数据库缓冲区高速缓存:从数据库中检索到的数据块是缓存在此,数据块从此内存组件对数据块进行操作,降低了硬盘IO负担,如果用户进程所需的数据在该区域能很找到,我们称之为高速缓存区命中,高的命中率反映出来的效果就是操作反应快,这点很好理解,数据库优化中很有必要考虑这点;
KEEP 缓冲区池:一种专用数据库缓冲区高速缓存,用于长时间在内存中保留数据块。一些频繁使用的数据块可相对长期的保留在此,不至于每次都从硬盘获取,从而优化了数据库的性能;
RECYCLE 缓冲区池:一种专用数据库缓冲区高速缓存,用于从内存中快速回收或删除数据块。相对于KEEP的对立面,很好理解;
nK 缓冲区高速缓存:多种专用数据库缓冲区高速缓存中的一种,用于存放大小不同于默认数据库块大小的数据块。注意默认数据块为8K;
重做日志缓冲区:用于存放有关对数据库所做更改的信息,重做信息在写入磁盘中重做日志文件(即redo文件)前,将缓存在此处。重做日志写入磁盘的频率很高,什么时间什么条件下写都是挺有意思的知识,重做日志文件方面我们计划在后边存储体系章节再讨论学习。
大型池:用于为某些大型进程(例如Oracle 备份和恢复操作)和I/O 服务器进程提供大型内存分配;

5.Oracle 5个常用后台进程

①检查点进程(CKPT),该进程可以用来同步化数据库的文件,它可以把日志中的文件写入到数据库中。
②数据写入进程(DBWR),该服务器进程在缓冲存储区中记录所有的变化和数据,DBWR把来自数据库的缓冲存储区中的脏数据写到数据文件中,以便确保数据库缓冲存储区中有足够的空闲的缓冲存储区。脏数据就是正在使用但是没有写到数据文件中的数据。
③日志写入进程(LGWR),把重做日志缓冲存储区中的数据写入到重做日志文件中。
④系统监控进程(SMON),是在数据库系统启动时执行回复工作的强制性进程,实例复原、调度的操作。
⑤进程监控进程(PMON),用于监控其它进程的状态,当Oracle启动失败,清除失败进程,释放资源。

Last modification:October 8th, 2018 at 12:43 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment