大数据技术应用 第2章Oracle的体系结构

本文详细介绍了Oracle数据库的体系结构,包括实例与数据库的关系、逻辑存储结构(数据块、盘区、段、表空间)和物理存储结构(数据文件、控制文件、重做日志文件)。同时阐述了实例的内存结构(SGA、PGA)和进程结构,以及数据字典的分类。重点掌握Oracle的逻辑与物理存储、内存和进程结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.1 Oracle体系结构概述

2.1.1 定义

数据库的体系结构还从某一角度俩分析数据库的组成和工作过程,以及数据库如何管理和组织数据。

2.1.2 完整的Oracle数据库系统通常由两部分组成

  1. 实例(instance):是一组Oracle后台进程/线程以及在服务器分配的共享内存区。
  2. 数据库(database):是一系列物理文件的集合(数据文件、控制文件、联机文件、参数文件等)。

2.1.3 实例与数据库的关系

  1. 数据库可以由多个实例装载和打开。
  2. 实例可以在任何时间装载和打开一个数据库。
  3. 一个实例在其生存期最多只能装载和打开一个数据库。

2.1.4 Oracle实例与数据库

在这里插入图片描述

2.1.5 Oracle 11g主要组件

在这里插入图片描述

2.2 逻辑存储结构

逻辑存储单元从小到大依次为数据块(Data Blocks)、盘区(Extent)、段(Segments)、表空间(Table Spaces)。
在这里插入图片描述

2.2.1 数据块

数据块是Oracle用来管理存储空间的最小单元,也是执行数据库输入输出操作的最小单位。
数据块的组成:块头部﹑表目录﹑行目录﹑空闲空间﹑行空间。

2.2.2 盘区

盘区是 Oracle存储分配的最小单位。
盘区是由一系列物理上连续存放的数据块所构成的Oracle存储结构
由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。
当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。

2.2.3 段

段是由一系列盘区组成,它也不再是存储空间的分配单位,而是一个独立的逻辑存储结构。
对于具有独立存储结构的对象,它的数据全部存储在保存它的段中。一个段只属于一个特定的数据库对象,每当创建一个具有独立段的数据库对象时, Oracle 将为它创建一个段。在Oracle 中,不同类型的数据库对象拥有不同类型的段。
根据段中存放的数据库对象类型,将段分为几种类型:数据段﹑索引段﹑临时段﹑回退段和LOB段。

2.2.4 表空间

表空间是在Oracle 中可以使用的最大的逻辑存储结构,在数据库中建立的所有内容都被存储在表空间中。
一个表空间由一个或多个数据文件组成,一个数据文件只可以属于一个表空间,这是逻辑与物理的统一。
存储空间在物理上表现为数据文件,在逻辑上表现为表空间。
表空间的大小等于构成该表空间的所有数据文件的大小之和。
数据库的大小等于其中所有表空间的大小之和。
在创建数据库时,Oracle会自动创建一些默认的表空间,其中除了用于存储用户数据的普通表空间外,还有其他三种类型:
(1)SYSTEM表空间,用于存储数据字典﹑内部系统表基表,PL/SQL程序的源代码和解析代码数据库对象的定义。
(2)撤销表空间,专门用来在自动撤销管理方式下存储撤销信息,即回退信息。
(3)临时表空,在实例运行过程中,Oracle使用一些临时空间来保存SQL语句执行过程中所产生的临时数据。

2.3 物理存储结构

数据库物理存储结构主要包括3类物理文件:数据文件(data file)(.dbf)、控制文件(control file)(.ctl)、重做日志文件(redo log file)(.log)及一些参数文件。

2.3.1 数据文件

数据库中的数据在物理上保存在若干个操作系统文件中,这些操作系统文件就是数据文件。
一个表空间由一个或多个数据文件组成,一个数据文件只可以属于一个表空间。
(1)系统数据文件(SYSTEM01.DBF、SYSTEMAUX01.DBF):存放系统表和数据字典。
(2)撤销段文件(UNDOTBS01.DBF) :存放撤销段数据文件,在数据修改中存储修改之前的记录。
(3)用户数据文件(USER01.DBF、EXAMPLE01.DBF):存放用户数据。

SQL>select name from v$datafile;

2.3.2 控制文件

