石晋
[摘 要] 随着辽河油田地质信息系统在勘探开发研究中应用的不断深入,高浏览量和访问量对系统的后台数据库提出了较高的要求。文章在Oracle RAC技术基础上,实施构建了油田地质信息高可用性数据库系统,并通过内存管理及负载均衡提升系统运行效率。
[关键词] Oracle RAC;高可用性;油田地质;内存管理;负载均衡
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2016. 07. 082
[中图分类号] P628 [文献标识码] A [文章编号] 1673 - 0194(2016)07- 0179- 04
0 引 言
辽河油田地质信息系统自2006年运行以来,作为面向全油田提供服务的数据处理门户网站,依托浏览查询、数据加载、数据审核等业务系统、历史资料库与临时管理库等众多资源收集所需信息,通过一体化的底层数据模型以及多种编程技术的应用,形成涵盖井位坐标、井属性、井斜、有效厚度、分层、解释表、测井、录井、试油等13类油田生产数据、能够实现数据、表格、报表、图件一体化应用的综合信息系统。油田地质信息系统的特点是覆盖面广,数据量大,信息种类多,高浏览量和访问量对数据库系统有较高的要求,要求能实现大量用户并发访问的同时保障其24×7的可用性、可靠性、故障快速恢复。保证数据库的高可用性,直接影响辽河油田勘探开发研究水平。
1 ORACLE RAC技术
Oracle RAC(RAC:Real Application Cluster),即Oracle实时应用集群,是Oracle 数据库的一种高可用解决方案,以网格计算思想而产生的[1]。在RAC环境中,Oracle运行于两个或多个计算机节点上,各节点部署集群组件、数据库监听、数据实例、数据库服务等,而数据文件则部署在独立存储中,被各节点共享使用[2]。节点中的数据库实例通过高速缓存合并机制(Cache Fushion)进行数据同步。
Oracle数据库集群具有负载均衡(Load Balance)和透明应用故障切换(Failover)两大特征。负载均衡是把数据访问请求分配到集群中的各节点中,从而提高数据库系统的整体吞吐能力;透明应用故障切换提供24×7提供不间断的数据访问,当一个节点出现故障时,连接在该节点上的终端用户会被自动重新连接到其余正常的数据库节点上,无需手工连接,该切换对客户端的数据访问是透明的[3-4]。
应用服务的运行离不开数据,共享数据的集中存储和数据量的不断增长,必然要求数据库必须具备较高的运行性能和稳定性。在传统的单机环境中,通常是将数据库配置在一台服务器上,存在着潜在的不稳定威胁,主要表现在数据丢失的危险性,负载不能动态平衡,无法实现故障时的容错和无断点恢复等。而采用Oracle RAC集群技术,动态的进行负载均衡,可提高访问数据库的效率,提高数据中心的可靠性和抗灾难性,为信息系统提供一个高效、可靠的数据平台。
2 实施方案
2.1 环境规划
(1)数据库服务器。采用4台Oracle SPARCT4-4服务器:4×SPARC T4 八核 3.0G Hz 处理器、512 G内存、4×600 GB 10 K rpm SAS 磁盘,拥有出色的单线程和多线程吞吐性能,提供适合于大型数据库以及地质绘图的综合应用服务。
(2)软件平台。操作系统采用Solaris 10,数据库软件采用Oracle 11g及Oracle 11g RAC相关组件。
(3)存储服务器。使用2台HDS VSP存储阵列,具有强大的可横向、纵向及深度的扩展功能,为共享存储虚拟化的多个应用提供安全的多用户环境。Oracle RAC集群是完全共享式的体系架构,因此存储机制采用ORACLE自带的自动存储管理(ASM),兼顾磁盘间大量的IO快速读写及联机磁盘的动态平衡。每台HDS均划分出25个250 G的LDEV,组成ASM的+DATA卷组,用于存放数据库数据;3个1 GB的LDEV,组成asm的+OCRVT卷组,用于存放控制文件、参数文件、联机日志文件等;其中一台HDS划分出15个250 GB的LDEV,组成ASM的+ARCH卷组,用于存放Oracle数据库的自动归档文件;这些卷组均作为共享磁盘,分配给4台数据库服务器。
(4)网络。采用2台Brocade 5100交换机,搭建SAN存储网络,避免单点故障,保障SAN环境的安全可靠性;采用2台Infiniband交换机实现私有网络,保障私有网络的可靠性与失败切换。
2.2 部署实施
2.2.1 架构设计
考虑到地质信息系统对底层数据库性能的要求以及对高峰负载的处理,选择采用4台Oracle RAC架构为用户提供数据查询与保存服务,作为数据库服务器,每台主机配备2块网卡:一块网卡用于公共网络上的客户程序通信,另一块用于集群通信。同时为了保证数据库运行的安全性、稳定性与可靠性,在此架构设计过程中,全面考虑了服务器、网络、存储的冗余,最终实现了高可用数据库集群系统。系统的架构如图1所示。
与以往双机热备环境不同的是,集群系统的4个节点可以同时为用户提供服务,解决了同时只能1台数据库服务器为用户提供服务的问题;4个节点服务器通过2台控制交换机与“心跳线”相互监测对方的运行状态,包括操作系统的运行、网络通信和应用运行情况等,一旦发现1台主机的运行出现问题,故障机上的应用就会立即停止,其上的应用及资源就会被转移至另外3台数据库节点中的一台,解决了高可用问题。考虑到RAC的缓存融合需要,采用Infiniband交换机作为节点间的互连通信设备,这4台数据库服务器向用户提供的数据是完全相同的,不会因为用户连接到不同节点而出现数据不一致的情况,同时也避免因为某节点故障而导致存活节点上用于互连的网卡被禁用。
在网络设计上采用全冗余架构,数据库内网采用双线连接到2台内网核心交换机。当网络中一条链路出现故障时,服务器的流量会自动切换到另外一条网络链路,保证用户的正常使用。集群存储采用FC-SAN的架构,使用作为主存储,每台数据库服务器都是用两块HBA卡和FC数据交换机相连,FC交换机和HDS存储相连。这些FC链路都是采用双线连接,当一条链路出现故障时,系统仍然能够正常稳定运行。
2.2.2 具体实施
根据以上部署方案,简要介绍一下4节点集群系统的安装及配置过程。
(1)按照系统架构图搭建系统硬件平台,安装Solaris 10操作系统,连接光纤存储;
(2)组装存储设备,创建数据体系共享逻辑卷组,向其中添加设备;
(3)进行安装前环境检查,配置系统参数、环境变量及oracle用户环境;
(4)安装集群系统Grid软件、Oracle 11g软件, 创建ASM磁盘组;
(5)创建数据库,手动开启归档并对数据库参数进行设置。
2.3 内存管理
集群系统是由4节点组成,每节点实例都有自己的内存区域,分为系统全局区SGA(System Global Area)和程序全局区PGA(Program Global Area)。SGA是每个数据库主要的缓存区域,PGA由进程在本地分配用于保护与用户进程相关的内存段。在11g中,oracle内存管理引入了自动内存管理AMM(AutomaitcMemory Managerment),通过修改参数MEMORY_TARGET及MEMORY_MAX_TARGET实现,将SGA和PGA都纳入了自动管理的范畴。设置并启动AMM后,Oracle将自行决定SGA和PGA的分配和使用,可极大的简化DBA对于内存的调整和管理工作。
# su - oracle
■ sqlplus /nolog
SQL> conn / as sysdba
SQL> alter system set memory_target=4096m scope=spfilesid='*'
SQL> alter system set memory_max_target=4096m scope=spfilesid='*'
MEMORY_TARGET参数指定的是在自动管理时可以使用的共享内存大小,不能超过MEMORY_MAX_TARGET参数设置的大小。如果没有设置,默认等于MEMORY_TARGET的值,通过指明scope=spfile这个条件来实现数据库在下次启动后让改变生效的目的。
2.4 负载均衡
在Oracle RAC体系中,负载均衡(Load Balance)是指对用户连接进行管理,使他们从事的工作平均分布在Oracle RAC节点或集群数据库实例之间[5]。共有两种类型的连接负载均衡,客户端负载均衡和服务器端负载均衡。客户端负载均衡是在客户端连接定义文件tnsnames.ora中通过设置参数LOAD_BALANCE=ON来实现,默认为ON,因此除非是希望关闭,否则不需要这一引用。
服务器端负载均衡主要由服务器监听器(Listener)来实现。当收到新的连接请求时,监听器将判断每个数据库实例(Instance)的工作负载,并选择一个最轻负载的实例进行连接;数据库进程pmon会将每个实例的工作负载情况通知监听器,以便监听器能够掌握各数据库实例的负载情况。只有在数据库实例初始化参数LOCAL_LISTENER和REMOTE_LISTENER中指定的监听器才能够接受这些负载数据,可采用命令SQL>show parameter listener进行查看。从Oracle 11g开始,Oracle自动为LOCAL_LISTENER数据库参数设定值,因此不需要手动设置这个参数。对于REMOTE_LISTENER,必须保证这一参数的值为rac-scan:1521,如果不正确,可以尝试利用以下命令修改:
SQL> alter system set remote_listener= 'rac-scan:1521' scope=bothsid='*';
这一命令要在每个节点上单独执行,注意区分HOST的名字及sid的值;
通过上述配置,可以实现4个节点间负载的动态均衡,保证负载在集群的各个节点中均衡分发,使用户的作业能够以最快的速度被数据库服务器处理。
3 实施效果
应用本文部署的Oracle 11g RAC集群系统后,我们对访问地质信息系统的客户端数量与服务器响应时间进行了统计,结果见图2。如图2所示,集群系统下,地质信息系统的响应时间明显短于传统的单机系统,而且,随访问系统的客户端数量递增,这种差距便越发显著。这是由于在传统的单机模式下,所有的作业在服务器端按串行方式逐个执行,客户端等待时间长,服务器负载高;而集群模式下所有的作业会按照各个节点负载的多少均衡分发并行执行,因此客户端延迟小,能够做到负载均衡。本文中所应用的4节点Oracle 11g RAC系统能够在最大的程度上发挥这种优势。
此外,集群系统的处理速度比照传统的单机系统也有显著的提升。如图3所示,当利用地质信息系统进行指定层位的井位分布图绘制时,随着井数的增加,集群系统所需的处理时间增长趋势远低于传统单机系统。当客户端需要绘制一张2000口井的井位分布图,传统系统模式需要70秒,集群模式下则只需19秒,节省约2/3的时间。
4 结 语
应用本文部署的Oracle 11g RAC集群系统,充分利用了服务器资源,能够显著降低服务器访问负载,使地质信息系统的运行效率得到大幅度提升。目前,该架构实施1年以来,已稳定运行与本数据中心,良好的实现了24×7小时无间断服务,能够做到负载科学协调、自动分配、数据处理方式按照并行完成,实现很高的资源利用率等诸多优点。为精确的地质图件绘制与地震解释等地质研究提供良好的数据服务,同时为各项地质业务应用提供了一个高效、可靠的数据平台。
主要参考文献
[1]闫黎.基于Oracle RAC的数据库架构分析与企业应用[J].计算机系统应用,2013,22(11):200-203.
[2]刘宪军.Oracle Rac 11g实战指南[M].北京:机械工业出版社,2011.
[3]柳培林.集群技术在采油厂数据中心的应用研究[J].中国管理信息化,2012,15(2):60-61.