APP下载

Oracle RAC集群性能优化策略分析

2017-11-15袁光灵孙小林

无线互联科技 2017年22期
关键词:层面集群数据库

袁 勇,袁光灵,孙小林

(1.遵义师范学院 信息工程学院,贵州 遵义 563000;2.遵义市易才完全中学,贵州 遵义 563000)

Oracle RAC集群性能优化策略分析

袁 勇1,袁光灵2,孙小林1

(1.遵义师范学院 信息工程学院,贵州 遵义 563000;2.遵义市易才完全中学,贵州 遵义 563000)

文章从Oracle RAC集群的性能优化策略出发,先后从集群操作系统优化、网络优化、集群数据库优化等方面对集群优化提出相应的优化解决思路,并对Oracle RAC优化方面需要考虑的相应问题作出说明,以供数据中心集群系统管理人员参考.

Oracle RAC;性能优化;策略

随着云计算、大数据、物联网等信息技术的飞速发展,越来越多的数据量相应地产生,对应用系统存储的依赖程度越来越高.同时,对应用系统的稳定性、高可用性的要求也日趋增加,使得信息系统的集成度更高.而高集成度的应用系统对数据库系统性能的要求也相应增加.高可用的集群系统,通常都将以牺牲集群系统的性能为代价.但是作适当的性能优化,一般可以使集群系统的性能相对更优.对于Oracle RAC集群系统来说,Oracle官方网站宣称,调优以后的RAC系统的性能会比单实例数据库提升大约78.3%.因此,Oracle RAC集群系统性能优化工作也是必不可少的,具有一定的意义.本文从操作系统优化、网络优化、缓存优化等诸多方面给出集群优化的一些建议,以供相关技术人员参考.

1 Oracle RAC基本原理

Oracle RAC(Oracle Real Application Clusters),即Oracle真正应用集群,是Oracle数据库实现高可用性的一种技术.Oracle RAC起源于其早期版本的OPS(Oracle Parallel Server),到Oracle 9i时正式更名为RAC,是Oracle公司实现网格计算环境的核心技术.RAC一般由两台或者两台以上具有同构的计算机及共享存储构成,能提供强大的数据处理能力和高可用的访问能力,是Oracle Grid应用的重要组成部分.它可以支持7X24小时在线的应用系统,降低成本构建具有高可用的应用系统.在Oracle RAC集群中,Oracle还内置了存储管理软件ASM和集群软件Clusterware,这样就降低了成本.而且当整个应用系统的规模需要扩充时,用户可以根据需求扩展应用系统,从而扩展系统的性能.到Oracle12C中引入了可插拔数据库等新特性,更好地保障了集群的高可用性和服务性能扩展.

通常在具体实施过程中,我们可以使用两台服务器或者多台服务器,以及存储阵列来构建RAC集群平台,从而保障应用集群系统数据库的高可用性,具体如图1所示.

图1 RAC集群构建拓扑图

2 Oracle RAC集群性能优化分析

针对RAC集群性能优化,通常可以从操作系统优化、网络环境优化、集群数据库优化等方面来开展工作.从而构建出高可用并且性能得到调优的集群环境,进而提高应用系统的访问速度,提升用户体验.

2.1 操作系统层面的优化

对于安装Oracle RAC来说,操作系统环境是相对苛刻的,安装RAC的操作系统必须要通过Oracle RAC的产品认证.这样才能保证集群稳定运行,并且在版本的选择上应该选择相对稳定版本,并打上补丁[1].对于操作系统层面的优化,可以从内存访问效率、系统全局区等调整操作系统参数方面考虑.

2.1.1 内存访问效率的提高

Oracle中包括LOCK_SGA和PRE_PAGE_SGA这两个参数,将SGA使用的内存锁定到物理内存中,合理避免使用交换分区和产生碎片,进而提高内存访问效率.

2.1.2 系统全局区的合理分配

系统全局区设置越大,能缓存的数据越多,但是,设置过大会影响进程的创建,导致服务器宕机等严重的后果.

总之,通过调整操作系统的参数设置.比如,运行在Linux操作系统上的Oracle RAC集群数据库,可以调整Linux交换空间的大小、每个进程所能使用的内存大小、Linux数据缓冲区的大小等参数,可以改善集群服务器操作系统的运行性能,进而提高集群的响应性能.

2.2 网络层面的优化

