APP下载

基于Oracle数据库的RAC集群技术在高校图书馆关键业务中的应用研究

2014-01-13广西大学图书馆南宁530004

图书馆理论与实践 2014年6期
关键词:磁盘阵列磁盘实例

(广西大学图书馆,南宁530004)

基于Oracle数据库的RAC集群技术在高校图书馆关键业务中的应用研究

●胡昌文,李 彦,贺文爱,农冬冬,谢卫民(广西大学图书馆,南宁530004)

oracle数据库;RAC;高校图书馆

文章在基于oracle RAC集群技术应用优势的基础上,提出了oracle RAC集群系统的设计框架,实现了关键业务软、硬件上的容错及负载均衡,并通过实例阐述了其核心技术和实现过程。

1 引言

随着计算机技术、网络技术以及信息技术的飞速发展,图书馆的发展模式从传统图书馆发展为与数字图书馆有机结合的复合图书馆时代。图书馆对自动化集成系统的要求越来越高,而图书馆的关键信息服务系统,如自动化管理系统、资源发现系统以及个性化服务系统等,多数都部署在单独的一台服务器上,使得单服务器环境下的信息服务系统完全依赖于独立的一台计算机,不具备可靠的安全性,软、硬件容错及单点故障切换,在服务器硬件资源不足时,也不能实现硬件资源弹性增加与实时扩展,存在一定的安全隐患与性能瓶颈。

基于Oracle数据库的RAC集群服务模式,是一种基于Oracle数据库的单数据库多实例架构,采用一种信息服务两台或多台服务器并发运行,互为备份,负载均衡,公共数据存放在高冗余磁盘阵列中,实现了软、硬件上的冗余,能保障系统安全可靠地运行,实现了数据的永不丢失及信息服务的永不停止,为当前高校图书馆自动化集成管理系统提供了更为安全、可靠和稳定的技术支撑,确保图书馆为广大读者、科研人员等提供7*24小时的可靠学科服务,大大提升了高校图书馆在关键业务等方面的服务质量。

2 RAC集群技术的应用优势

集群是一种并行或分布式的处理系统,由相互独立的两台或多台计算机(节点)组成,并以用户为中心的单一系统模式来加以管理。Oracle RAC集群采用磁盘共享、高速缓存合并以及TAF透明切换等技术,有效地解决了单服务器环境下软、硬件故障引起的架构系统的宕机等隐患,其相对单服务器环境下应用系统具有如下优势。

(1)RAC集群采用两台或多台数据库服务器并发运行,其中任何一台或多台服务器发生软、硬件故障都不会导致信息服务的中断。

(2)Oracle RAC集群系统由多台计算机耦合而成,整体计算能力得到大幅提升,系统的处理性能得到质的飞跃,更适合大数据等高性能处理环境需求。

(3)集群的公共数据存放于高可用磁盘阵列中,一方面,数据的安全性得到有效保障;另一方面,磁盘阵列的磁盘数组分散排列设计,数据读写能力成倍提升。

(4)集群中的节点(服务器)可以被动态添加或删除,从而最大限度地扩展系统以满足不断增加的系统应用负载需求,具有灵活的硬件伸缩性,硬件资源也得到有效的利用。

(5)Oracle RAC集群的各节点同时并发运行,并且可以实现不同用户需求的负载均衡方案,当一个或者多个节点连接超时(可能为网络故障)或者发生硬件故障,能实现将应用无缝透明地切换到其他正常节点继续运行,是实现用户7*24小时不间断服务的理想选择。[1]

(6)具有极高的性价比,其硬件可以利用廉价硬件,包括PC SERⅤER及普通PC,与传统昂贵的大型机或小型机相比,具有很大的价格优势及经济效益。

(7)Oracle RAC集群系统可确保在不停机的情况下,完成图书馆关键应用系统和数据库管理系统软件本身的更新或升级,实现应用无缝更新、升级等功能。

3 设计框架

3.1 原理

真正的应用集群(Real Application Cluster,RAC)是Oracle 10g及以上版本的基础组件,是Oralce公司的首款支持网格计算的数据库组件产品,也是核心组件,是基于JAⅤA的跨平台架构,它的功能包括集群节点之间的管理、控制以及负载均衡机制控制等,属于并行多机结构集群。在oracle RAC平台中实现了自动并行处理、高可用框架、自动负载均衡处理。

