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 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额ÿ…...

【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. 逆波兰表达式求值 - 力扣…...

[数据库系统] 一、创建表以及使用主键约束(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…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...