oracle数据块由几个操作系统块构成,【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. 回退段用于保存数据库的回退信息,可以实现事务回滚、数据库恢复、数据的读一致性和闪回查询。

总结

以上是编程之家为你收集整理的【Oracle学习】之 体系结构全部内容,希望文章能够帮你解决【Oracle学习】之 体系结构所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值