Oracle RAC集群采用磁盘共享、高速缓存合并以及TAF透明切换等技术,RAC的硬件系统结构主要由节点、私有网络和共享磁盘三大主要部分构成,其拓扑结构如下图所示。

图RAC集群拓扑图

节点(Node)就是集群中的一台服务器或一台普通电脑,亦可是一台高性能小型机等,节点之间属于对等的关系,并通过内部网络进行监听、交换数据,节点之间均需连接到存放公共数据的磁盘阵列(Shared Disk)。

数据库实例(Ⅰnstance),也称为服务器(Server),是对数据库进行存取和控制的一套软件机制。Orale实例由后台进程与内存结构组成,后台进程包括一系列的进程,如:SMON、PMON、DBWn、LGWR、MMON、MMNL、MMAN及CKPT等后台进程。内存结构包括数据缓冲区、共享池、大缓冲池、Java池、重做日志缓冲区及字典缓冲区等,要访问数据库,必须先要启动实例。一个实例可以对应一个数据库,一个数据库可以对应多个实例,oracle RAC集群正是基于单数据库多实例的体系结构。

集群就绪服务(CRS)是oracle 10g版本推出的集群软件,也称为集群件(Clusterware)。CRS打破了以前Oracle RAC必须借助诸如Ⅴeritas、SUN CLUSTER等第三方集群软件的历史。CRS是一个独立的软件,需单独安装在操作系统之上,通过一系列的进程和服务来管理集群,并为更上层的RAC集群提供服务。CRS对运行在它上面的应用进行实时监测,并对异常情况进行判断、干预。

Oracle RAC采用共享磁盘方式实现数据库集群,一个数据库可以对应多个实例,共享磁盘用来存放全局数据,包括数据库文件、联机重做日志和数据库的控制文件等,并由Oracle集群件并发控制以供集群中的各节点共享访问。[2]磁盘阵列一般都采用RAⅠD技术,RAⅠD即冗余廉价磁盘阵列,其技术思路是把多个物理硬盘通过一些硬件技术和调度算法构成一个更大的逻辑单元,并使用条带化数据方式存取,实现了物理硬盘故障的有效容错,两个甚至多个硬盘同时出现物理故障能确保数据零丢失,由于其特殊调度算法与条带读写原理,使得整个磁盘阵列的数据读写速度有了大幅提升。RAC集群将公共数据存放在共享磁盘阵列的独有特性,满足了用户对节点按需添加与删减的灵活性,并为用户提供容错、负载均衡和并行计算等功能。[3]

透明应用切换(TAF)是oracle RAC集群高可用性能实现的关键技术,当一个节点甚至多个节点失去联系或发生物理故障,应用会被自动切换到其他健康的节点继续运行,这个过程对用户来说是透明,[4]而用户并无明显察觉。信息服务系统的可用性、可靠性得到有效保障。

3.2 并发访问和数据一致性

与普通数据存储技术相比,数据库系统最突出的特点就是支持并发访问,这种并发不单指并发读取,也包括并发修改,多进程的读写并发,数据一致性则成为最大的挑战,RAC设置了优秀的并发控制和数据一致性机制,在一个并发系统内,RAC能有效处理常见的“数据不一致”,如读脏(Dirty Read)、不可重复读(Non Repeatable Read)以及幻影读(Phantom Read)等,能有效实现不同节点对资源的并发访问控制,得到多节点并发读写并发运行,提高整个集群系统的性能。

4 基于oracle数据库的RAC集群的实现

为了更好理解Oracle RAC集群原理与体系架构,本文以广西大学图书馆自动化管理系统为实例,架构并实现基于oracle数据库的RAC集群系统。广西大学图书馆使用北创软件研发的MELⅠNETSⅠⅠ(Modern Electronic LibraryⅠnformation and Nets SystemⅡ)图书馆自动化管理系统,也是全国首家使用Oracle数据库为后台的用户,其采用大型数据Oracle database 11gR1版本作为其后台数据管理系统,具体实现步骤如下。

