资源描述:
《unix裸设备在oracle中的应用与研究》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Unix裸设备在Oracle中的应用与研究52福建电脑2006年第7期Unix裸设备在Orac1e中的应用与研究张引琼,戴小鹏,童作刚(湖南农业大学计算机与信息工程学院,湖南长沙410128)【摘要】:通过对OraeleforUnix中裸设备性能的测试分析,说明了使用裸设备的优缺点,有助于帮助大家更加了解裸设备.并且提供给各领域的Oracle数据库管理员必要的信息去决定是否有必要去使用UNIX的裸设备.【关键词】:裸设备,UNIX,缓存0.引言裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Uni】【通过文件系统来读取的特殊字符设备.它不经过文件系统的缓冲.由应用程序
2、负责对它进行读写操作.关于裸设备对0RACLE数据库系统性能的影响存在几种不同的观点.一种观点认为ORACLE磁盘I/O性能的改善得益于裸设备而不是UNIX文件系统:而另一种观点则认为裸设备对ORACLE性能提高的作用不大.还有观点认为.使用裸设备并跳过ut~ix文件缓冲能使ORACLE磁盘I,0性能提高5%20%.但这些数据并不能够准确反映裸设备能比一般的文件系统获得更多的性能提升.在生产系统中使用裸设备,只有当磁盘I/O成为系统瓶颈时,系统性能才能得到实质的提升.数据库使用缓存来管理对大批量实时数据的访问.很多ORACLE数据库系统的I/O问题.是由于没有对其应用查询进行优
3、化.从而导致许多大的全表扫描引起的,并非是其配置不好.像这类问题在使用裸设备后性能可能会得到改善,但最终只有通过优化SQL,检查改善ORACLE执行计划才能得到彻底解决.用户将0RACLE数据文件从UNIX文件系统移植到裸设备是一个数据重组的过程.需要删除并重新生成原有储存在数据文件里的数据,这个过程将行链接降至理论上的最小值并重建索引,将性能提高了5%20%.同样将读写性能很差的存在行链接的表从裸设备移植到UNIX文件系统时也能使性能提升5%20%.本文从使用裸设备的利弊,裸设备的适用场合及其使用方法三个方面讨论了裸设备.1.使用裸设备的利弊使用裸设备带来的好处是:(1)可以
4、不使用UNIX文件缓冲:跳过UNIX文件缓冲以减少磁盘读写次数.这种做法只有存在磁盘I/O瓶颈时才能显着提高系统的性能(2)更好的利用内存:UNIX用于缓存文件I/O的内存能够被数据库系统用于其自身的高速缓存,更好的利用内存.这种做法只有在系统本身内存不足的情况下才有显着的帮助.在一些大而复杂的事务处理情况下使用裸设备虽然能够提高性能,但为了使用裸设备,数据库工程师不得不作出一些牺牲,比如ORACLE所提供的数据文件自动扩展功能.使用裸设备的缺陷是:(1)使用裸设备不可能使用户有比较多的进行复杂配置规划的机会(2)在复杂的配置调优中,如何查找热点磁盘,将数据文件从该磁盘转移至另
5、外一个磁盘在UNIX文件系统中是一件极其简单的事情.但在裸设备环境里却是不可能的.(3使日常管理复杂化,管理员必须用比维护UNIX文件系统更童杂的UNIX工具去监控和管理裸设备.而且DBA不能使用一部分标准的OFA的ORACLE数据存储功能.2.裸设备的适用场合尽管使用裸设备存在一些弊端.但在以下的情况下应该选择使用裸设备:,(1)使用了0Ps(8I).如果使用了Oracle并行服务器选项,那么必须采用裸设备来存放所有的数据文件和控制文件,并重做日志文件.因为只有把这些文件放到裸设备上,才能保证所有Oracle实例都可以读取这个数据库的文件,这是由Unix操作系统的特性决定的在
6、ORACLE9I的RAC中提供了OCFS来消除8I中使用裸设备的限制.(2)不能使用直接I/O.当UNIX操作系统不提供通过UNIX文件系统使用直接I/O的情况下考虑使用裸设备.a.一些UNIX主机提供了直接读写UNIX文件系统的内核.这些内核的特点是允许应用软件跳过UNIXI/O缓存机制来提高性能.实质上相当于使用了裸设备,但不会产生管理裸设备带来的开销.ORACLE数据库系统从6.0版本开始提供该功能.(3)大量的事务处理.当出现磁盘l/O瓶颈,大的事务处理和大量查询的情况时考虑使用裸设备.如果磁盘I/O不是性能瓶颈.那么使用裸设备不会带来任何好处;如果磁盘I/O是性能瓶颈
7、,对一些应用SQL进行跟踪分析并且优化该sQL是提高系统性能的一个好方法.返回大量数据行(数万或者数十万)的正常查询促使DBA使用裸设备.但是在使用裸设备前.DBA应该确定返回数万或者数十万行数据的应用设计是否合理.另外一个需要注意的问题是,每个UNIX文件缓存都是写缓存,一些ORACLE的物理I,0请求在UNX文件系统环境中将通过逻辑读来实现.因此DBA以及UNIX系统管理员应当为了使用裸设备而完全丢弃文件系统缓存.(4)裸磁盘盘片充足.当裸设备磁盘比ORACLE表空间多的情况下考虑使用裸