oracle 结构讲解,Oracle 数据库体系结构解析
发布日期:2021-06-24 15:57:51 浏览次数:3 分类:技术文章

本文共 1672 字,大约阅读时间需要 5 分钟。

Oracle 数据库体系结构图 如下图所示,

ea813ba891ee5d6aee05975a01a99565.png

纵观上图可知,Oracle数据库服务器大致分为两个主要部分 既1.Oracle instance(数据库实例 上半部分)2.database(数据库 下半部分)。

用户不能直接连接到数据库,而是用户先发出一个用户进程, 用户进程和Oracle服务器发出的服务器进程交互,然后服务器进程再和实例交互,最后实例和底层数据库交互,从而实现用户和数据库的交互。具体过程看下图:

778c5d7f056992c48fe6fd180035688e.png

下面详述体系结构中各个组成部分的具体功能和特点

1.首先先有的整体的认识:

oracle 服务器=实例+数据库

实例=SGA(实例内存)+后台进程

内存=SGA+PGA

SGA=database buffer cache (数据库高速缓存区缓存)+share pool +redo log buffer

2.实例内存SGA结构:前三个是必选的,其余是可选的。

1)database buffer cache(数据库高速缓存区缓存) :是用来存放执行SQL的工作区域 (1)存储从数据文件中获得的数据块的镜像(2)当获取和更新数据的时候能够大幅度提高性能,因为数据库块的镜像会保存一段时间,等下次再执行有关这个块的操作时,可直接在缓存区操作(3)能够动态调整大小,也可以对其进行自动管理。

2)Redo log buffer (在线日志缓冲区): ()记录所有数据库的块的改变,主要用于恢复,大小由log_buffer 决定, 在对数据库块进行操作之前,会把所做的所有操作记录这里。

3)share pool (共享池):包括library cache (库高速缓冲区)和database dictionary cache(数据字典缓存)  ,前者主要存储最近使用的SQL和pl/sql 语句的信息(存一次 多次使用,防止硬解析,) 后者主要存储最近使用的定义,如表、索引、列、用户权限、和其他数据库对象。

4)Large pool :  是系统全局区的一个可选的部分,是共享服务器的会话内存,以减轻在共享池中的负担,可动态的改变大小,也可以自动管理。

5)Java pool:   java 命令的分析,可动态的改变大小,也可以自动管理

6)Stream pool : 流相关的数据在流池中,提高缓存效果。

3.接下来介绍实例后台进程:

1) pmon (进程检测进程) :当会话异常终止时 清除失败的进程 包括 回滚事务、释放锁、动态注册监听器,

2) Smon (系统检测进程):实例恢复(前滚所有重做日志中的改变、回滚没有提交的事务),释放临时表空间。

3) DBWn(数据写进程): 将数据库高速缓存区缓存中的脏块,刷新到磁盘数据文件中,  写的条件:1,发生检查点2,脏缓存到达极限值(1/4)、没有可用的缓存区时。

4) LGWR(日志写进程)将redo log buffer 中的redo 刷新到磁盘日志文件中,  写的条件:1,commit 的时候,2.达到1/3满时,3.大小达到1M时,4.每搁三秒 5.在DBWR进程写数据之前。

5) CKPT (检查点进程) : 给dbwn 信号,使它开始写脏块。更新数据文件头和控制文件,(就是把scn号更新为最新的)3秒一次。  常说的一致性 要保证三个scn 号一致,包括数据文件头的scn号,control files 记录数据文件头的scn号,control files 记录的总的scn号。检查点进程 触发的越快,DBWR 写的就越快,这样内存中的缓存区脏块就越少,进而恢复实例所用的时间就会越少,但是频繁的I/O导致性能下降,所以性能和速度是矛盾的;

6) ARCn (归档进程):将联机重做日志文件归档到(也可以理解为复制)归档日志文件 ,如果开启了归档模式  重做日志文件 一般分为两个组,这两组是循环复写的,一个组用来记录对数据库的修改,另一组进行归档。但是如果记录修改的那组已经写满,这样本来该再去写另一组,但是另一组还没有完成归档,这就会出问题,数据库夯住了。。

转载地址:https://blog.csdn.net/weixin_33682804/article/details/116352018 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:merger oracle,merger oracle 函数
下一篇:java静态方法是不是成员方法,Java静态变量与静态方法与成员变量成员方法的区别...

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月18日 17时40分35秒