数据库控制文件是一个很小的二进制文件,在其中包含了关于数据库物理结构的重要信息·通过在加载数据库时读取控制文件, Oracle 才能找到自己所需的操作系统文件(数据文件﹑重做日志文件等)。
控制文件中的主要信息包括:数据库的名字﹑检查点信息﹑数据库创建的时间戳﹑所有的数据文件﹑重做日志文件﹑归档日志文件信息和备份信息等。

SQL>select name from v$dcontrolfile;

2.3.3 重做日志文件

重做日志文件是记录数据库中所有修改信息的文件重做日志文件记录两类数据:
(1)修改前的数据
(2)修改后的数据
当满足一定条件时先将修改操作所产生的重做记录写入重做日志文件中,然后才将内存中的修改结果成批的写入数据文件,最后再提交事务。
重做日志文件是由重做记录组成的,重做记录是由修改向量组成的。当用户执行一条update语句对某一个表中的记录进行修改时,会生成一条记录·这条记录用多个向量记录下了被这条语句修改过的各个数据块中的信息。

2.3.4 其他文件

(1)归档日志文件
(2)参数文件
(3)密码文件
(4)预警日志文件
(5)后台或用户跟踪文件

2.4 实例的内存结构

Oracle的2个主要的内存结构:系统全局区 ( System Global Area , SGA)、程序全局区 ( Program Global Area , PGA)

2.4.1 系统全局区 SGA(共享)

SGA区位于系统的共享内存段中,SGA区中的数据可以被所有的服务和后台进程共享。
如果多个用户连接到同一个数据库实例,则实例的SGA区中的数据可被多个用户共享。在数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA被回收。
主要包含如下内存结构:
(1)数据缓存区
(2)共享池
(3)重做日志缓存
(4)Java池
(5)大型池

2.4.2 程序全局区 PGA(非共享)

PGA是保存特定服务进程的数据和控制信息的内存结构,这个内存结构是非共享的,只有服务进程本身才能够访问它自己的PGA区。每个服务进程都有它自己的PGA区。
包含如下结构:
(1)私有SQL工作区
(2)会话内存区

2.5 实例的进程结构

进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程与程序的区别在于前者是一个动态概念,后者是一个静态实体。程序仅仅是指令的有序集合,而进程则强调执行过程。进程可以动态地创建,当完成任务后即会消亡。主要涉及如下3个类型:

2.5.1 用户进程:

在用户连接数据库时会创建一个用户进程。用户进程执行的是一个应用程序或Oracle工具程序的代码,以完成用户指定的任务。用户进程不是实例的组成部分。

2.5.2 服务器进程:

这些进程根据客户的请求来完成工作。

2.5.3 后台进程:

这些进程随数据库而启动,用于完成各种维护任务,如将数据块写至磁盘进程DBWR、维护在线重做日志进程LGWR、清理异常中止的进程等。

Oracle实例包括两部分:SGA和一组后台进程。
(1)必要的进程:
DBWR(数据写进程)
LGWR(日志写进程)
CKPT(检查点进程)
SMON(系统监视进程)
PMON(进程监视进程)
(2)其他的进程:
ARCn(归档进程)
RECO(恢复进程)
Dnnn(调度进程)

2.6 数据字典

2.6.1 动态

v$
显示全局存储区SGA

select name,value from v$sga;

2.6.2 静态

user_:当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)
all_:当前用户能够访问的对象的信息。(与user_ 相比,all_并不需要拥有该对象,只需要具有访问该对象的权限即可)
dba_:数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)

总结

(1)考核知识点:
oracle体系结构(Oracle数据库系统的组成)
逻辑存储结构(数据块、盘区、段、表空间的概念,以及逻辑存储结构之间的关系)
物理存储结构(数据文件、控制文件、日志文件、其他文件,以及各类文件的作用、文件的后缀名)
逻辑存储与物理存储之间的关系
实例的内存结构(系统全局区、程序全局区概念,简写)
实例的进程结构(进程的分类,常用的后台进程及作用)
数据字典(分类,静态数据字典的概念以及user_,all_,dba_三类字典的含义与用法,常用数据字典的使用)
(2)考试要求:
重点掌握oracle的体系结构、oracle数据库的物理存储结构和逻辑存储结构、oracle实例的内存结构和进程结构。
了解进程的分类,主要后台进程的作用和oracle数据库中user_,all_,dba_三类字典的含义与用法,常用数据字典的使用(例如,dba_tables,user_tables……)。
(3)考查章节:
2.1
2.2
2.3
2.4
2.5
2.6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值