【Oracle学习】之 体系结构

链接:文件体系结构
  Oracle数据库:①数据库(DB),存放在磁盘上;②数据库管理系统(DBMS)对磁盘上的数据库进行管理;分别对应着数据库的存储结构软件结构
  Oracle数据库的存储结构(Storage Structure):分为物理存储结构逻辑存储结构,分别描述了在操作系统中和数据库系统内部数据的组织与管理方式。其中,物理存储结构表现为操作系统中一系列文件,逻辑存储结构是对物理存储结构的逻辑组织与管理。
  Oracle数据库的软件结构:即Oracle实例,包括内存结构后台进程结构两部分。

一、物理存储结构

  Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(.dbf)控制文件文件(.ctl)重做日志文件(*.log)
①数据文件(Data File)
  数据文件是指存储数据库数据的文件。例如,表中的记录和索引等都存放在数据文件中。
  读取数据时,如果用户要读取的数据不在内存的数据缓冲区中,那么Oracle就从数据文件中把数据读取出来,放到内存的缓冲区中去,供用户查询;存储数据时,用户修改或添加的数据会先保存在内存的数据缓冲区中,然后由Oracle的后台进程DBWn将数据写入数据文件。

数据文件特点:
1。一个表空间由一个或多个数据文件组成。
2。一个数据文件只对应一个数据库。而一个数据库通常包含多个数据文件。
3。数据文件可以通过设置其参数,实现其自动扩展的功能。

了解数据文件的信息,可以查询数据字典DBA_DATA_FILES和V$DATAFILE
desc dba_data_files;

这里写图片描述

column name format a40;
select file#,name,checkpoint_change# from v$datafile;

这里写图片描述

  FILE#为数据文件编号;NAME为数据文件名称;CHECKPOINT_CHANGE#为数据文件的同步号,同步号随着系统的运行自动修改,以维持所有数据文件的同步。


②控制文件(Control Files)
  控制文件是一个很小的二进制文件,用于描述数据库的物理结构。在Oracle数据库中,控制文件相当重要,它存放着数据库中数据文件和日志文件的信息。
  一个Oracle数据库通常包含有多个控制文件,在数据库的使用过程中,数据库需要不断更新控制文件,一旦控制文件受损,那么数据库将无法正常工作。

Tip:在安装Oracle系统时,会自动创建控制文件

通过数据字典v$controlfile,可以了解控制文件的信息。
select name from v$controlfile;

这里写图片描述


③重做日志文件(Redo Log File)
  简称日志文件,是指记录数据库中所有修改信息的文件。借助于日志文件,可以保证数据库的安全,也可以实现数据库备份与恢复。
  为了确保日志文件的安全,在实际应用中,允许对日志文件进行镜像。一个日志文件和它的所有镜像文件构成一个日志文件组,它们具有相同的信息。同一组中的日志文件最好保存到不同的磁盘中,这样可以防止物理损坏带来的麻烦。

Tip:在一个日志文件组中,日志文件的镜像个数受参数MAXLOGMEMBERS限制,最多可以由5个

通过数据字典v$LOG,可以了解系统当前正在使用哪个日志文件组。
 select group#, members, status from v$log;

这里写图片描述


④其他文件
  参数文件、备份文件、归档重做日志文件 和 警告、跟踪日志文件。

二、逻辑存储结构

Tip:数据库的逻辑存储结构概念存储在数据库的数据字典中,可以通过数据字典查询逻辑存储结构信息。

这里写图片描述

  如上图,Oracle数据库的逻辑存储结构分为Oracle数据块(Oracle Data Block)区(Extent)段(Segment)表空间(Table space)4种。一个或多个连续的Oracle数据块构成区,一个或多个区构成段,一个或多个段构成表空间,所有表空间构成数据库。


①Oracle数据块
  Oracle数据块是数据库中最小的逻辑存储单元,是数据库执行输入、输出操作的最小单元,由一个或者多个操作系统块构成。
  在Oracle 11g数据库中,数据块分为标准块和非标准块两种,其中标准块由数据库初始化参数DB_BLOCK_SIZE设置,其大小不可更改。Oracle数据库的默认数据缓冲区就是由标准数据块构成的。

这里写图片描述

show parameter db_block_size;

这里写图片描述

Tip:由于块头部、表目录和行目录所组成的头部信息区并不存储实际数据,所以一个数据块的容量实际上就是空闲空间和行空间容量的总和


②区
  区由一系列连续的数据块构成的逻辑存储单元,是存储空间分配的最小单位。
  引入目的:为了提高系统存储空间分配的效率,以区为单位的存储空间分配大大减少了磁盘分配的次数。
 select min_extents, max_extents, tablespace_name from dba_tablespaces;

这里写图片描述


③段
  段是由一个或多个连续或不连续的区组成的逻辑存储单元,用于存储特定的、具有独立存储结构的数据库对象。根据存储对象类型不同,分为表段索引段临时段退回段


1. 表段,又称为数据段,用来存储表或簇的数据,可以细分为普通表段(Table)、分区表段(Table Parition)、簇段(Cluster)、索引化表段(Index-organized Table)
2. 索引段用来存放索引数据,包括ROWID和索引键值。
3. 临时段是进行查询、排序等操作时,如果内存空间不足,用于保存SQL语句在解释和执行过程中产生的临时数据。会话结束时,为该操作分配的临时段将被释放。
4. 回退段用于保存数据库的回退信息,可以实现事务回滚、数据库恢复、数据的读一致性和闪回查询。


④表空间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值