当前位置: 首页 > news >正文

【赵渝强老师】Oracle的体系架构

1

Oracle数据库中最重要的部分就是它的体系架构,只有掌握Oracle的体系架构才能很好地使用它。Oracle数据库的体系架构是进行数据库管理、数据库备份恢复以及数据库性能诊断和优化的基础。同时由于关系型数据库的相通性,掌握了Oracle数据库的体系架构对于进一步学习其他类型数据库将会有非常大的帮助。

image.png
点击这里查看视频讲解:【赵渝强老师】Oracle的体系架构

Oracle数据库中有数据库和数据库实例这两个基本的概念,并且从体系架构的组成上看,Oracle数据库又分为了存储结构、进程结构和内存结构。因此,要掌握Oracle的体系架构就需要从数据库与数据库实例入手,并进一步深入到其内部核心的结构中。

一、数据库与数据库实例

Oracle数据库,英文名称叫做Oracle Database。这里所说的数据库是一个物理上的概念,即指物理操作系统的文件或者磁盘的集合。换句话来说,Oracle数据库是由物理硬盘上许多的文件组成。这些文件包含了数据文件、控制文件、重做日志文件等等。数据库的配置信息、日志信息以及表中的数据最终都是存储在这些文件当中。

Oracle数据库的实例,英文名称叫做Oracle Database Instance,它是一个逻辑上的概念,由操作系统的内存和操作系统中的进程组成。这些内存由同一个宿主机上运行的进程所共享。即使没有磁盘存储的数据库文件,数据库实例也能存在,但是这样的数据库实例没有实际的意义。对于一个正常运行的Oracle数据库实例来讲,可以把它看成是Oracle数据库文件在内存中的镜像。客户端需要通过操作系统中的进程来访问内存中的这些镜像,最终读写Oracle数据库的数据。

在不考虑Oracle数据库集群的情况下,一般情况下一个Oracle数据库服务只包括一个Oracle数据库和一个Oracle数据库的实例。一个实例对应一个数据库。它们之间的对应关系如下图所示。

2

二、存储结构

Oracle数据库由硬盘上的文件组成,而要读写数据需要通过Oracle实例来完成。那么,Oracle数据库是如何存储数据的呢?要搞清楚这个问题,就需要理解什么是Oracle数据库的存储结构。Oracle数据库的存储结构是由逻辑存储结构和物理存储结构组成。一般来说数据库无论是关系型数据库,还是NoSQL数据库在存储结构上,都是通过逻辑存储结构来管理物理存储结构。下图展示了Oraclke的逻辑存储结构。

3

Oracle的物理存储结构就是指的Oracle数据库在硬盘上存储的各种文件,包括:数据文件、联机日志文件、控制文件、归档日志文件、参数文件、告警日志文件、跟踪文件和备份文件等。

三、进程结构

通过执行Linux命令ps -ef | grep ora_可以查看Oracle数据库所有的后台进程。下面列举了这些进程的信息。

oracle    69415      1  0 13:07 ?        00:00:01 ora_pmon_orcl
oracle    69420      1  0 13:07 ?        00:00:00 ora_clmn_orcl
oracle    69424      1  0 13:07 ?        00:00:05 ora_psp0_orcl
oracle    69428      1  1 13:07 ?        00:05:43 ora_vktm_orcl
oracle    69434      1  0 13:07 ?        00:00:02 ora_gen0_orcl
oracle    69438      1  0 13:07 ?        00:00:01 ora_mman_orcl
oracle    69444      1  0 13:07 ?        00:00:06 ora_gen1_orcl
oracle    69446      1  0 13:07 ?        00:00:00 ora_gen2_orcl
oracle    69449      1  0 13:07 ?        00:00:00 ora_vosd_orcl
oracle    69453      1  0 13:07 ?        00:00:00 ora_diag_orcl
oracle    69457      1  0 13:07 ?        00:00:00 ora_ofsd_orcl
oracle    69459      1  0 13:07 ?        00:00:13 ora_dbrm_orcl
oracle    69462      1  0 13:07 ?        00:00:00 ora_vkrm_orcl
oracle    69466      1  0 13:07 ?        00:00:01 ora_svcb_orcl
oracle    69468      1  0 13:07 ?        00:00:04 ora_pman_orcl
oracle    69470      1  0 13:07 ?        00:00:18 ora_dia0_orcl
oracle    69474      1  0 13:07 ?        00:00:02 ora_dbw0_orcl
oracle    69476      1  0 13:07 ?        00:00:05 ora_lgwr_orcl
oracle    69480      1  0 13:07 ?        00:00:08 ora_ckpt_orcl
oracle    69484      1  0 13:07 ?        00:00:00 ora_smon_orcl
oracle    69490      1  0 13:07 ?        00:00:02 ora_smco_orcl
oracle    69494      1  0 13:07 ?        00:00:00 ora_reco_orcl
oracle    69496      1  0 13:07 ?        00:00:01 ora_lreg_orcl
oracle    69498      1  0 13:07 ?        00:00:00 ora_pxmn_orcl
oracle    69504      1  0 13:07 ?        00:00:12 ora_mmon_orcl
......

