Oracle RAC集群技术在图书馆集成管理系统中的应用
曲建峰, 孙翌, 徐汝兴, 施晓华
上海交通大学图书馆 上海 200240
摘要

以图书馆集成管理系统为例分析现阶段数据库应用现状,提出以上海交通大学图书馆为例应用Oracle RAC集群技术管理图书馆集成管理系统数据库的设计框架;并阐述利用Oracle RAC集群技术对图书馆集成管理系统数据库的实现步骤,从而达到数据库系统和硬件资源的优化。

关键词: 集群; Oracle RAC; 图书管理系统; 数据库管理
中图分类号:G250.7
Application of Oracle RAC Cluster on the Integrated Library System
Qu Jianfeng, Sun Yi, Xu Ruxing, Shi Xiaohua
Shanghai Jiaotong University Library, Shanghai 200240, China
Abstract

Based on application analysis of database of present integrated library management system, this paper designs a framework for managing database of integrated library system with Oracle RAC cluster for Shanghai Jiaotong University. For the purperse of optimization of database system and hardware, the procedure of implement on database of integrated library management system is also described.

Keyword: Cluster; Oracle RAC; ILS; Datebase management
1 引言

随着大数据时代的来临,图书馆资源数字化程度越来越高,网络和资源成为大多数图书馆服务的基础,因此图书馆各个业务部门对图书馆集成管理系统的要求越来越高,同时图书馆集成管理系统需要管理的数据量大大增加,对数据库性能要求也更高,这就对系统所应用的数据库的稳定性、可靠性、扩展性等提出了更高的要求[ 1]。为了应对巨大的数据量,大多数图书馆选用了优秀的数据库管理软件来管理后台数据,如:Oracle、SQL Server等,但是一旦遇到数据错误、硬件障碍、并发数过高等情况,数据的恢复和负载均衡就很难满足图书馆的需求,因此图书馆开始尝试应用集群技术实现数据的快速处理和负载响应,例如西南交通大学的图书馆集成管理系统采用Oracle 10g RAC[ 2],武汉大学的图书馆集成管理系统采用Oracle 11g RAC等。上海交通大学图书馆从2008年开始采用Aleph500作为图书馆集成管理系统,为了确保应用系统的稳定运行,实现数据库服务的高可用性和可扩展性,并具备负载均衡和故障接管功能,在2009年开始对集群技术架构进行研究,希望构建一个安全、稳定、高效的数据环境,并于2010年在图书馆集成管理系统的底层数据库架构上放弃了传统的Oracle数据库,应用了采用集群技术的Oracle 11g RAC数据库[ 3]。经过两年多的实际应用,取得了较好的效果,从技术上有效保证了系统的不间断运行。

2 现状分析
2.1 图书馆集成管理系统使用的数据库

通过对国内主流图书馆集成管理系统的调研[ 4],只有Unicorn、Horizon和妙思不支持使用Oracle作为其底层数据库,因此本文以Oracle为例来介绍集群技术的应用,如表1所示:

表1 国内主流图书馆集成管理系统的比较

大多数图书馆使用Oracle作为图书馆集成管理系统后台数据库的图书馆,一般会使用双机热备的机制。在这种情况下,若一台服务器出现问题,要将应用切换到另外一台服务器上,这时需要重新启动数据库核心进程,无法保证数据库系统连续不间断的运行;并且在系统切换过程中,客户端与服务器之间的数据连接也会中断,需要重新进行数据库的连接和登录工作;由于数据库系统只在一台服务器上运行,另一台服务器无法分担负载,造成了极大的资源浪费[ 1]

2.2 Oracle数据库应用框架分析

随着数字化资源的增加,图书馆集成管理系统的用户同时读写的数据量也随之迅猛增加,比如每天进入系统数据库的电子图书元数据以万条来计算。然而不管使用Oracle、Sybase、MS SQL Server等任一数据库系统,都必须采用双机热备的方式来预防灾难性事件的发生。

