oracle架构简介

Oracle数据库架构简单来说如下图:

1、客户端链接数据库实例有两种模式:一是独占模式及一个回话一个server process;二是共享及有中间代理层,相当于增加了一层代理分发。

2、以独占模式举例,一个客户端发起一条SQL,这个SQL由server process进程接受,server process 也有内存叫PGA,然后到SGA里面去找这条SQL是否有相同的,如果有,就用相同的SQL的执行计划,这个叫软解析。如果没有就需要经过解析、优化得到执行计划,这是比较耗时的,称为硬解析。解析完后需要查询数据,这时就到了database buffer cache里去找是否有数据,如果有就直接返回;如果没有就需要server process进程触发DBWR后台进程从磁盘里读数据块到database buffer cache里。如果SQL是delete、update、insert改变数据块了,这个时候会有日志,这个日志先是写到PGA里,然后再写到redo log cache里,由LGWR将redo log cache里的数据顺序写到redo log文件中(触发条件有commit、每3秒、redo log cache占了1/3以上、日志切换、DBWR刷脏块落盘时)

相关推荐
睡觉的时候不会困19 分钟前
Redis 主从复制详解:原理、配置与主从切换实战
数据库·redis·bootstrap
程序员的世界你不懂2 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
自学也学好编程2 小时前
【数据库】Redis详解:内存数据库与缓存之王
数据库·redis
JAVA不会写3 小时前
在Mybatis plus中如何使用自定义Sql
数据库·sql
IT 小阿姨(数据库)3 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
ChinaRainbowSea3 小时前
7. LangChain4j + 记忆缓存详细说明
java·数据库·redis·后端·缓存·langchain·ai编程
小马学嵌入式~4 小时前
嵌入式 SQLite 数据库开发笔记
linux·c语言·数据库·笔记·sql·学习·sqlite
Java小白程序员5 小时前
MyBatis基础到高级实践:全方位指南(中)
数据库·mybatis
Monly215 小时前
人大金仓:merge sql error, dbType null, druid-1.2.20
数据库·sql
不宕机的小马达5 小时前
【Mysql|第一篇】Mysql的安装与卸载、Navicat工具的使用
数据库·mysql