下面介绍几个比较重要的Oracle数据库的后台进程。

  • 系统监视器进程(SMON进程):即ora_smon_orcl进程。它负责Oracle数据库的启动,并在实例启动时执行恢复;同时该进程还可以清除不使用的临时段。
  • 进程监视器进程(PMON进程):即ora_pmon_orcl进程。该进程负责在用户进程失败时执行进程的恢复。同时还负责清除数据库缓冲区中的脏数据和释放该用户进程占用的资源。
  • 数据库写进程(DBWn进程):全称是Database Writer进程,即ora_dbw0_orcl进程,它负责将数据库缓冲区的数据写入磁盘。
  • 日志写进程(LGWR):全称是Log Writer进程,即ora_lgwr_orcl进程,它负责管理重做日志缓冲区,即将重做日志缓冲区条目写入磁盘上的重做日志文件中。
  • 检查点进程(CKPT):它是Oracle数据库检查点进程,即ora_ckpt_orcl进程,它负责唤醒DBWn进程将缓冲区中的脏数据写入数据文件中。四、内存结构  Oracle数据库的内存结构可以看成是数据库文件的镜像,而每个Oracle数据库实例有两个关联的内存结构:系统全局区(SGA)和程序全局区(PGA)。下图展示了Oracle数据库实例的内存结构。

4

http://www.jsqmd.com/news/100485/

相关文章:

  • 2025经颅电刺激仪制造公司权威推荐榜:华恒京兴领衔,精准神经调控技术赋能医疗康复 - torzi_JavaScript
  • 10 个MBA论文降重工具,AI写作优化软件推荐
  • 【Dify Tesseract自定义词典实战指南】:手把手教你提升OCR识别准确率90%以上
  • Spring Boot 整合 Redis 实战指南:从配置到场景落地 - 实践
  • 嵌入式和软件系统中常见通信协议
  • 为什么你的Agent无法跨容器通信?Docker网络配置终极排查指南
  • 【高可用多模态系统构建】:必须掌握的3种Docker启动编排策略
  • Cursor Agent 模式提示词
  • 如何将边缘Agent镜像缩小95%?,资深架构师亲授瘦身技巧
  • 模型训练中的精度保障:Ascend C算子数值稳定性分析
  • Dify中Tesseract识别延迟高?工程师绝不外传的4种提速技巧
  • 2025治疗多动症仪器制造公司权威推荐榜:华恒京兴领衔,精准神经调控守护儿童成长 - torzi_JavaScript
  • 【赵渝强老师】使用NetManager创建Oracle数据库的监听器
  • 错过再等一年!Dify私有化模型加载调优的7个核心参数配置
  • 2025 VR全景内容制作软件横向深度对比:主流工具的核心架构/市场/技术分析
  • 为什么你的AI模型回滚总出问题?Docker标签设计缺陷正在拖累你
  • 【金融分析师必看】R语言实战:4类典型流动性指标建模精讲
  • LobeChat如何处理长上下文会话?上下文管理机制剖析
  • 检索重排序的 Dify 结果过滤(90%工程师忽略的关键细节)
  • Dify与Tesseract字体训练实战(从零搭建高精度OCR系统)
  • 大数据ETL中的数据质量提升工具与方法
  • 浏览器控制台 (Console):前端开发的“透视眼”
  • 适用于新手的软文营销“三步法”,精准锁定目标客户
  • 【量子计算开发者必读】:R环境下多qubit模拟的稀缺技术路径曝光
  • Sprint Blog 2 (Dec 14-Dec 15) from“Pulse news stream”
  • 实用指南!如何用Nano Banana2制作科研绘图,附7种Prompt
  • 多任务并行不卡顿,Dify工作流设计秘诀大公开
  • (Dify Agent版本管理黄金法则):资深架构师亲授稳定发布秘诀
  • 【专家级调优建议】:确保Dify与Spring AI稳定集成的6项检查清单
  • 筑巢引凤 - Ascend C开发环境极速部署与验证全攻略