现在的位置: 首页 > 综合 > 正文

《Oracle编程艺术》学习笔记(9)-Oracle中的文件-数据文件

2013年01月27日 ⁄ 综合 ⁄ 共 1266字 ⁄ 字号 评论关闭

在 Oracle 中,可以用4 种文件系统机制存储数据。(一个数据库中可能包含下述所有类型文件)
·“Cooked”操作系统(OS)文件系统
这些文件存放在OS的文件系统中。可以使用OS工具来移动文件。Cooked 文件系统通常也会缓存,这说明在你读写磁盘时,OS会为你缓存信息。

·原始分区(raw partitions,也称裸分区)
这不是文件,而是原始磁盘。不能用OS工具查看其内容。它们就是磁盘上的一些大扇区,上面没有任何文件系统。对Oracle来说,整个原始分区就是一个大文件。这与cooked 文件系统不同,cooked 文件系统上可能有几十个甚至数百个数据库数据文件。目前,只有极少数Oracle安装使用原始分区,因为原始分区的管理开销很大。原始分区不是缓冲设备,所完成的所有I/O 都是直接I/O,对数据没有任何OS 缓冲(不过,对于数据库来说,这通常是一个优点)。

·自动存储管理文件系统(Automatic Storage Management,ASM)
这是Oracle 10g Release 1 的一个新特性(标准版和企业版都提供了这个特性)。ASM是专门为数据库设计的文件系统。可以简单地把它看作一个数据库文件系统。

·集群文件系统
这个文件系统专用于RAC(集群)环境,看上去有些像由集群环境中多个节点(计算机)共享的cooked 文件系统。Oracle 集群文件系统(Oracle Cluster File System,OCFS)是Oracle在这个领域推出的一个新的文件系统,目前只能在Windows和Linux上使用。其他第三方开发商也提供了一些经认证的集群文件系统,也可以用于Oracle。集群文件系统让cooked 文件系统的优点延伸到了集群环境中。

Oracle的存储体系总结如下:
(1) 数据库由一个或多个表空间(Tablespace)组成。

(2) 表空间由一个或多个数据文件组成。这些文件可以是文件系统中的cooked 文件、原始分区、ASM管理的数据库文件,或集群文件系统上的文件。表空间包含段(Segment)。
表空间->http://blog.csdn.net/fw0124/article/details/6652305

(3) 段(TABLE、INDEX 等)由一个或多个区段(Extent)组成。段在表空间中,但是可以包含这个表空间中多个数据文件中的数据。

(4) 区段是磁盘上一组逻辑连续的块(Block)。区段只在一个表空间中,而且总是在该表空间内的一个文件中。

(5) 块是数据库中最小的分配单位,也是数据库使用的最小I/O单位。
通常Oracle从磁盘读写的就是块。
一个数据库中允许有多种块大小,目的是为了可以在更多的情况下使用可传输的表空间。如果能传输表空间,DBA就能从一个数据库移动或复制格式化的数据文件,把它放在另一个数据库中。
数据库还有一个默认的块大小,即执行CREATE DATABASE命令时初始化文件中指定的大小。SYSTEM表空间总是使用这个默认块大小。
可以按非默认块大小创建其他表空间。在所有给定的表空间内部,块大小都是一致的。

抱歉!评论已关闭.