1 操作系统文件。 这种是大家最常用的方式了,也是非商业运行模式(比如开发或者开发阶段的测试环境)下最常用的形式。当大家安装Oracle的时候,如果选用了操作系统文件的存储形式,那么就会把Oracle的数据存储在操作系统中,以文件的形式存在。就好像我们玩某些单机版游戏,你的存档就是操作系统的文件一样。用文件形式存储数据,带来的优点就是易于数据库移动。比如你把Oracle的数据文件直接copy到一台电脑上,就可以很快复制出一个一样的数据库系统出来。在文件的读写的时候,操作系统通常会提供缓存形式进行读写,避免过多读写硬盘对磁盘造成很大伤害。所以用操作系统文件形式存储数据,等于先天性获得了操作系统的缓存功能。
2 裸分区。裸分区就是把数据库直接写在磁盘上,不再经过操作系统这一层,Oracle专门来对这个分区进行读写。因为没有了操作系统这一层,所以读写起来的速度和性能是质一般的飞跃的,在某些对Oracle读写非常频繁的数据库应用中,采用裸分区形式存储数据甚至可以提高30%以上的性能。当然,如果数据存储是采用的操作系统文件,如果在Unix下采用RAID对于文件读写操作频繁的情况下也是一个可以提高性能的手段。
3 自动存储管理。 自动存储管理通常也被称为ASM,是在Oracle 10g以后才提供的一种新的存储形式。这种存储形式貌似是前两种存储形式的折中。既不是用的host操作系统的文件系统,也不是裸分区的形式直接由Oracle读写。而是可以看作为一种Oracle特有的文件系统形式。在ASM上可以存储数据文件,控制文件,日志文件等等,在ASM中,这些也是以文件的形式存在的,只不过这个时候的文件格式是Oracle自有的ASM形式。在Linux中和ASM有点相似的就是LVM(逻辑Volume管理),也是可以看作是一种自有的新的文件系统形式。
4 集群系统OCFS(RAC)。RAC的全称是什么呢,就是Real Application Cluster,是一种在集群的环境下实现共享的一种数据库存储形式。在通常我们的数据库,如果是单机版的数据库,当数据文件磁盘不能访问,那么这个数据库就挂掉了。如果是集群共享数据库的话,其中一种方法就是在某个节点存放数据文件,其余的数据库都通过NFS或者Samba来进行共享,虽然数据库的数据处理能力得到了很大的提高,不过如果这个存储节点挂掉的话,同样数据库也就宕掉了。而OCFS则是一种无断点恢复的存储形式,在整体给人的感觉就是每台数据服务器都有自己的文件系统,但是这些文件系统又仿佛只是同一个文件系统,因为数据更新或者其他的操作都是很统一的。即使某台电脑挂了,其余的服务器照样运行,不会出现数据库的异常,而如果想新加入一台服务器也是很简单的事。特别适合于商用的7X24这种服务形式。
Oracle10g中的4种数据存储方式都介绍完了,我们最常用的自然是第一种形式,不过后面三种形式在商用环境下比较多。特别在大型商用对可靠性要去很高应用中,第四种RAC形式的使用是比较多的。当然,这里只是很简要的介绍了一下几个文件系统的概念。如果要仔细了解的话,当然是要好好查阅Oracle技术手册了。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1504817