RAC集群系统对于网络的依赖性很高,其运行的根本就是网络访问的速度明显优于读写存储设备的速度,网络连接的稳定对于集群整体来说也是至关重要的.因此应当考虑服务器网卡的冗余,比如使用双网卡绑定技术.

网络是RAC集群架构中的一个关键部分,理解网络架构、集群件的网络实现对于其设计和诊断性能都是非常重要的.在RAC安装时,特别要注意网络接口配置、子网、内核参数等.在遇到网络丢包或者网络性能问题引起的数据库错误时,要善于用操作系统所带的如ping,traceroute,netstat等命令及工具来对网络问题进行分析处理[2].

2.3 集群数据库层面的优化

Oracle数据库默认的安装方式对于实际的应用系统来说,是不能满足系统需求的,需要进行优化调整[3].

2.3.1 表空间的调整优化

表空间的调整包括数据表空间、临时表空间、undo表空间的调整优化.在RAC中,使用ASM作为数据库存储方式,这其中就涉及数据库区间与ASM逻辑结构区间的映射关系,为了得到更好的性能,就需要在创建表空间时将两个区间设置为相同大小.而对于临时表空间和undo表空间,在设置的时候应保证其足够大,避免其成为操作瓶颈.

2.3.2 Shared Pool性能优化

可以通过提高库高速缓存命中率和数据字典缓存命中率来提高共享池的性能.

2.3.3 Buffer Cache高速缓存性能优化

Buffer Cache的作用主要是提供各种锁、栓锁机制,从而可以使得多个进程并发访问同一个数据块;缓存数据文件中的数据块,减少I/O争用;构造CR块,提供读一致性功能等.

2.3.4 Cache Fusion性能优化

通过合理地使用索引避免对于大表的全表扫描这种方法来提高Oracle RAC中Cache Fusion的性能[4].

除上述Oracle相对早期版本就有的优化技术外,结合新版本中RAC数据库的3A(AWRADDMASH)工具,对RAC数据库进行有效的监控和性能调优是很有必要的.当然,在RAC数据库中,首先要查找到引起性能问题的原因,进而调整相应层面来解决性能问题是根本.在大多数情况下,RAC性能问题均是由于那些隐藏在RAC等待时间后的单实例数据库问题所引起的.

3 结语

本文首先介绍了Oracle RAC集群的产生的背景及基本原理,并给出了其常见的拓扑结构.之后,对集群系统的性能优化,从操作系统层面、网络层面、集群数据库优化层面等分别给出相应的优化思路和解决方法,并针对各个层面优化过程中需要注意的问题给出一定的建议,以供数据库集群系统相关从业技术人员参考.

[1]赛义德.深入理解Oracle RAC 12C[M].赵燚,梁涛,译.北京:电子工业出版社,2014.

[2]刘炳林.构建最高可用Oracle数据库系统Oracle 11gR2 RAC管理、维护与性能优化[M].北京:机械工业出版社,2012.

[3]高斌.Oracle RAC核心技术详解[M].北京:机械工业出版社,2015.

[4]陈志敏.基于Linux平台的Oracle RAC集群系统的性能调整与优化研究[D].合肥:安徽大学,2011.

Analysis on performance optimization strategy of Oracle RAC cluster

Yuan Yong1, Yuan Guangling2, Sun Xiaolin1
(1.Information Engineering College of Zunyi Normal College, Zunyi 563000, China;2.Zunyi Yi Cai Complete Middle School, Zunyi 563000, China)

Based on the performance optimization strategy of Oracle RAC cluster, this paper puts forward the corresponding optimization solution ideas for cluster optimization from the aspects of cluster operating system optimization, network optimization and cluster database optimization. And taking out some questions that we should considerate when do the job of Oracle RAC optimization, which can take some references for the data center cluster system management administrator.

Oracle RAC; performance optimization; strategy

贵州省科技厅联合基金项目;项目名称:基于虚拟化的Oracle12C集群高可用架构与性能优化研究;项目编号:黔科合LH字〔2017〕7071号.

袁勇(1986- ),男,贵州遵义人,实验师,硕士;研究方向:数字优化仿真技术.

猜你喜欢

层面集群数据库
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
健康到底是什么层面的问题
高三化学复习的四个“层面”
策略探讨:有效音乐聆听的三层面教学研究(二)
从语言和体系两个层面理解庄子的“吾丧我”