zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

带您了解Oracle文件系统机制

2023-04-18 15:54:49 时间

Oracle文件系统对于很多刚接触Oracle数据库的新人来说,可能还是一个陌生的概念。下面就为您详细介绍Oracle文件系统机制,希望可以对您学习Oracle有所帮助。

在Oracle中,可以用4种Oracle文件系统机制存储你的数据。这里强调了“你的数据”,是指你的数据字典、redo记录、undo记录、表、索引、LOB等,也就是你自己每天关心的数据。简单地讲,这包括:   

“Cooked”操作系统(OS)文件系统

这些文件就像字处理文档一样放在文件系统中。在Windows 资源管理器中可以看到这些文件,在UNIX上,可以通过ls命令看到这些文件。可以使用简单的OS工具(如Windows上的xcopy或UNIX上的cp)来移动文件。从历史上看,Cooked OS文件一直是Oracle中存储数据的“最流行”的方法,不过我个人认为,随着ASM(稍后再详细说明)的引入,这种情况会有所改观。Cooked文件系统(“加工”文件系统或“熟”文件系统)通常也会缓存,这说明在你读写磁盘时,OS会为你缓存信息。
原始分区(raw partitions,也称裸分区)

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

自动存储管理(Automatic Storage Management,ASM)

这是 Oracle 10gRelease 1 的一个新特性(标准版和企业版都提供了这个特性)。ASM是专门为数据库设计的文件系统。可以简单地把它看作一个数据库文件系统。在这个文件系统上,不是把购物清单存储在文本文件中;这里只能存储与数据库相关的信息:你的表、索引、备份、控制文件、参数文件、重做日志、归档文件等。不过,即使是ASM,也同样存在着相应的数据文件;从概念上讲,数据库仍存储在文件中,不过现在的文件系统是ASM。ASM设计成可以在单机环境或者集群环境中工作。
集群文件系统

这个文件系统专用于RAC(集群)环境,看上去有些像由集群环境中多个节点(计算机)共享的cooked文件系统。传统的cooked文件系统只能由集群环境中的一台计算机使用。所以,尽管可以在集群中的多个节点之间使用NFS装载或Samba共享一个cooked文件系统(Samba与NFS类似,可以在Windows/UNIX环境之间共享磁盘),但这会导致一损俱损。如果安装有文件系统并提供共享的节点失败,这个文件系统都将不可用。Oracle集群文件系统(Oracle Cluster File System,OCFS)是Oracle在这个领域推出的一个新的文件系统,目前只能在Windows和Linux上使用。其他第三方开发商也提供了一些经认证的集群文件系统,也可以用于Oracle。集群文件系统让cooked文件系统的优点延伸到了集群环境中。

数据库可能包含来自上述所有文件系统中的文件,你不必只选其中的一个。在你的数据库中,可能部分数据存储在一个传统的cooked文件系统中,有些在原始分区上,有一些在ASM中,还有一些在集群文件系统中。这样就能很容易地切换技术,或者只是涉及一个新的文件系统,而不必把整个数据库都搬到这个文件系统中。

 

 

【编辑推荐】

Oracle查询重复记录的三种方法

Oracle取固定记录数的实现方法

Oracle记录类型转换

深入解读Oracle修改表结构

oracle自动启动多个数据实例的方法