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

Oracle 体系结构

文章目录

      • Oracle体系结构
      • Oracle的内存结构
      • Oracle的进程结构
        • 服务器进程
        • 后台进程
        • 可选后台进程
      • 物理存储结构
      • 逻辑存储结构

概念: Oracle server由Oracle instance和Oracle database组成,Oracle instance由后台进程和共享内存组成,Oracle的实例包含了内存结构和进程结构,Oracle database由物理文件组成。

Oracle体系结构

在这里插入图片描述
总体的体系结构
在这里插入图片描述

Oracle的内存结构

oracle 内存主要由SGA+PGA+后台进程组成
在这里插入图片描述
SGA 的组成
共享池 shared pool、大池 large pool、流池 streames pool、JAVA 池java pool、重做日志缓冲区 redo log buffer、数据库高速缓冲区 database buffer cache、in-memory 区。

shared pool(共享池)
缓存执行过的SQL语句,执行计划、 PL/SQL语句的代码块、 以及在编译SQL, PL/SQL语句是参照的数据字典信息、 提高SQL语句以及PL/SQL语句的执行效率。

database buffer cache(数据库缓冲区)
数据库缓冲区的主要作用是缓存使用过的数据,Oracle数据库中所有的操作都是在buffer cache中进行,每次做dml或者ddl的时候会先将把数据文件里的数据读取到buffer cache中,再进行操作。

redo log buffer(重做日志缓冲区)
Redo Log Buffer 缓存数据库修改的信息,后台进程LGWR负责将Redo Log Buffer中的信息写入到磁盘上,必要时,重做条目还可以用于数据库恢复。

Large pool(大池)
large pool用来备份恢复,用以缓解oracle对共享池和pga区内存的使用压力。

Java pool(Java池)
用于Java程序使用,JVM等

stream pool(流池)
数据库在流工作是使用的内存区域。

Oracle的进程结构

客户端进程+ Oracle 进程( 后台进程+ 服务器进程 )组成
在这里插入图片描述

服务器进程

处理连接到该实例的客户端进程的请求。客户端进程始终通过单独的服务器进程与数据库通信。

1.解析并运行sql语句,包括创建和执行查询计划
2.执行pl/sql代码
3.将数据文件读入高速缓冲区(buffer cache)
4.返回结果

服务器进程分为二类
专有服务器进程: 客户端连接仅与一个服务器进程关联。每个客户端进程都直接与其服务器进程通信

共享服务器进程: 客户端应用程序通过网络连接到调度程序进程,而不是服务器进程,接收来自已连接客户端的请求,并将其放入大型池的请求队列中

后台进程

后台进程执行操作数据库所需的维护任务,并最大化多个用户的性能。

程序监控进程(PMON):
监视其他后台进程和执行进程恢复, 如: 如果Server process非正常关闭,则PMON负责清理它占用的各种资源。

监听器注册器进程(LREG)
LREG 向监听器注册有关实例和调度程序进程的信息, 实例启动时,LREG 轮询侦听器以确定它是否正在运行。如果侦听器正在运行,则 LREG 会向其传递相关参数。如果它没有运行,则 LREG 会定期尝试与它联系。

系统监控进程(SMON)
负责各种系统级清理职责
1.必要时在实例启动时执行实例恢复
2. 清理未使用的临时段。例如,Oracle 数据库在创建索引时分配范围。如果操作失败,则 SMON 清理临时空间。

数据库写进程(DBW n)
将数据库缓冲区的内容写入数据文件。DBW n 进程将数据库缓冲区高速缓存中的已修改缓冲区数据写入磁盘。

日志写进程(LGWR)
负责管理重做日志缓冲区。LGWR 将重做日志缓冲区的一个连续部分内容写入到联机在线重做日志文件中。

在以下情况下,LGWR 将自上次写入以来已复制到缓冲区的所有重做条目写入:
用户提交事务。
发生联机重做日志切换。
自 LGWR 上次写以来已经过去了三秒钟
重做日志缓冲区已满三分之一,或包含 1 MB 的缓冲数据。
DBW n 必须将修改后的缓冲区写入磁盘
在 DBW n 可以写入脏缓冲区之前,必须将与更改缓冲区相关联的重做记录写入磁盘。

