oracle体系结构简介
oracle体系结构简介
一、物理存储结构
1、数据文件
存放数据库数据,以dbf为扩展名。将数据放在多个数据文件中,
再将数据文件分放在不同的硬盘中,可以提高存取速度。数据文
件由数据块构成,块大小由数据库创建时确定。
2、重做日志文件,以rdo为扩展名。含对数据库所做的更改记录,
这样万一出现故障可以启用数据恢复。一个数据库至少需要两个
重做日志文件。重做日志在日志文件中以循环的方式工作。有
归档日志模式和非归档日志模式。
3、控制文件,以ctl或ctrl为扩展名。控制文件维护数据库的全局
物理结构,记录数据库中所有文件的控制信息,每个数据库至少
要有一个控制文件,建议用户使用两个或更多控制文件,并存放
在不同的磁盘上。Oracle系统通过控制文件保持数据库的完整性,
以及决定恢复数据时使用哪些重做日志。
4、参数文件,以ora为扩展名。在一个数据库启动时,每个参数都有
一个默认值,而参数文件中的设置值被用来更改默认值,参数值
极大影响了oracle如何去执行其不同的任务。参数文件包括以下
几种:
<1>、初始化参数文件。当创建一个数据库时,oracle创建了一个
默认的init.ora文件,如果不修改任何参数,oracle将用所有的
缺省值来启动数据库,通常根据实际的应用修改参数设置以提高
性能。
<2>、配置参数文件。一般被命名为config.ora,它被用于特定实
例的信息。这个文件是一个由init.ora文件调用或激活的文本文
件,init.ora中包含一个ifile参数以设置config.ora文件的位置。
既然一个数据库可以有一个或多个实例与之关联,那么配置文件中
每一个参数对于不同的实例配置可能不同,当然,如果和数据库关
联的实例只有一个,所有信息都保存在文件init.ora中,那么
config.ora文件就不是必需的了。
<3>、服务器参数文件(spfile)。它被设计为一个服务器端的参
数文件,可以被认为是在oracle数据库服务器执行的机器上被管理
的初始化参数的仓库。一个服务器参数文件可以用语句CREATE
SPFILE从一个传统的文件参数文件创建。
5、跟踪文件与警告日志。
在实例中运行的每一个后台进程都有一个跟踪文件与之相连,跟踪
文件记载后台进程遇到的重大事件信息。oracle还有一个称做警告
日志的文件,用于记录数据库文件运行中主要事件的命令与结果。
6、归档文件,以arc为扩展名,是重做日志文件的脱机副本,这些副本
可能对于从介质失败中进行恢复很必要。
二、逻辑存储结构
1、表空间。
一个表空间对应一个或多个数据文件组成。一个表空间由段组成,
段由范围组成,范围由一组连续的数据块组成,它们对应磁盘上
的一个或多个物理块。一个表空间只能属于一个数据库,每个数据
库最少有一个表空间(SYSTEM表空间),该表空间包含整个数据库
的数据字典表,在数据库建立时自动创建。利用增加数据文件的形
式可以扩大表空间。表空间的大小为组成该表空间的数据文件的大
下之和。一个数据文件只能属于一个表空间,一个数据文件一旦被
加入到一个表空间中,就不能再从这个表空间中移走,也不能再加
入到其他表空间中,建立新的表空间需要建立新的数据文件。
2、段:是逻辑数据库对象的物理副本,段存储数据,例如索引段存储
与索引相关的数据。段是一个物理实体,它被放到表空间的一个数
据文件上。一个段segment只能属于一个表空间,但可以属于多个数
据文件。
3、范围:段由范围组成,范围由一组连续的数据块组成。一旦段中的
现有范围不能容纳新数据,该段将获取新的范围,如果需要的话,
该过程持续下去,直到表空间中的数据文件没有自由空间或已达到
每个段内部的范围最大数量为止。
4、块:ORACLE最基本的存储单位,在建立数据库的时候指定,通常为
操作系统块大小的倍数。
三、内存结构
oracle内存结构大致具有四个区:软件代码区、系统全局区、程序全局
区和排序区。
1、系统全局区。(SGA)
系统全局区为一组由oracle分配的共享数据结构,它是实例的主要部
分,它含有数据维护、SQL语句分析与重做缓存所必须的所有内存结
构,系统全局区的数据是共享的,也就是说,多个进程可以在同一时
间对SGA中的数据进行访问和修改。它包含以下内容:
<1>、数据块缓冲区
该区存放最近使用过的数据块,使用LRU(最近最好使用算法)
进行管理。
<2>、字典缓冲区
该区用于保存数据字典中的行,数据字典中存放oracle系统管
理自身所需的所有信息。该区也使用LRU算法管理。
<3>、重做日志缓冲区
任何事务在记录到重做日志之前都先放到该区,数据库系统定期
将该区内容写入到联机重做日志中。
<4>、SQL共享池
存放所有通过SQL语法分析、准备执行的SQL语句。
<5>、JAVA池
为JAVA命令提供语法分析。
<6>、多缓冲池
可以在SGA中创建多个缓冲池,能够用多个缓冲池把的数据集与其
他的应用程序分开,以减少它们争夺数据块缓冲区相同资源的可
能性。
2、程序全局区(PGA)
包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共
享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分
配在终止进程时回收。
3、排序区
排序需要内存,这部分空间成为排序区,排序区存在于请求排序的用户
进程的内存中,该空间的大小为适应排序数据量的大小,可增长,但受
初始化参数SORT_AREA_SIZER所限制。
4、软件代码区
用于存储正在执行或可以执行的程序代码。
四、进程结构
进程分为两类:用户进程和oracle进程。oracle为每一个连接的用户运行的
应用建立一个用户进程。
1、SMON
当启动一个数据库时,SMON(系统监控进程)执行所需的实例恢复操作(使
用联机重做日志文件),它也可以清除数据库(如不再使用的临时段),取
消系统不再需要的事务对象。
2、PMON
PMON(进程监控程序)后台进程清除失败的用户进程,负责清理内存储区和
释放该进程使用的资源。同SMON一样,它被周期唤起检测它是否需要被使用。
3、DBRW
数据库写进程。负责将被修改的数据块和字典缓冲内容写入到文件。
4、LGWR。负责把联机重做日志缓冲内容写入到文件。
5、CKPT
检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,
更新控制文件和数据文件中的数据库状态信息。
6、ARCH
归档进程:在每次日志切换时把已满的日志组进行备份或归档
oracle体系结构简介的更多相关文章
- oracle 体系结构简介
1.1.SGA(system global area) SGA是oracle Instance的基本组成部分,在示例启动是分配.是一组包含一个oracle实例的数据和控制信息的共享内存结构.主要用于存 ...
- Oracle数据库简介
Oracle数据库简介 一.介绍 Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(Client/Server,C/S)或浏览 ...
- Oracle体系结构学习笔记
Oracle体系结构由实例和一组数据文件组成,实例由SGA内存区,SGA意思是共享内存区,由share pool(共享池).data buffer(数据缓冲区).log buffer(日志缓冲区)组成 ...
- 黑马oracle_day01:01.oracle体系结构
01.oracle体系结构 02.oracle的基本操作 03.oracle的查询 04.oracle对象 05.oracle编程 01.oracle体系结构 开发环境:VMware® Worksta ...
- 1.Oracle数据库简介
Oracle数据库简介 Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracl ...
- Oracle体系结构总结
1.Oracle 体系结构摘要图 2.Oracle 体系结构相关笔记 1.Oracle 体系结构摘要图 2.Oracle 体系结构相关笔记 可参考Oracle Architecture系列随堂笔记: ...
- oracle 体系结构
oracle 体系结构 数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. 1. oracle工作原理: 1).在数据库服务器上启动Oracle实例:2).应用程序 ...
- Oracle实例和Oracle数据库(Oracle体系结构)
--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...
- 【转载】Oracle实例和Oracle数据库(Oracle体系结构)
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:Leshami 原文地址:http://blog.csdn.net/ ...
随机推荐
- 2019蚂蚁金服中高级Java工程师面试题及答案
面试基础 谈谈一致hash算法? 按照hash算法来将对应的key哈希到一个具有2^32次方个桶的空间中,即0~(2^32)-1的数字空间.将这些数字头尾相连,想象成一个闭合的环形.如果集群中加入新的 ...
- LINUX OS EXERCISE 08
1 配置crontab计划任务时,记录的格式是什么? 分钟 小时 日期 月份 星期 可执行语句 2 配置crontab计划任务实例. 以root用户身份添加计划任务,每天早上7:30启动sshd服务, ...
- IT兄弟连 HTML5教程 CSS3属性特效 文字描边
用CSS3实现的文字描边效果,一个CSS3文字特效实例,字体可以自己随意改,字体颜色也可以自己改.IE9以下浏览器无效果,所以提醒大家测试时候要使用Google Chrome.-webkit-text ...
- MyBatis框架之第三篇
8.Spring与Mybatis整合 框架的整合就是软件之间的集成,它很抽象,因此在做整合之前先想好思路.规划好思路然后按照思路一步一步的做就可以实现框架的整合. 8.1.SM整合思路 8.1.1.思 ...
- bootstrap-table 常用总结-树形结构
关于树形结构,上篇文章如果还是不能理解的话,请看这一篇.把其他的没有用到的功能都去掉,只留最基础的树形结构! 废话不多说,直接上代码!所有的数据都是走的本地,如果大家想改的话可以自己改,但是需要注意的 ...
- Delphi 调用C# 编写的DLL方法
近来,因工作需要,必须解决Delphi写的主程序调用C#写的dll的问题.在网上一番搜索,又经过种种试验,最终证明有以下两种方法可行: 编写C#dll的方法都一样,首先在vs2005中创建一个“ ...
- Vue学习笔记Day2
1.mustache语法 如何将data中的文本数据插入到HTML中? 通过使用mustache语法(也就是双大括号),将data中的变量名插入到HTML元素中,显示在页面上. 如下图:并且数据是响应 ...
- Android 项目优化(二):启动页面优化
一.启动页黑屏的问题 1.1 问题现象描述 Android App 启动页面黑屏的问题,现象表现为:Android 开发 App 启动时若没有做特殊处理的话,会出现一瞬间的白屏现象.即使启动页界面就加 ...
- RHEL5.6静默安装oracle11.2.0数据库实例脚本
脚本:单实例静默安装echo '[GENERAL] RESPONSEFILE_VERSION = "11.2.0" //查看虚拟机的版本,不能更改 OPERATION_TYPE = ...
- 并发编程~~~多线程~~~线程queue, 事件event,
一 线程queue 多线程抢占资源,只能让其串行. 互斥锁 队列 import queue q = queue.Queue() # 先进先出 q = queue.LifoQueue() # 先进后出 ...