Oracle 的体系结构
把这张图分成上下两部分
上面的部分是内存数据:
存在于内存中 在内存中的数据没实体在大方框中的部分我们把这部分称之为实例 实例由
SGA(
共享全局区
)
和一组后台进程组成,椭圆部分是私有的
,user process
是客户端进程比如
SQLPLUS,server process
是服务器端进程。
下面的部分是物理数据:
存在于存储介质
(
通常
FS
或
raw
或
ASM)
上,我们把这部分称之为数据库。
而实例+
数据库就是大众所谓的数据库通称
,
而实际他们完全是两个概念
一般来讲"
物理的
"
都是参照对象的下层而言的
例如:OS
的物理层 就是硬件
而oracle
是基于
OS
的软件
,
顾
OS
的部分对
oracle
而言就是物理的
.
一、实例 instance
实例是访问数据库的正常模式的唯一途径(
排除
DUL
等工具
)
一个实例只能打开一个数据库
一个数据库可以被多个实例访问(RAC)
实例由内存结构和一组后台进程组成
ORACLE INSTANCE是一个数据库文件进行实例化提供的服务,而它也是我们体系结构的核心
实例如何运行:
一个实例运行起来就好比大商场开张
你要开张卖商品 就需要有空间 比如营业厅,
老板办公室
,
经理办公室
,
财务室等等
这些空间在我们系统中就是要申请的内存区域
华宇商场空间的总体使用面积该多大?
当你买下(
租下
)
这块商场空间时
,
生活中会签合同 合同中表明了他购买的这个面积的范围,之后这个商场空间就随你去规划去使用了
.
那么这里的合同 在数据库中就是参数文件
参数文件是实实在在存在于你硬盘或裸设备中的.
参数文件决定着实例初始化的形态
大商场想开张,
有了商场空间后
,
还缺什么
?
人!商场里需要不同岗位的人员来维持这个店的正常运转,这些人就相当于后台进程 他们各尽其职。
为什么说是后台进程?
实例运转需要进程来维护,
包括写数据
,
写日志
,
实例恢复等等
你是去商场买商品 你也是一个进程
导购接待你卖商品 导购也是一个进程
所以区分一下他们:
你就是用户进程(
比如
sqlplus)
导购就是属于服务进程(linux
下
ps
可以查到进程名
oracle$ORACLE_SID)
你和导购之间建立起来的就是session(
对于专属模式是进程和会话一对一
,
共享模式一对多
)
维护实例运转的就是后台进程
二、
内存结构
内存由SGA
和
PGA
组成,分别代表系统全局区和私有全局区。
S可以理解成
SYSTEM,
也可以理解成
SHARE
。
P可以理解成
PROCESS,PRIVATE
1、
SGA
:系统全局区
每个实例只有一个SGA,
生命周期是实例的启停,
SGA
随之创建消亡
用于存储数据库信息的内存区,该信息为数据库所有进程所共享。
SGA中包含的组件
:
shared_pool 共享
SQL
和
PLSQL
的执行计划和数据字典对象等信息
他又分为两部分:
1.data dict cache 也叫
rowcache
加速
SQL
的解析
使用过的字典 就会缓存在这里 再次使用这个字典就直接从内存获取
这些统计的信息在 v$rowcache
中记录
2.library cache: 加速解析 减少语句重解析
SQL文本
,
解析树和执行计划就在这里
db buffer cache
数据库缓冲缓存区 缓冲被访问的数据块.
每次从磁盘向内存缓冲数据的单位由 db_block_size=8192
决定
这个区域缓冲的数据保持时间也由LRU
算法决定
redo log buffer
联机(
重做
)
日志缓冲区 记录数据库的每个改动向量
就是记录有顺序的SQL
条目
这些SQL
条目包括系统的改动和
UNDO
的改动
,
用户数据的改动
将一个人的工资由800
改成
1000
还没提交就断电
这时数据有可能写盘 下次启动时就通过回滚段中的改前镜像和日志进行 恢复
如果提交了数据有可能没写盘 这时断电 下次启动就通过日志重做
主要是为了数据的增删改过程记录日志的 提高数据安全性
large pool(9I引入
)
大池 存放对那些复杂的程序包分析、RMAN
、
UGA(
共享模式
)
、异步
IO
等相关的数据
java pool(9I引入
)
JAVA池 存放
JAVA
存储过程的分析信息。
stream pool(10g引入
)
流池 为流复制服务提供数据缓冲缓存
其他资源
比如固件,lock,latch
统计数据等等
2、
PGA:
程序全局区
整个实例有很多PGA,
对应的是进程
,
一个进程一个
PGA,
生命周期是进程的 创建和消亡
PGA中主要包含排序区和
UGA(
专有模式
)
的信息
3、
UGA:
用户全局区
存储session
信息和解析执行计划的
它的位置比较特殊
如果是专有模式(
默认
)
进程和会话是一对一的
,UGA
会存在
PGA
中
如果是共享模式 进程和会话是一对多的关系,UGA
会存在
large pool
中
但large pool
没内存可分时 会存在于
SHARED POOL
中
PGA和
UGA
的区别
PGA是服务于进程的,它包含的是进程的信息
.
UGA是服务于会话的,它包含的是会话的信息
.
四、主要的后台进程
维护实例的进程并不是全都开启的,很多都是特定服务才有的特定进程,特定服务启动特定进程才随之出现,在众多实例进程中有5
个必须进程。
1.SMON 系统监视进程
1.空间管理
:
定期合并空间
(
老版本才有
)
定期回收临时段
2.实例恢复
:(
服务器掉电了 实例意外终止
)
恢复的方法
:
先前滚
==>
后回滚
==>
释放资源
前滚 将数据库中的SQL(
包括提交的和未提交的
)
全部重新做一遍
回滚 将没提交的SQL
句从数据库中将老的镜像取出覆盖
释放资源 将前滚和回滚中使用到的资源释放
2.DBWn n指的是
0-9 a-j
多个写进程的区分 将脏块写盘
触发写的条件
1.产生检查点
2.脏数据缓冲区达到阀值 默认
10%
3.扫描整个
data buffer
没有空闲
data buffer
中包含脏的和未脏的 优先写脏数据列表 再写未改的
4.timeout超时 如果
DBWR
没事做 会被每三秒唤醒一次去巡检 写不写不一定
5.集群环境的
ping
请求触发多实例的数据写请求
6.表级别的
truncate
或
drop
也会触发数据写
7.修改表空间的
read only
8.做表空间的
offline(
离线
)
9.热备份
begin backup
命令
3.PMON 进程监视器
1.清理与实例非法断开的
server_procese
残留的资源 非正常终止的用户进程产生的垃圾资源
2.负责重启以外死掉的调度器
(
网络监听中使用的
)
3.将实例的信息注册到监听程序
4.CKPT 把新的检查点写入指定位置
1.调度数据写
dbwN
2.将新检查点写数据文件头
3.将新检查点写控制文件中的数据文件头的记录
5.LGWR 只有一个进程 不会向数据写进程那么多 因为写要求有顺序 将
redo log buffer
里的条目 写到
redo
文件
触发写的条件
1.commit
2.redo log buffer 1/3满
3.redo log buffer 日志缓冲区达到
1M
4.写日志优先
当DBWR
要写脏数据时
,
要检查脏数据对应的日志是否写盘
,
如果日志还没写
,
会优先写日志
5.3秒写一次
五、DB
的结构
从运行中的数据库来看有两大类
1.离线文件
(
非核心
)
参数文件 密码文件 归档日志
2.在线文件
(
核心
)
数据文件 控制文件 联机日志文件(
重做日志
)
以后会专门讲每种文件的作用 维护方法
这里只简要描述一下
数据文件 存放系统数据和用户数据的空间
控制文件 描述着数据库结构和形态
重做日志 记录着数据库中的一切改动数据的SQL
条目
参数文件 实例初始化的形态说明
密码文件 sys
管理员的密码验证文件
归档日志 重做日志的备份文件
后面我会具体讲解每个部分,这里只是简单的从整体概括。
相关推荐
以下是对Oracle体系结构主要组成部分的详细说明: 1. **数据库**:数据库是Oracle的核心,它是一个逻辑数据集合,包含了物理存储的数据以及元数据。Oracle是关系型数据库管理系统(RDBMS),意味着它以表格形式组织...
Oracle体系结构是Oracle数据库的核心,涵盖了数据库运行的基本原理和组成部分。Oracle数据库体系结构非常复杂,主要包括实例和数据库两个方面。Oracle实例是一个运行中的数据库系统,它由系统全局区(SGA)和一组...
"Oracle体系结构与OCp笔记" Oracle体系结构是Oracle数据库管理系统的核心组件之一,它是Oracle数据库的基础架构。Oracle体系结构主要由三部分组成:数据库(Database)、实例(Instance)和oracle网络架构。 ...
【Oracle 体系结构详解】 Oracle数据库的体系结构是其高效管理和优化数据操作的关键。这个复杂的架构设计主要目的是为了有效地管理数据库系统中的稀缺资源,特别是内存,以提高性能并确保数据的完整性和可用性。 1...
oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图
### Oracle 体系结构详解 #### 一、Oracle 基本体系结构概览 Oracle 数据库的体系结构设计得非常复杂且精妙,它能够高效地处理大量的并发请求,并确保数据的安全性和一致性。Oracle 的基本体系结构主要包括内存...
oracle体系结构思维导图
oracle体系结构,Oracle数据库数据实例、启动过程的学习等;oracle体系结构课程学习中老师布置的作业。
本文将深入探讨Oracle体系结构的各个关键组成部分。 首先,我们关注物理结构,这是Oracle数据库在磁盘上的实际存储形式。主要包含以下几个部分: 1. **数据文件**:数据文件是Oracle数据库中最基本的存储单元,...
### Oracle体系结构8.09知识点详解 #### 一、Oracle体系结构概述 Oracle数据库的体系结构主要包括几个关键部分:数据库实例(Instance)和数据库文件(Database Files)。其中,数据库实例由内存结构(Memory ...
oracle体系结构介绍,适合oracle初学者。有助于oracle入门。
### Oracle体系结构详解 Oracle体系结构是理解Oracle数据库工作原理的关键。本文将深入解析Oracle的基本组成、实例(Instance)结构以及内存结构等核心概念。 #### 一、Oracle基本组成 Oracle的基本组成部分包括...
oracle体系结构学习之实例介绍学习;是体系结构学习英文版ppt的第三章,后续还有其他所有章节,是学习体系结构很全面的教材,比官方文档易学,结构清晰。
系统地讲解Oracle体系结构,有助于初学者整体了解和把握Oracle服务器。
Oracle 体系结构详解 Oracle 体系结构是围绕 Oracle Server 架构展开的, Oracle Server 由 Instance 和 Database 组成。一个 Instance 只能对应一个 Database,特殊情况下一个 Database 可以有多个 Instance(RAC...
oracle体系结构课件,我们系主任精心制作的,挺全的,真的不错,希望对大家有所帮助!!
oracle体系结构,本教程注重Oracle数据库原理的讲解,讲的很细,总共45集涵盖了数据库的核心原理
oracle数据库体系结构详述,入门性质文档
Oracle体系结构主要包括以下几个关键部分: 1. **实例(Instance)**:实例是Oracle数据库在内存中的表示,由系统全局区(SGA)、程序全局区(PGA)和后台进程组成。系统全局区存储共享数据,如数据缓冲区、重做...
Oracle 体系结构 Oracle 体系结构是指 Oracle 数据库管理系统的总体架构,它由逻辑结构、物理结构和实例三部分组成。下面将详细介绍每个部分的组成和关系。 一、逻辑结构 逻辑结构是 Oracle 体系结构的最高级别,...