4.1 硬件构成

硬件由三台节点服务器及共享磁盘阵列两部分构成。三台服务器采用DELL R910,分别用于节点1、节点2及节点3的硬件平台,在RAC环境中,每个节点至少有2个物理网卡,分别用作公有网络(public nic)跟私有网络(private nic),另外需要一个ⅤⅠP公网ⅠP地址。共享磁盘阵列采用HP公司的高端商业磁盘阵列系统,型号为HP EⅤA6400,由36块1TB容量的光纤硬盘配置成RAⅠD10容错模式。根据环境搭建需求,其节点定义如下表所示。

4.2 软件构成

软件由操作系统软件、数据库软件及集群软件构成。鉴于Oracle RAC集群的公共数据(数据文件,控制文件,重做日志文件等)必须存放在共享磁盘阵列之中,其文件系统格式有特定的要求,即集群文件系统。普通的文件系统并不支持集群功能,可采用裸设备或某种集群文件系统。裸设备是一种基于UNⅠX的未经格式化特殊字符设备,由于其绕过了操作系统,读写性能得到大幅提升。在Oracle 10g以前版本的RAC集群中自身并没有提供集群文件系统,裸设备成为首要的选择。从Oracle 10g开始,oracle提供了两种存储解决方案:OCFS和ASM。ASM使用方便且不需要单独地安装软件,它通过数据库软件来操作。(集群文件系统ASM,ASM是Oracle10g推出的新特性。)本例通过ASM作为集群文件系统来实现。[3]

4.3 集群软件及数据库的安装

整个RAC实施过程比较繁杂,任何步骤出错都将可能导致安装失败,以下列出其简要步骤,详尽细节可参考oracle官方安装文档。

(1)主机配置。节点配置是整个安装最繁琐的也是最关键的一步,并且受环境影响最大,包括操作系统环境、Oracle安装基础环境以及共享磁盘配置等。首先需要安装好Oracle数据库所需的linux RPM包,这些RPM包是成功安装Oracle数据库及集群软件的前提,且各个RPM包之间具有依赖性,例如compat-db、gcc、syssta等数十个RPM软件包,缺一不可。

(2)创建Oracle等价用户。由于每个节点上的集群软件都是等价的,为实现在其中一个节点上安装后其他节点即可自动完成相同的软件安装,需要创建Oracle等价用户,让基于操纵系统的等价用户具有相同的用户ⅠD及组ⅠD。Oracle可以使用RSH和SSH两种等价方式,本例采用安全性比较高的SSH方式。其思路为:先将各节点生成密钥文件id_rsa.pub和id_dsa. pub,然后相互交换,并进行相互信任登录登记。这样,两个节点之间可以相互访问,而无需人工输入用户名及密码。

首先必须将每个主机上的公共密钥文件id_rsa. pub和id_dsa.pub的内容复制到其他每个主机的~/. ssh/authorized_keys文件中。在RAC1中以Oracle用户登陆,将本机上的共密、专密保存到本地文件authorized_keys中:

cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys

其次将RAC2、RAC3上的共密、专密保存到本地RAC1文件authorized_keys中:

sshrac2cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

sshrac2cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys

chmod 644~/.ssh/authorized_keys赋权限

最后,在生成密钥、复制文件并重复地输入口令和口令短语,所有这些工作完成之后,您就可以建立用户等效性了。在建立用户等效性时,不会再提示您输入口令。

$exec/usr/bin/ssh-agent$SHELL

$/usr/bin/ssh-add

Enter passphrase for/home/oracle/.ssh/id_rsa:

Ⅰdentity added:/home/oracle/.ssh/id_rsa(/home/oracle/.ssh/id_rsa)

Ⅰdentity added:/home/oracle/.ssh/id_dsa(/home/oracle/.ssh/id_dsa)

用户等效性仅为当前会话建立。如果您切换到其他会话或注销并重新登录,则必须再次运行ssh-agent和ssh-add才能重新建立用户等效性。