在Oracle的服务架构下[ 17],上海交通大学图书馆集成管理系统也采用了双机热备的备份机制(如图1所示),采用三层架构的应用方案,建立了应用程序和数据库管理系统的备份机。为了让备份机和正式机之间的切换不对用户造成任何影响,对备份机和正式机分别赋予实际IP地址,并在其上层架设浮动IP。对于用户而言,他们访问的是浮动IP,这样就缩短了两台机器的切换时间[ 18]

图1 双机热备形式的应用框架

在这种数据库架构下,从服务器切换、购买配置和服务器利用率方面来看,存在一些问题[ 19]:

(1)必须手工进行数据库管理系统的切换,在切换的过程中Oracle核心程序需要重启,因此数据很有可能丢失。由于图书馆集成管理系统在运行过程中会产生很多实时数据,若造成流通等关键信息的丢失将无法挽回。

(2)受到传统计算方式的限制,服务器配置只能针对高峰容量来构建计算容量需求,否则无法负载所有的应用,而备机也必须具有相同高的性能,否则无法完成备机的功能,这无疑增加了采购机器的成本。当需要用改善硬件设备配置的方法来提高系统性能时,双机热备形式的架构无法以低成本快速地扩充模块单元的容量,在极端的情况下,需要购买更高配置的新设备来实现系统性能的提升。对于大数据时代来讲,购置服务器的频率必然加快,花费必然增加,这将对图书馆的发展形成瓶颈。

(3)由于服务器备机和正式机的配置基本一样,图书馆希望充分利用备机,但是一般情况下备机并不实际工作,接近闲置状态,因此造成了极大的硬件资源浪费。

图书馆集成管理系统必须寻求一种新的数据库框架,来应对数据的随时变化,并且不产生太多的花费,即通过网络以按需、易扩展的方式来获得所需的服务。

3 集群系统应用框架设计
3.1 Oracle RAC数据库框架分析

集群是由一个或多个独立的服务器互相协作组成的一个系统。这种架构相对于对称多处理器系统更胜一筹,它可以随着系统的扩大而扩展,同时也提升了错误的恢复能力。Oracle实时应用集群 (Real Application Cluster,RAC)[ 8]继承了集群的所有特性,是一项并行计算的技术。它使得多个服务器能同时共享对某个单一数据库的实时访问,从而获取更高的可用性、最灵活的可伸缩性以及经济型的系统架构,三节点Oracle RAC的体系框架如图2所示:

图2 三节点的集群体系框架

图2显示了三台服务器作为Oracle RAC的三个节点,每台节点服务器都是相对独立的。集群服务器间又可以通过各自的通讯层在无人工干预的情况下实现互联互通,从而实现故障保护、缓存融合和负载均衡。所有的集群服务器共享一个数据库,在数据库中除了数据文件,还有控制文件、日志文件等内容。可以看出,Oracle RAC是所有的服务器共享磁盘的共享所有(Shared Everything)体系架构。在RAC环境下,所有节点可以同时在同一个数据库上并发处理事务,由RAC来协调各个节点,把大的事务分解为多个小事务,配发给不同的节点执行,并保证每个节点访问共享数据的完整性和一致性。

在RAC环境中,当服务器的处理能力需要提高时,可以通过直接增加服务器节点数来完成服务器性能的提升,并且不需要对应用程序进行任何修改,原有的服务器也可继续使用。新增服务器节点的配置只要对应需要提升的服务器处理能力即可,即按照增量来设定新增服务器节点的配置。若有个别服务器节点出现故障,也不会影响整个RAC架构的运行,但会增加其他服务器节点的负荷。这些特性也说明RAC具有很高的有效性、可靠性和可伸缩性,而且为用户节省了大量的硬件购置费用。

3.2 应用框架设计

