Oracle 存储类型
Oracle 数据库支持的主要存储类型包括:
1) 普通文件系统
2) 集群文件系统
3) 裸设备
4) 自动存储管理(ASM)
============
一 文件系统
============
1 文件系统:
操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。即在存储设备上组织文件的方法。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
2 文件系统由三部分组成:
1)文件系统的接口
2)对对象操纵和管理的软件集合对象
3)对对象操纵和管理的软件集合属性
3 文件系统分类:
1 FAT:FAT16;FAT32
2 NTFS:NTFS4.0;NTFS5.0
3 CDFS:CD-R;CD-W
4 exFAT
5 RAW
6 EXT:Ext2;Ext3;Ext4
7 Btrfs
8 ZFS
9 HFS
10 HFS+
11 ReiserFS
12 JFS
13 VMFS
14 XFS
15 UFS
16 VXFS
17 ReFS
================
二 集群文件系统
================
1 集群文件系统是指:
运行在多台计算机之上,之间通过某种方式相互通信从,而将集群内所有存储空间资源整合、虚拟化并对外提供文件访问服务的文件系统。
其与NTFS、EXT等本地文件系统的目的不同,前者是为了扩展性,后者运行在单机环境,纯粹管理块和文件之间的映射以及文件属性。
2 集群文件系统分为多类
按照对存储空间的访问方式:
1)可分为共享存储型集群文件系统
2)分布式集群文件系统
前者是多台计算机识别到同样的存储空间,并相互协调共同管理其上的文件,又被称为共享文件系统;
后者则是每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点中的文件。
Veritas的VxFS/VCS,昆腾Stornext,中科蓝鲸BWFS,EMC的MPFS,属于共享存储型集群文件系统。
而HDFS、Gluster、Ceph、Swift等互联网常用的大规模集群文件系统无一例外都属于分布式集群文件系统。
分布式集群文件系统可扩展性更强,目前已知最大可扩展至10K节点。
按照元数据的管理方式:
1)可分为对称式集群文件系统
2)非对称式集群文件系统。
前者每个节点的角色均等,共同管理文件元数据,节点间通过高速网络进行信息同步和互斥锁等操作,典型代表是Veritas的VCS。
而非对称式集群文件系统中,有专门的一个或者多个节点负责管理元数据,其他节点需要频繁与元数据节点通信以获取最新的元数据比如目录列表文件属性等等,后者典型代表比如HDFS、GFS、BWFS、Stornext等。
对于集群文件系统,其可以是分布式+对称式、分布式+非对称式、共享式+对称式、共享式+非对称式,两两任意组合。
对于分布式集群,其对文件元数据的管理方式又可以分为:
1)single path image
2)single filesystem image
按照文件访问方式:
1)可分为串行访问式
2)并行访问式(俗称为并行文件系统)
串行访问是指客户端只能从集群中的某个节点来访问集群内的文件资源,而并行访问则是指客户端可以直接从集群中任意一个或者多个节点同时收发数据,做到并行数据存取,加快速度。
HDFS、GFS、pNFS等集群文件系统,都支持并行访问,需要安装专用客户端,传统的NFS/CIFS客户端不支持并行访问。
==========
三 裸设备
==========
1 裸设备(raw device):
也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊块设备文件。
由应用程序负责对它进行读写操作。不经过文件系统的缓冲。它是不被操作系统直接管理的设备。
这种设备少了操作系统这一层,I/O效率更高。不少数据库都能通过使用裸设备作为存储介质来提高I/O效率。
2 裸设备和文件系统性能对比:
1) 联机交易操作(并发用户多,事务小):
删除,插入,查询,更新操作在裸设备上执行的响应时间,比在文件系统执行的响应实现更快;
2) 全表扫描操作(并发用户少,事务大):
第一次进行查询:裸设备响应时间低于文件系统
第二次进行查询:裸设备响应时间高于文件系统
充分缓存后查询:裸设备响应时间高于文件系统
3)
顺序读:文件系统快
顺序写:裸设备快
随机读:裸设备快
随机写:裸设备快
3 文件系统和裸设备的原理分析:
基于文件系统的数据库操作,对数据的I/O操作需要经过操作系统的内存缓冲区,同时也要存储在数据库的SGA区,这样不仅在内存保存两份数据,也导致了访问开销的增加;
基于裸设备的数据库操作,I/O操作不需要存储在操作系统的内存缓冲区,同时也支持异步I/O,支持更大批量的读写操作。
因此裸设备总体上I/O操作开销小,而性能更佳。
但是在大批量数据进行顺序读时,也就是数据仓库等系统进行大型统计操作的情况下,特别是进行全表扫描时,由于Oracle Buffer Cache采用LRU算法,这些数据保存在LRU列表的尾部,比按索引访问的数据会更快的淘汰出Buffer Cache。
如果采用裸设备技术,这些数据的重复访问将很可能导致磁盘I/O操作。
如果采用文件系统技术,这些数据虽然不在Oracle内存中,但只要操作系统内存足够,这些数据还保存在操作系统内存中。
因此,文件系统情况下,大量统计运算操作,特别是重复数据的访问反而会更快些。
====================
四 自动存储管理(ASM)
====================
1 ASM将传统文件系统和裸设备的优点尽量结合起来。
ASM不需要在操作系统内存进行缓存,因此ASM也是一种裸设备,具有与裸设备相当,甚至更优势的性能。
而ASM的自动管理特性又大大降低了裸设备方式的管理负担,特别是11G的ASM集群管理系统(ACFS),使用户访问和管理ASM更加方便和快捷。
2 Oracle即将不支持裸设备
所谓部分不支持裸设备是指不能通过DBCA工具将数据库建立在裸设备上,而只能通过命令行方式进行。
11gR2不能将OCR和Voting Disk建立在裸设备上。
3 ASM和裸设备性能对比:
在并行模式下,Oracle ASM模式速度略快,而在单线程模式下,裸设备更快些。
也就是说在OLTP系统中,裸设备略快些,而在大批量数据访问情况下,由于Oracle ASM更容易将数据均匀分布到多个存储单元中,所有表现更好。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29785807/viewspace-1770469/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29785807/viewspace-1770469/