高层中间连廊天井通透:Oracle数据库中的存储层次体系-----数据文件--文件
来源:百度文库 编辑:九乡新闻网 时间:2024/04/18 20:15:43
数据库由一个或多个表空间构成。表空间(tablespace)是Oracle 中的一个逻辑存储容器,位于存储层次体系的顶层,包括一个或多个数据文件。这些文件可能是文件系统中的cooked文件、原始分区、ASM管理的数据库文件,或者是集群文件系统上的文件。表空间包含段,请看下面的介绍。
1. 段
现在开始分析存储层次体系,首先讨论段,这是表空间中主要的组织结构。段(segment)就是占用存储空间的数据库对象,如表、索引、回滚段等。创建表时,会创建一个表段。创建分区表时,则每个分区会创建一个段。创建索引时,就会创建一个索引段,依此类推。占用存储空间的每一个对象最后都会存储在一个段中,此外还有回滚段(rollback segment)、临时段(temporary segment)、聚簇段(cluster segment)、索引段(index segment)等。
注意 上面有这样一句话:“占用存储空间的每一个对象最后都会存储在一个段中”,这可能会把你搞糊涂。你会发现许多CREATE语句能创建多段的对象。之所以会产生困惑,原因是一条CREATE语句最后创建的对象可能包含0个、1个或多个段!例如,CREATE TABLE T ( x int primary key, y clob)就会创建4个段:一个是TABLE T的段,还有一个段对应索引(这个索引是为支持主键而创建的),另外还有两个CLOB段(一个CLOB段是LOB索引,另一个段是LOB数据本身)。与之不同,CREATE TABLE T ( x int, y date ) cluster MY_CLUSTER则不会创建任何段。第10章还会更深入地讨论这个概念。
2. 区段
段本身又由一个或多个区段组成。区段(extent)是文件中一个逻辑上连续分配的空间(一般来讲,文件本身在磁盘上并不是连续的;否则,根本就不需要消除磁盘碎片的工具了!)。另外,利用诸如独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)之类的磁盘技术,你可能会发现,一个文件不仅在一个磁盘上不连续,还有可能跨多个物理磁盘。每个段都至少有一个区段,有些对象可能还需要至少两个区段(回滚段就至少需要两个区段)。如果一个对象超出了其初始区段,就会请求再为它分配另一个区段。第二个区段不一定就在磁盘上第一个区段旁边,甚至有可能不在第一个区段所在的文件中分配。第二个区段可能与第一个区段相距甚远,但是区段内的空间总是文件中的一个逻辑连续空间。区段的大小可能不同,可以是一个Oracle数据块,也可以大到2 GB。
3. 块
区段又进一步由块组成。块(block)是Oracle中最小的空间分配单位。数据行、索引条目或临时排序结果就存储在块中。通常Oracle从磁盘读写的就是块。
1. 段
现在开始分析存储层次体系,首先讨论段,这是表空间中主要的组织结构。段(segment)就是占用存储空间的数据库对象,如表、索引、回滚段等。创建表时,会创建一个表段。创建分区表时,则每个分区会创建一个段。创建索引时,就会创建一个索引段,依此类推。占用存储空间的每一个对象最后都会存储在一个段中,此外还有回滚段(rollback segment)、临时段(temporary segment)、聚簇段(cluster segment)、索引段(index segment)等。
注意 上面有这样一句话:“占用存储空间的每一个对象最后都会存储在一个段中”,这可能会把你搞糊涂。你会发现许多CREATE语句能创建多段的对象。之所以会产生困惑,原因是一条CREATE语句最后创建的对象可能包含0个、1个或多个段!例如,CREATE TABLE T ( x int primary key, y clob)就会创建4个段:一个是TABLE T的段,还有一个段对应索引(这个索引是为支持主键而创建的),另外还有两个CLOB段(一个CLOB段是LOB索引,另一个段是LOB数据本身)。与之不同,CREATE TABLE T ( x int, y date ) cluster MY_CLUSTER则不会创建任何段。第10章还会更深入地讨论这个概念。
2. 区段
段本身又由一个或多个区段组成。区段(extent)是文件中一个逻辑上连续分配的空间(一般来讲,文件本身在磁盘上并不是连续的;否则,根本就不需要消除磁盘碎片的工具了!)。另外,利用诸如独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)之类的磁盘技术,你可能会发现,一个文件不仅在一个磁盘上不连续,还有可能跨多个物理磁盘。每个段都至少有一个区段,有些对象可能还需要至少两个区段(回滚段就至少需要两个区段)。如果一个对象超出了其初始区段,就会请求再为它分配另一个区段。第二个区段不一定就在磁盘上第一个区段旁边,甚至有可能不在第一个区段所在的文件中分配。第二个区段可能与第一个区段相距甚远,但是区段内的空间总是文件中的一个逻辑连续空间。区段的大小可能不同,可以是一个Oracle数据块,也可以大到2 GB。
3. 块
区段又进一步由块组成。块(block)是Oracle中最小的空间分配单位。数据行、索引条目或临时排序结果就存储在块中。通常Oracle从磁盘读写的就是块。
Oracle数据库中的存储层次体系-----数据文件--文件
分享:oracle之物理数据库结构概述(数据文件、重做日志文件,控制文件等各种数据库文件)...
Oracle 移动数据文件的操作方法
利用windows脚本实现Oracle数据库定时导出文件
科学数据库建设中的十大体系
数据文件误删除后的数据库恢复
Oracle存储过程
oracle 存储过程
存储过程 简介 数据库
如何有效地将电脑中的文件资料归类存储?
查看oracle数据库MAXLOGFILES
Oracle连接远程数据库
oracle数据库概念
Java连接Oracle数据库
ORACLE数据库命名规范
Oracle 数据库监听配置
Oracle数据库监听配置
Oracle数据库监听配置
Oracle数据库常见问题答疑
理解oracle数据库字符集
oracle数据库巡检
讲解Oracle移动数据文件到新分区的过程
Oracle sqlplus远程连接数据库
[转载]ORACLE数据库备份方法