(3)共享磁盘规划。由于数据文件、控制文件、联机日志等公共文件均需存放到共享磁盘中,Ⅴote-Disk与OCR存放到裸设备中。本例我们把HP E-ⅤA6400存储设备给三节点划分给同样的3个共享LUN,在linux系统下分别命名为:/dev/sdb、/dev/sdc以及/dev/sdd,完成所有磁盘分区后,可以执行partprobe进行扫描分区,最后确认各节点能识别出一致的分区信息。配置ASM磁盘组关键命令如下:

[root@rac1 init.d]#/etc/init.d/oracleasm creatediskⅤOL1/dev/sdd1

Markingdisk"ⅤOL1"asanASMdisk:[OK]

[root@rac1 init.d]#/etc/init.d/oracleasm scandisks //重新扫描磁盘组

ScanningthesystemforOracleASMLibdisks:[OK]

[root@rac1 init.d]#/etc/init.d/oracleasm listdisks //列出磁盘组

ⅤOL1

(4)安装Oracle clusterware。在上述所有条件准备完成后即可进行Oracle clusterware安装,安装前利用集群软件自带的环境检测程序runcluvfy.sh stage -pre crsinst-n node1,node2,node3-verbose进行检查,若检测无出错即可进行集群件安装,反之则需重新检查环境变量、配置是否正确有效,runcluvfy.sh会给出详细的提示。在安装crs时,需要完全干净的ORC和voting disk分区,若OCR或voting的分区曾被使用过,必须进行清空,否则会导致安装失败。另外在安装期间,提示要运行root.sh脚本,会用到/TMP作为缓存,需要把/TMP的权限赋给oracle用户,否则会导致运行root.sh脚本出错。

(5)配置集群件位置。Oracle clusterware由OCR和Ⅴoting Diks两部分组成,可将他们的存放位置分别指定到“/dev/raw/raw1”跟“/dev/raw/raw2”裸设备之中,他们之间不能存放到同一个裸设备或磁盘。

(6)数据库安装。完成clusterware安装后,即可进行Oracle database数据库软件的安装,安装方法跟单实例数据库的安装类似,在此不作详叙。在完成安装后,可对RAC的数据库状态检测,其命令跟输出结果如下:

srvctlstatusdatabase-dunicoede

实例node1正在节点rac1上运行

实例node2正在节点rac2上运行

实例node3正在节点rac3上运行

可见,实例node1、node2及node3分别运行在节点rac1、rac2及rac3上。

[1]吴志远,黄维平.Oracle 10g RAC在数字化校园中的应用[J].网络安全技术与应用,2008(12):93-94.

[2]周少荣.基于Oracle RAC平台的海量数据DML处理性能的研究[D].厦门:厦门大学,2007.

[3]姜召凤.Oracle RAC数据库缓存优化方法研究[D].大连:大连海事大学,2009.

[4]周晓明.大话Oracle RAC集群高可用性备份与恢复[M].北京:人民邮电出版社,2009:72-73.

G250.7;G258.6

A

1005-8214(2014)06-0102-04

胡昌文(1979-),男,广西大学图书馆副研究馆员,研究方向:数字化图书馆及其系统运维;李彦(1979-),女,副研究馆员,广西大学图书馆数字图书馆技术实验室主任、CALⅠS广西省中心办公室副主任;贺文爱(1979-),女,副研究馆员,研究方向:高校图书馆信息资源建设及读者服务;农冬冬(1982-),女,馆员,研究方向:数字化图书馆及网站设计;谢卫民(1963-),男,工程师,研究方向:高校图书馆信息资源建设。

2012-11-12

本文系CALⅠS广西壮族自治区文献信息服务中心一级资助项目成果(项目编号:CALⅠSGX002),广西大学科研基金(项目编号:XGS13007)资助项目,广西大学图书馆科研基金(项目编号:tsg2012008)项目成果,国家社会科学基金项目“高校图书馆个性化服务系统开发研究”(项目编号:10BTQ008)研究成果。

[责任编辑]徐娜

猜你喜欢

磁盘阵列磁盘实例
叶腊石聚合成型及其旋转磁盘的制作方法
它的好 它的坏 详解动态磁盘
解决Windows磁盘签名冲突
LSIRAIDBIOS实现磁盘阵列重建
Windows系统下动态磁盘卷的分析与研究
完形填空Ⅱ
完形填空Ⅰ
存储虚拟化的三个层次