检查点进程(CKPT)
更新控制文件和数据文件的相关信息,通知 DBWn 后台进程写磁盘。

可选后台进程

存档进程(ARC n)
将联机重做日志文件复制到脱机的归档文档中,即归档。

作业队列进程(CJQ0 和 Jnnn) Oracle 数据库动态地管理作业队列过程,从而使作业队列客户端可以在需要时使用更多的作业队列过程。

物理存储结构

Oracle 数据库有哪些数据库文件

数据文件: 数据文件是一个由 Oracle 数据库创建,并包含数据结构,包含数据库中的用户数据和应用程序数据。

控制文件 Control files:
存储数据库物理结构(数据文件、联机重做日志文件和归档的重做日志文件)位置的信息。是 Oracle 数据库用来查找定位数据库文件,并管理数据库状态的根文件。在数据库装载(mount)和打开(open)后使用控制文件。

联机重做日志文件 Online redo log files
存储的是数据进行更改的记录信息。数据库维护在线重做日志文件,以防止数据丢失。用于数据库恢复。

逻辑存储结构

Oracle 数据库为数据库中的所有数据分配逻辑空间,数据库空间分配的逻辑单元是数据块、 扩展区、 段、和表空间。在物理级,数据被存储在磁盘上的数据文件中,数据文件中的数据存储 在操作系统块中。以下是物理和逻辑存储的实体关系图

在这里插入图片描述

相关文章:

Oracle 体系结构

文章目录 Oracle体系结构Oracle的内存结构Oracle的进程结构服务器进程后台进程可选后台进程 物理存储结构逻辑存储结构 概念: Oracle server由Oracle instance和Oracle database组成,Oracle instance由后台进程和共享内存组成,Oracle的实例包…...

java手写日历系统(亲测)

package com.test.test02;import java.util.Calendar; import java.util.GregorianCalendar; import java.util.Scanner;public class Test08 {//这是一个main方法,是程序的入口public static void main(String[] args) {//录入日期的StringScanner sc new Scanner…...

35-40的技术人员为什么会被“不友好”,请你们自身反思-拒做职场的“嗯嗯”怪

35-40真的是IT人员的一道坎吗? IT技术做不到35-40,可是我身边有大量35-40事业发达、职业发展更好的朋友。同时,我身边也有大量35-40被“毕业”的人更多。 本人经过7年来先后带队过3个大型研发团队,最少的也有60-70号人。最多的达到…...

工地烟火AI监控识别分析系统 yolov7

工地烟火AI监控识别分析系统通过yolov7网络模型技术,工地烟火AI监控识别分析系统对工地或者厂区现场监控区域内的烟火进行实时分析报警。YOLOv7 的发展方向与当前主流的实时目标检测器不同,研究团队希望它能够同时支持移动 GPU 和从边缘到云端的 GPU 设备…...

MATLAB算法实战应用案例精讲-【人工智能】对比学习(概念篇)(补充篇)

目录 前言 几个高频面试题目 基于对比学习(ContrastiveLearning)的文本表示模型【为什么】能学到文本【相似】度? 为什么对比学习能学到很好的语义相似度? 那么如何评价这个表示空间的质量呢? 知识储备 监督学习和非监督学习 算法原理…...

代码随想录算法训练营第三十一天 | 贪心1,想不到怎么找局部最优就做不出来

贪心算法理论基础 代码随想录 (programmercarl.com) 贪心算法理论基础!_哔哩哔哩_bilibili 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额&#xff…...

【SVN】版本控制管理的文件(夹)如何重命名

目录 一、前言二、操作步骤1. 使用SVN重命名(SVN rename)2. 输入新名称3. 确定重命名4. 立刻进行一次提交(commit)5. 补充 三、可能遇到的问题1. 情况一2. 情况二3. 情况三 一、前言 如果只是在本地的文件系统中修改SVN中的文件&a…...

必须包含数字,字母组合的密码正则表达式

输入要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在2-64位之间。 ^(?![0-9]$)(?![a-zA-Z]$)[0-9A-Za-z]{2,64}$ 分开来注释一下: ^ 匹配一行的开头位置 (?![0-9]$) 预测该位置后面不全是数字 (?![a-zA-Z]$) 预…...

JavaScript:栈和对列

文章目录 栈和对列Js 有栈与队列吗20. 有效的括号 - 力扣(LeetCode)思路 1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode)思路代码分析array.join() 操作打印const s of str 操作遍历 150. 逆波兰表达式求值 - 力扣&#xf…...

