暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

初步了解oracle的体系结构


今天分享oracle数据库的体系架构, 主要包括数据库内存结构、后台进程和存储结构三部分内容。

一、Oracle数据库内存结构

Oracle实例的组成


● 用它来访问数据库

● 只能打开一个数据库

● 由内存和后台进程结构组成

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算法决定

default 数据块向内存加载时的默认位置(必须存在)

keep    一些常驻内存的块(默认没开启)

recycle 不被频繁使用的块(默认没开启)

非标准块池.数据块的大小从9I开始可以是2,4,8,16,32这几种,单位是K

和db_block_size相同大小的buffer池 称之为标准块池

其他池则称之为非标准块池

redo log buffer :

联机(重做)日志缓冲区 记录数据库的每个改动向量、就是记录有顺序的SQL条目

这些SQL条目包括系统的改动和UNDO的改动,用户数据的改动

主要是为了数据的增删改过程记录日志的 提高数据安全性

large pool

大池  存放对那些复杂的程序包分析、RMAN、UGA(共享模式)、异步IO等相关的数据

java pool

JAVA池 存放JAVA存储过程的分析信息。

用户与数据库建立连接过程图解:


用户进程和服务进程建立连接

一般都是通过TCP协议连接的

用户进程发起连接请求到监听器

监听器接收到连接请求后验证用户的合法性

服务器端产生一个服务进程和用户进程之间建立连接和会话

并为这个服务进程分配一段私有内存PGA作为工作区.


PGA包含两个主要区域:

Stack Space:包含绑定变量和pl/sql数组相关信息

UGA:游标信息 一条SQL执行时的游标信息

        会话信息 当前会话的相关信息

工作区: 

排序区 当前会话的内存排序的维护

哈希区 多表连接时HASH JOIN过程中使用的内存区域

位图建立区 建立位图索引时可占用的内存区域

位图融合区 多个位图索引合并 or and 运算时占用的区域

注意:工作区内存不足时,会将数据转至临时表空间去.

二、Oracle数据库后台进程

DBWR:将 db_buffer_cache 中的脏块写回到数据文件,可以有多个进程


GWR:将logbuffer中的日志写入到redo文件,commit或者3秒或写满都可促使它工作


CKPT: 更新控制文件与数据文件使其同步,触发DBWR进程,使其将脏读缓存块写入数据文件。


SMON: 当实例崩溃后,DB-buffer-cache中的脏块没写盘,下次启动后需要用数据文件中的数据块(历史版本)和redo进行恢复,实例恢复则由此进程完成,并且当内存中的临时段长时间没使用时,由SMON清理掉


PMON:当一个会话意外断开后,残留在系统中的垃圾,比如锁信息,服务进程等,从dbf中读取数据块到db-buffer-cache,向监听告知当前实例的信息,称之为动态注册,会在启动时,以及相关参数变更时,1分钟一次的条件达成而触发,监听只有知道实例的存在才能为用户建立连接


ARCN:负责归档.因为redo组是循环覆盖方式使用.在覆盖前将redo备份下来叫归档如果数据库之前做了备份,备份以来的redo覆盖了,则以往的备份不能向前恢复.生产库都要归档.除非对数据丢失有容忍的情况下.热备的前提就是归档


三、Oracle数据库存储结构


Oracle server的组成:


oracle11g的逻辑存储结构和物理存储结构:


一个数据库是由多个表空间构成、一个表空间由一个或多个数据文件组成 、一个数据文件由一个或多个区组成 、一个段由一个或多个区构成、一个区由多个连续的oracle数据块组成。

Oracle逻辑存储结构:

表空间:由一个或多个数据文件组成

块:oracle数据库中最小的存储单位

盘区:由一个或多个数据块组成

段:一组盘区,这组盘区组成了被oracle视为一个单位的数据库对象,如表或索引

Oracle物理存储结构:

数据文件

重做日志文件

控制文件

归档日志文件

初始化参数

警报和跟踪日志文件

备份文件

密码文件


文中的概念来源于网络,如有侵权,请联系我删除。

欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。欢迎觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。


文章转载自小周的数据库进阶之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论