Oracle数据库体系结构解析

简介:
Oracle  数据库体系结构图 如下图所示,
  纵观上图可知,Oracle数据库服务器大致分为两个主要部分 既1.Oracle instance (数据库实例 上半部分)2.database (数据库 下半部分)。
  用户不能直接连接到数据库,而是用户先发出一个用户进程, 用户进程和Oracle服务器发出的服务器进程交互,然后服务器进程再和实例交互,最后实例和底层数据库交互,从而实现用户和数据库的交互。具体过程看下图:
   下面详述体系结构中各个组成部分的具体功能和特点
  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 (归档进程):将联机重做日志文件归档到(也可以理解为复制)归档日志文件 ,如果开启了归档模式  重做日志文件 一般分为两个组,这两组是循环复写的,一个组用来记录对数据库的修改,另一组进行归档。但是如果记录修改的那组已经写满,这样本来该再去写另一组,但是另一组还没有完成归档,这就会出问题,数据库夯住了。


最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
SQL 数据挖掘 测试技术
南大通用GBase8s数据库:LISTAGG函数的解析
南大通用GBase8s数据库:LISTAGG函数的解析
|
10月前
|
存储 缓存 自然语言处理
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
303 8
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
338 3
|
9月前
|
存储 关系型数据库 数据库
高性能云盘:一文解析RDS数据库存储架构升级
性能、成本、弹性,是客户实际使用数据库过程中关注的三个重要方面。RDS业界率先推出的高性能云盘(原通用云盘),是PaaS层和IaaS层的深度融合的技术最佳实践,通过使用不同的存储介质,为客户提供同时满足低成本、低延迟、高持久性的体验。
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
621 57
|
存储 关系型数据库 MySQL
double ,FLOAT还是double(m,n)--深入解析MySQL数据库中双精度浮点数的使用
本文探讨了在MySQL中使用`float`和`double`时指定精度和刻度的影响。对于`float`,指定精度会影响存储大小:0-23位使用4字节单精度存储,24-53位使用8字节双精度存储。而对于`double`,指定精度和刻度对存储空间没有影响,但可以限制数值的输入范围,提高数据的规范性和业务意义。从性能角度看,`float`和`double`的区别不大,但在存储空间和数据输入方面,指定精度和刻度有助于优化和约束。
2022 5
|
SQL 存储 Oracle
南大通用GBase 8s数据库游标变量解析:提升数据库操作效率
南大通用GBase 8s 数据库游标变量解析:提升数据库操作效率
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
负载均衡 Oracle 网络协议
Oracle中TAF与SCANIP全面解析
通过本文的解析,读者可以清晰地理解Oracle中TAF与SCAN IP的概念、工作原理及其在实际应用中的优势和局限性。TAF通过自动故障转移提升了会话的高可用性,而SCAN则通过简化客户端连接和负载均衡提升了集群的可管理性和扩展性。这两种技术在现代企业数据库架构中扮演着重要角色,能够显著提高系统的稳定性和可用性。
633 6
|
6月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
535 93

热门文章

最新文章

推荐镜像

更多