天天看点

【Oracle学习】之 体系结构

​​链接:文件体系结构​​

Oracle数据库:①数据库(DB),存放在磁盘上;②数据库管理系统(DBMS)对磁盘上的数据库进行管理;分别对应着数据库的存储结构和软件结构。

Oracle数据库的存储结构(Storage Structure):分为物理存储结构和逻辑存储结构,分别描述了在操作系统中和数据库系统内部数据的组织与管理方式。其中,物理存储结构表现为操作系统中一系列文件,逻辑存储结构是对物理存储结构的逻辑组织与管理。

Oracle数据库的软件结构:即Oracle实例,包括内存结构与后台进程结构两部分。

一、物理存储结构

数据文件(.dbf)、控制文件文件(.ctl)和重做日志文件(*.log)

①数据文件(Data File)

  数据文件是指存储数据库数据的文件。例如,表中的记录和索引等都存放在数据文件中。

  读取数据时,如果用户要读取的数据不在内存的数据缓冲区中,那么Oracle就从数据文件中把数据读取出来,放到内存的缓冲区中去,供用户查询;存储数据时,用户修改或添加的数据会先保存在内存的数据缓冲区中,然后由Oracle的后台进程DBWn将数据写入数据文件。

数据文件特点:

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

2。一个数据文件只对应一个数据库。而一个数据库通常包含多个数据文件。

3。数据文件可以通过设置其参数,实现其自动扩展的功能。

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

desc      
【Oracle学习】之 体系结构
column name format a40;
select file#,name,checkpoint_change# from v$datafile;      
【Oracle学习】之 体系结构

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

②控制文件(Control Files)

  控制文件是一个很小的二进制文件,用于描述数据库的物理结构。在Oracle数据库中,控制文件相当重要,它存放着数据库中数据文件和日志文件的信息。

  一个Oracle数据库通常包含有多个控制文件,在数据库的使用过程中,数据库需要不断更新控制文件,一旦控制文件受损,那么数据库将无法正常工作。

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

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

select name from      
【Oracle学习】之 体系结构

③重做日志文件(Redo Log File)

  简称日志文件,是指记录数据库中所有修改信息的文件。借助于日志文件,可以保证数据库的安全,也可以实现数据库备份与恢复。

  为了确保日志文件的安全,在实际应用中,允许对日志文件进行镜像。一个日志文件和它的所有镜像文件构成一个日志文件组,它们具有相同的信息。同一组中的日志文件最好保存到不同的磁盘中,这样可以防止物理损坏带来的麻烦。

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

通过数据字典v$LOG,可以了解系统当前正在使用哪个日志文件组。

select group#, members, status from      
【Oracle学习】之 体系结构

④其他文件

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

二、逻辑存储结构

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

【Oracle学习】之 体系结构

Oracle数据块(Oracle Data Block)、区(Extent)、段(Segment)和表空间(Table space)4种。一个或多个连续的Oracle数据块构成区,一个或多个区构成段,一个或多个段构成表空间,所有表空间构成数据库。

①Oracle数据块

  Oracle数据块是数据库中最小的逻辑存储单元,是数据库执行输入、输出操作的最小单元,由一个或者多个操作系统块构成。

  在Oracle 11g数据库中,数据块分为标准块和非标准块两种,其中标准块由数据库初始化参数DB_BLOCK_SIZE设置,其大小不可更改。Oracle数据库的默认数据缓冲区就是由标准数据块构成的。

【Oracle学习】之 体系结构
show      
【Oracle学习】之 体系结构
Tip:由于块头部、表目录和行目录所组成的头部信息区并不存储实际数据,所以一个数据块的容量实际上就是空闲空间和行空间容量的总和

②区

  区由一系列连续的数据块构成的逻辑存储单元,是存储空间分配的最小单位。

引入目的:为了提高系统存储空间分配的效率,以区为单位的存储空间分配大大减少了磁盘分配的次数。

select min_extents, max_extents, tablespace_name from      
【Oracle学习】之 体系结构

③段

表段、索引段、临时段和退回段。

​​④表空间​​