oracle数据库的存储结构:

 逻辑存储结构:oracle内部的组织和管理数据的方式

 物理存储结构:oracle外部(操作系统)组织和管理数据的方式

oracle对逻辑存储结构和物理存储结构的管理是分别进行的。

oracle数据库物理存储结构与逻辑存储结构的基本关系:

1.一个表数据库在物理上包含多个数据文件,在逻辑上包含多个表空间

2.一个表空间包括一个或多个数据文件,一个数据文件只从属于某一个表空间。

3.数据库的逻辑块由一个或多个操作系统块构成

4.一个逻辑区只能从属于某一个数据文件,而一个数据文件可包含一个或多个逻辑区。

 

oralce数据库的物理存储结构

oracle数据库的物理存储结构有一系列操作文件组成,存放于物理磁盘上,是数据库的实际存储单元。这些文件有很多,数据文件,日志文件,控制文件,归档文件,口令文件等。

数据文件:是数据库中所有数据的实际存储位置,所有数据文件的大小的和构成了数据库的大小。数据文件又分为永久性数据文件和临时性数据文件。oracle11g数据库在创建的时候,会默认创建

              5个永久性的和一个临时性的文件。

控制文件:是记录数据库结构信息的重要的二进制文件,由oracle系统进行读写操作,DBA不能直接操作文件。里面信息包括数据库名称、数据文件位置等。

               oracle11g数据库在创建的,默认创建两个控制文件。

重做日志文件:是以重做记录的形式记录、保存用户对数据库锁进行的变更操作,是数据库中最重要的物理文件。是数据库实例恢复的基础。

                    oracle11g数据库在创建时,会默认创建3个重做日志文件组。

归档重做日志文件:是历史联机重做日志文件的集合,是联机重做日志文件被覆盖之前备份的副本。

                         oracle11g数据库在创建的时候 ,默认采用的是非归档模式,即不复制重做日志文件。可以使用archive log list;命令来启用。

初始化参数文件:是数据库启动过程中锁必需的文件,记录了数据显示参数的设置。

口令文件:是用于保存数据中具有SYSDBA或SYSOPER系统权限的用户名及SYS用户口令的二进制文件。

跟踪文件:是数据中重要的诊断文件,是获取数据库信息的重要工具,对管理数据库实例骑着至关重要的作用。它里面包含了数据库系统运行过程中锁遇到的重大事件的有关信息,可以为

               数据库运行故障的解决提供重要信息。

报警文件:也是数据库中重要的诊断文件,记录数据库在启动、关闭、运行期间后台进程的活动情况。

 

oracle数据库逻辑存储结构

oracle数据库的逻辑存储结构是从逻辑的角度来分析数据库的构成,也就是数据库创建后利用逻辑概念来描述Oracle数据库内部数据的组织和管理形式。

数据库的逻辑存储结构概念存储在数据库的数据字典中。

oracle数据库的逻辑存储结构分为 数据块-区-段-和表空间4种。

其中oracle数据块是数据库中最小的I/O单元,又若干个数据块组成的区是oracle最小的存储分配单元。由若干个区形成的段是数据对象的存储分配区域,由若干个段形成的表空间是最大逻辑存储单元,所有的表空间构成数据库。

 

表空间:

表空间是oracle数据最大的逻辑存储结构单元,所有表空间大小的和就是数据库库的大小。在oracle数据库中,存储结构管理主要就是对表空间的管理来实现的。下图是表空间,数据文件盒数据库对象之间的关系。

表空间根据存储数据不同,分为系统表空间和非系统表空间两类。系统表空间主要存放数据的系统信息,如数据字典信息、数据库对象定义信息、数据库组件信息等。

非系统表空间有撤销表空间、临时表空间、用户表空间。

oracle11g自动创建的6个表空间

system   系统表空间      存放数据字典、数据库对象定义、PL/SQL程序源代码等系统信息。

sysaux   系统表空间      辅助系统表空间,存储数据库组件等信息

temp      临时表孔家      存放临时数据,用于排序等操作

undotbs1 撤销表空间    存储、管理回退信息

users      用户表空间      存放用户业务数据信息

example  实例表空间      存放实例的数据库方案对象信息

 

oracle数据块

oracle数据块是数据最小的逻辑单元,也是数据库执行输入、输出操作的最小单位,有一个或多个操作系统块构成

在一个数据库中使用多种数据块时应该注意,一个分区表或者分区索引的各个分区必须要采用相同大小的数据块;所有的临时表空间即系统默认的永久性表空间 必须采用标准块

通过 show parameter cache_size;

支持多种不同大小数据块这一特性对不同oracle数据库之间的数据传输非常有用,如将联机事务处理(OLTP)数据的数据传输到数据仓库中的数据库。

 

数据块的结构如图

由块头部和存储区两部分组成。块头部包括了标题、表目录、行目录3部分

标题包含的一般属性信息,如块的物理地址等;表目录包括了快中保存表的信息;行目录包含数据块中行地址等信息;

 

而存储区包括数据区和空闲区

行数据区是已经使用的空间,而空闲区是尚未使用的存储空间。

 

数据块的管理

数据块的管理主要是对快中的可用存储空间的管理。

当想表中插入数据时,如果行的长度大于了块的大小,即行的信息无法存放在一个快中,就需要使用多个块存放信息,这个称为行链接。

数据块的管理分为手动和自动管理两种。如果建立表空间时使用本地管理方式,并且将段的管理方式设置为auto,则采用自动方式管理数据块。否则将DBA手动管理,

可以通过设置PCTFREE和PCTUSED两个参数来设置数据块中空闲空间的使用。

     PCTFREE参数指定块中必须保留的最小空间空间的比例,即当数据块中空闲空间比例低于这个参数时,此数据块会被标记成used,不能进行插入操作,只能更行。

    PCTUSED参数指定可以向块中插入数据时块已使用的最大空间比例。该参数默认为10

除了这两个参数,还有两个参数在管理数据块的时候有用:

     INITRANS:可以同时对数据块进行DML操作的事务的初始个数,用于保证数据块的最低的并行操作水平。

    MAXTRANS:可以同时对此数据块进行DML的事务的最多个数。

 

区是若干个数据块组成的区是oracle最小的存储分配单元。当创建数据库对象是,ORACLE为对象分配若干个去,以构成一个段来为对象提供初始的存储空间。在oracle数据库中引入区的目的是为了提高系统存储空间分配的效率,以区为单位的存储空间分配大大

减少了磁盘分配次数。、

只有当段被删除时,段中的区才会被回收。

 

段:是由一个或多个连续或不连续的区组成的逻辑存储单元,是表空间的组成单位。但在表空间中创建表、索引等数据库对象是,系统自动为该对象分配段。

段可以分为:表段,索引段,临时段,回退段;

 posted on 2013-06-26 16:56  evencao  阅读(1056)  评论(0编辑  收藏  举报