1.4.2 数据文件
Oracle数据库逻辑上由一个或多个表空间组成,每个表空间在物理上由一个或多个数据文件组成,而一个数据文件只能属于唯一的表空间或数据库。Oracle通过为表空间创建数据文件来从硬盘中获取物理存储空间。Oracle的数据逻辑上存储在表空间中,而物理上存储在表空间所对应的数据文件中。
1.数据文件概述
数据文件是由Oracle数据库创建的物理文件,它用来存储表、索引和视图等数据结构。临时文件是属于临时表空间的数据文件。Oracle数据库将数据以其他程序不可读的专用格式写入数据文件。
在创建数据库对象时,用户不能指定将对象存储在哪一个数据文件中,而由Oracle负责为数据库对象选择一个数据文件并为其分配物理存储空间。一个数据库对象的数据可以全部保存在一个数据文件中,也可以分布在同一个表空间的多个数据文件中。数据文件与表空间的关系如图1-5所示。
2.数据文件结构
通过为表空间分配指定的磁盘空间来创建表空间的数据文件,磁盘空间中也包括数据和数据文件头信息。数据文件头信息包括数据文件大小、检查点SCN、绝对文件号和相对文件号等元数据。绝对文件号在数据库中唯一标识数据文件,相对文件号在一个表空间中唯一标识数据文件。
3.查询数据文件信息
如果要查看数据文件的信息,那么可以查询动态性能视图V$DATAFILE和V$DATAFILE_HEADER或数据字典DBA_FREE_SPACE、DBA_DATA_FILES、DBA_EXTENTS、USER_EXTENTS和USER_FREE_SPACE。
(1)DBA_DATA_FILES视图
DBA_DATA_FILES视图包括数据库中所有数据文件的信息,包括数据文件所属的表空间、数据文件编号等。只有管理员权限的用户才可以查询该视图。
(2)DBA_FREE_SPACE视图
DBA_FREE_SPACE视图包括所有表空间中空闲区所属的数据文件和空闲区大小等信息。
(3)USER_FREE_SPACE视图
USER_FREE_SPACE视图包括当前用户可访问表空间的空闲区的信息。它的结构信息与DBA_FREE_SPACE相同。
(4)V$DATAFILE动态性能视图
V$DATAFILE动态性能视图中是从控制文件中得到的关于数据文件的信息,包括数据文件大小、建立时间、所属表空间、最后SCN等。