为了应对大数据时代的来临,图书馆集成管理系统必须可以管理大量的全媒体信息资源,并支持云计算,这就要求其数据库具备高可用性、灵活的可伸缩性以及经济合理的价格。Oracle RAC具备了这些性能,它是所有服务器共享磁盘的Shared Everything体系,集群中的所有服务器共享RAC数据库的所有存储设备[ 8]。集群是由一个或多个服务器构成,每个服务器都有局域网(LAN)连接来互联互通,并且都要被连接到共享存储上,Oracle集群件和真正应用集群(RAC)支持可达100个服务器节点。集群中的每台服务器在硬件配置上不必完全相同,但必须采用相同的操作系统和同样的Oracle数据库版本。所有服务器必须支持同样的架构,如所有32位和64位[ 20]。在应用集群技术的架构时,准备工作中需要注意:

(1)每台节点服务器的硬件配置不需要相同,也不需要性能很高,但必须同时支持32位的操作系统或同时支持64位的操作系统。

(2)只要所有节点服务器的性能总和达到应用系统对服务器的峰值要求即可。

(3)每台节点服务器所安装操作系统的版本号必须完全一致。

这些准备工作就绪后,可以在每台节点服务器上建立Oracle用户,然后安装Oracle Cluster Ware。此时,Oracle RAC的应用环境全部准备完成,接下来就可以安装应用系统,投入正式使用。

依据Oracle RAC的架构,上海交通大学图书馆利用原有的正式机和备份机来搭建双节点的Oracle RAC应用框架,如图3所示:

图3 集群应用框架

在数据层部分采用Oracle RAC来管理数据库管理系统,在中间层的应用程序服务器上建立了高可用性(High Available, HA)集群机制,以此来支持表示层中的C/S和B/S架构的应用。

在这种应用框架体系下,真正应用集群使单个数据库能够跨网格中的多个集群化的节点运行,从而可以利用多台计算机服务器处理资源。具有以下优点:

(1)它是不需要随着工作负载变化对数据进行再分区或分配的数据库技术,因此Oracle在跨计算机供应工作负荷的能力方面具备独特的灵活性。

(2)明显提高了硬件设备和资源的利用率,使用多台服务器并行为用户提供服务,大大提高了服务器对数据的处理能力,很好地满足了业务负载的需求,并行执行请求以提高性能,从而做到负载均衡。

(3)在RAC的运行机制下,不仅故障应用可以自动切换,而且可以随时增加服务器节点的数量,最重要的是RAC系统对服务器硬件配置的要求并不高。

4 应用实施
4.1 实施

上海交通大学图书馆以原有的图书馆集成管理系统的正式机和备份机实现了双节点的Oracle RAC。原有的图书馆集成管理系统是配置在M5000(简称为M5001)中,备份机也是一台M5000(简称为M5002)。配置Oracle RAC要求两台机器的操作系统完全一致,包含操作系统的升级包。由于两台机器的操作系统在小版本上有些差异,因此必须将一台重新安装操作系统。Oracle RAC和Oracle不能并存在一台机器上,这次Oracle RAC的实施是在摒弃原有系统的基础上重新建立一个新的系统,因此在实施过程中数据的备份和可恢复性至关重要,否则任何一个环节出现问题均会带来灾难性的后果。

具体实施步骤如下:

(1)从M5001的Oracle中将数据导出,并对应用程序、重要参数等必要内容进行备份。该步骤是对程序和数据的备份,在此需要特别说明的是如果原应用程序的服务器将成为实施Oracle RAC的服务器之一,意味着RAC启动,原有的Oracle必须停止对外服务。因此建议在实施Oracle RAC方案之前进行一次备份恢复的实验,以保证在RAC实施不成功的情况下可以返回原有状态,保证应用程序的正常运行。

(2)为M5001和M5002安装操作系统Solaris 10,并安装其相应的补丁。需要再次保障两台服务器的操作系统必须完全一致,这样才能保证之后Oracle RAC顺利的安装和运行。

(3)对M5001和M5002进行组卷的划分,并创建用户,配置相关参数(如节点间的对等性)。