[数据库系统] 一、创建表以及使用主键约束(educoder)

1.任务:在数据库中创建一个表。 2.需要掌握: 如何在指定数据库中创建表。 知识点:如何在指定数据库中创建表。 我们先来了解一下在数据库中创建表的规则: CREATE TABLE 表名(字段名,数据类型,字段名,数据类型,.....) 例如&…...

《走进对象村4》之面向对象的第一大特性——封装

文章目录 🚀文章导读1、封装的概念2、访问限定修饰符3、如何进行封装4、封装的优点: 🚀文章导读 在本篇文章中,将详细的对封装进行总结,文章仅仅是个人的一些理解,如果有错误的地方,还望指出看完…...

罗马数字转整数、整数转罗马数字----2023/5/4

罗马数字转整数----2023/5/4 1.罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D …...

2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。

2023-05-04:用go语言重写ffmpeg的scaling_video.c示例,用于实现视频缩放(Scaling)功能。 答案2023-05-04: 这段代码实现了使用 libswscale 库进行视频缩放的功能。下面是程序的主要流程: 1.获取命令行参…...

QT Android QTextEdit 复制粘贴文本后出现多余数据问题

目录 问题原因解决方法 问题 QT Android QTextEdit 长按选中文本后,点击复制,然后粘贴到手机便签或者QQ中,出现多余数据 例如,要复制的文本为 只因你太美 但实际在便签中粘贴后的文本为 只因你太美 p, li { white-space: pre-wra…...

知识变现海哥:你为什么努力却不富有,大概率是你不懂这个道理

要有价值观念,要有交换思维。商业的本质都是基于价值交换,你能为别人提供多少价值,你就能赚多少米,你帮助别人处理的问题越多你越有价值,你能成就多少人你就能被多少人成就。这是商业行为的底层逻辑。 你没赚到米 一是…...

【Mybatis】增删改查

1.添加相应的jar包 2.创建持久化类 在src目录下创建一个名为com.mybatis.po的包 创建持久化类MyUser,包含三个属性(uid,uname,usex) package com.mybatis.po; /***springtest数据库中user表的持久化类*/ public class MyUser {private Integer uid;//主键private…...

20230504----重返学习-vue2项目-跳转拦截-重定向并返回前一页-使用vuex调用接口-全选与全不选-总价计算

day-061-sixty-one-20230504-vue2项目-跳转拦截-重定向并返回前一页-使用vuex调用接口-全选与全不选-总价计算 vue2项目 跳转拦截 设置跳转拦截,比如在用户没token时,不能进入具体详情页,而是进入登录页进行登录。 跳转拦截具体思路 前端…...

(异或相消)猫猫数字异或和

E - Red Scarf (atcoder.jp) 刚入坑写的一道题被我拉出来对比分析了 我的思路: 垃圾运气选手凭借直觉乱搞猜出来的,没有思路。 题解思路: 由问题陈述中XOR的定义,我们可以看出计算3个或更多整数的XOR可以以任意顺序进行&#…...

树脂塞孔有哪些优缺点及应用?

树脂塞孔的概述 树脂塞孔就是利用导电或者非导电树脂,通过印刷,利用一切可能的方式,在机械通孔、机械盲埋孔等各种类型的孔内进行填充,实现塞孔的目的。 树脂塞孔的目的 1 树脂填充各种盲埋孔之后,利于层压的真空下…...

【Robot Framework】RF关键字大全

收录工作当中最常用的Robot Framework关键字 内容较多,可以CtrlF快速搜索自己想要的 1. RF循环使用(FOR循环) {list1} create list LOG TXT INI INF C CPP JAVA JS CSS LRC H ASM S ASP FOR ${file_type} IN {list1} log 构造请求参数 ${t…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...