(4)在M5001和M5002上建立Oracle用户后,安装Oracle Cluster Ware。

(5)Oracle RAC数据库在M5001和M5002上安装及设置,创建ASM实例并建库。

(6)图书馆集成管理系统的安装。

(7)数据导入,建立索引。此处的数据导入是将Oracle数据导入Oracle RAC中,采用Oracle Dump方式导入,并且数据是带结构和带权限的,因此在创建数据库账户时需要注意,一定要和以前的账户保持一致。

(8)系统测试。测试应用系统是否有影响、数据是否完全、系统的破坏性实验,并且需要进行备份和恢复的测试。

4.2 应用效果

由于之前的非RAC系统架构稳定性一般,在出现一些由硬件、网络、应用系统等故障造成的应用系统服务中断时,工作人员需要至少一个小时的时间来查出并解决问题,因此为了保证流通的正常开放,系统管理员必须配合流通工作人员的上班时间来值班,否则问题出现时会影响图书馆流通业务的正常运行。在实施应用Oracle RAC之后,对于系统管理员来说,最大的变化就是在工作以外的时间不需要专人值班,如果出现一般的系统问题,比如一台服务器的硬件故障,一般在2-10分钟之内集群系统会自动切换到可正常运行的机器上来支持现有服务,系统管理员再来解决出现的问题即可。

在非RAC系统架构中,如果正在运行的服务器出现硬件故障,或所连接的网络中交换机故障,或应用系统出现异常停止服务等故障,无论是自动切换还是手工切换,都需要中断数据库的运行,将其切换到另外一台服务器。由于数据库系统的恢复比较复杂,在切换后数据库要花费时间进行数据的恢复,而且在切换过程中可能造成数据的丢失。然而在RAC系统架构中遇到这些情况,无论是自动切换还是手工切换,都不需要中断数据库,RAC会管理每个服务器节点的数据库系统的运行,只需要切换应用系统到另外的服务器上即可。集群技术可以解决除数据库系统自身故障以外的其他故障发生时数据库系统的不中断运行,在实现高可用性上也减少了数据库的切换时间,从而增加了数据库的安全性和稳定性。比如2011年11月,本馆一台与图书馆集成管理系统的主服务器连接的交换机出现了问题,将应用系统直接切换为从服务器即可正常对外服务。

在非RAC系统架构中,为了保证主从机相关配置的一致性,一般从机不提供包括数据库在内的各种对外服务。这样主机同时负担了数据库服务和应用服务,如果数据库和应用服务访问量很大,则会出现主机负载量过大,而从机却一直空闲的情况。比如在2006年秋季开学时,由于瞬时新增数据量过大,导致系统完全死锁。系统不得不进行重新启动,但是由于是非正常重启,数据库中数据发生丢失,包括当天的借还书、新增读者办证事物、编目数据、采访数据、典藏数据等。但在RAC系统架构中,多节点服务器上的数据库系统可以同时对外服务,分担负载,因此在每学期开学时就可以应对剧增的瞬时新增数据量。而且RAC系统架构还可以通过扩展服务器节点的数量来提高数据库对外服务的性能。

但是系统管理员必须花费更多的时间来掌握集群系统管理,因为集群系统的设置要比一般的数据库管理复杂很多。也正是由于它的设置及其内部结构更加复杂,使得数据库的稳定性更强。RAC系统架构无法解决数据库本身出现的问题,因此本馆又采用Data Guide技术,用来保障正式运行的数据库出现问题时,数据库还能够在较短时间内重新提供服务。

5 结语

Oracle RAC技术在其运行的所有平台上,都可提供完整继承的集群管理解决方案,其集群内部具备的优异性能可以大大提高整套应用系统的运行效率和经济效益[ 21]。本文结合Oracle RAC集群技术的特性,将其应用于图书馆集成管理系统数据库的方案中,为目前图书馆各种应用系统中数据库出现问题后引起的数据丢失现象提供了一个解决方案,并给出具体实施步骤。在上海交通大学图书馆实际应用以来,集群技术确保了服务的稳定性和安全性,多次避免了事故的发生。图书馆集成管理系统是图书馆中相对比较重要也比较复杂的系统,因此本文介绍了集群技术在该系统的应用,实际应用时在图书馆中的任何应用系统中均可使用集群技术来保障系统的平稳运行。

参考文献
[1] 荣伟铭. Oracle RAC技术概述及应用[J]. 中国科技信息, 2008(6): 111-113.
(Rong Weiming. The Overview and Application of Oracle RAC[J]. China Science and Technology Information, 2008(6): 111-113. ) [本文引用:2] [CJCR: 0.2368]
[2] 西南交通大学图书馆. 自动化信息管理系统[EB/OL]. [2011-05-18]. http://202.115.72.120/gqjs/zdhxxglxt.htm.(SouthwestJiaotongUniversityLibrary.AutomaticInformationManagementSystem[EB/OL]. [2011-05-18]. http://202.115.72.120/gqjs/zdhxxglxt.htm [本文引用:1]
[3] Oracle Real Application Clusters[EB/OL]. [ 2012-07-18]. Oracle Real Application Clusters[EB/OL]. [2012-07-18]. http://www.oracle.com/us/products/database/options/real-application-clusters/overview/index.html. [本文引用:1]
[4] 郑伟, 徐宝祥, 高琦. “211”大学图书馆管理系统研究——基于“211”大学图书馆管理系统的调查[J]. 图书情报知识, 2010(3): 4-10.
(Zheng Wei, Xu Baoxiang, Gao Qi. Research on “211” University Library Management System-Based Survey on “211” University Library Management System[J]. Document, Information & Knowledge, 2010(3): 4-10. ) [本文引用:1] [CJCR: 1.169]
[5] ALEPH[EB/OL]. [ 2012-07-18]. ALEPH[EB/OL]. [2012-07-18]. http://www.exlibris.com.cn/product/aleph/. [本文引用:1]
[6] 汇文软件. Libsys图书馆管理系统[EB/OL]. [2012-07-18]. http://www.libsys.com.cn/libsys.php.(HuiwenSoftware.LibsysLibraryManagementSystem[EB/OL]. [2012-07-18]. http://www.libsys.com.cn/libsys.php [本文引用:1]
[7] 图腾图书馆管理系统(V8. 0)[EB/OL]. [2012-07-18]. http://www.totalsoft.com.cn/prod1.htm.(TotalsoftLibraryManagementSystem(V8.0[EB/OL]. [2012-07-18]. http://www.totalsoft.com.cn/prod1.htm [本文引用:1]
[8] ILAS. ILAS III[EB/OL]. [2012-07-18]. http://www.ilas.com.cn/Products.Asp?SortId=9. [本文引用:2]
[9] 图创软件. Interlib图书馆集群管理系统[EB/OL]. [2012-07-18]. http://www.interlib.com.cn/tcsoft/web/information.do?actionCmd=view&id=139.(Tcsoft.InterlibLibraryManagementSystem[EB/OL]. [2012-07-18]. http://www.interlib.com.cn/tcsoft/web/information.do?actionCmd=view&id=139 [本文引用:1]
[10] 金盘图书管理系统GDLISXP [EB/OL]. [ 2012-07-18]. 金盘图书管理系统GDLISXP [EB/OL]. [2012-07-18]. http://www.goldlib.com.cn/production2.asp?ID=10.(GoldDiskLibraryManagementSystemGDLISXP[EB/OL]. [2012-07-18]. http://www.goldlib.com.cn/production2.asp?ID=10 [本文引用:1]
[11] 深圳大学图书馆计算机管理集成系统[EB/OL]. [ 2012-07-18]. 深圳大学图书馆计算机管理集成系统[EB/OL]. [2012-07-18]. http://www.upicture.com.cn/Knowledge/nPost/nPost_42285.htm.(ComputerIntegratedSystemofShenzhenUniversityLibrary[EB/OL]. [2012-07-18]. http://www.upicture.com.cn/Knowledge/nPost/nPost_42285.htm [本文引用:1]
[12] 北邮图书馆管理系统[EB/OL]. [ 2012-07-18]. 北邮图书馆管理系统[EB/OL]. [2012-07-18]. http://baike.baidu.com/view/2745566.htm.(ManagementSystemofBeijingUniversityofPostsandTelecommunicationsLibrary[EB/OL]. [2012-07-18]. http://baike.baidu.com/view/2745566.htm [本文引用:1]
[13] 陈丽华. Millennium安装过程中的有关技术问题探讨[J]. 电子科技, 2006(9): 74-75, 78. (Chen Lihua. Some Technical Problems in Implementing Millennium[J]. Electronic Science and Technology, 2006(9): 74-75, 78. ) [本文引用:1]
[14] 图书馆之家. Horizon体系结构[EB/OL]. [2012-07-18]. http://bbs.libhome.cn/thread-1771-1-1.html.(Libhome.StructureofHorizon[EB/OL]. [2012-07-18]. http://bbs.libhome.cn/thread-1771-1-1.html [本文引用:1]
[15] 祖央. 图书馆自动化建设的新模式——甘肃省图书馆基于Unicorn自动化管理系统的中心/成员馆方案[J]. 图书与情报, 2005(3): 51-53.
(Zu Yang. New Mode of the Automatic Construction in the Library[J]. Library and Information, 2005(3): 51-53. ) [本文引用:1] [CJCR: 1.3855]
[16] 网信软件. 妙思[EB/OL]. [2012-07-18]. http://www.ni-soft.com/index.aspx.(NetinfoSoftware.Muse[EB/OL]. [2012-07-18]. http://www.ni-soft.com/index.aspx [本文引用:1]
[17] 刘泳洁, 刘喜球. 图书馆系统中Oracle数据库的备份与恢复策略[J]. 现代图书情报技术, 2005(9): 92-94.
(Liu Yongjie, Liu Xiqiu. Backup and Recovery Policy of Oracle Database in Library Management System[J]. New Technology of Library and Information Service, 2005(9): 92-94. ) [本文引用:1] [CJCR: 1.073]
[18] 巩林立. 图书馆自动化系统中数据的备份策略[J]. 现代图书情报技术, 2004(8): 81-83, 60. (Gong Linli. The Data’s Backup of Automatic System in Library[J]. New Technology of Library and Information Service, 2004(8): 81-83, 60. ) [本文引用:1]
[19] 杨晋升, 王野. 图书馆服务器双机热备份系统的实现[J]. 情报杂志, 2003, 22(7): 65-66, 69. (Yang Jinsheng, Wang Ye. The Implement of Dual-hot-stand by System of Library Server[J]. Journal of Intelligence, 2003, 22(7): 65-66, 69. ) [本文引用:1]
[20] 谷长勇, 王彬, 陈杰, . ORACLE 11g权威指南[M]. 北京: 电子工业出版社, 2008.
(Gu Changyong, Wang Bin, Chen Jie, et al. Guideline of ORACLE 11g[M]. Beijing: Publishing House of Electronics Industry, 2008. ) [本文引用:1]
[21] 孙颖洁, 黄智刚, 张学军, . Oracle RAC技术在直升机飞行参数数据平台中的应用方案研究[J]. 航空电子技术, 2005, 36(2): 24-28.
(Sun Yingjie, Huang Zhigang, Zhang Xuejun, et al. Research on the Solution of the Helicopter Flying-parameters’Data Platform Based on Oracle RAC[J]. Avionics Technology, 2005, 36(2): 24-28. )
(作者E-mail: jfqu@lib. sjtu. edu. cn) [本文引用:1] [CJCR: 0.3372]