发表于

Oracle Magazine
2004年3/4月号
封面特写

确保系统持续的可用性(一)
作者:David A. Kelly

Oracle新的和现有技术能够帮助你保持关键系统的正常运行。

高可用性,或者说企业及其客户在适当的时候使用具有其期望的功能性级别的应用程序或服务的能力,不再只是当今商务系统的关键需求之一,它正逐渐成为最关键的需求。客户和用户的期望较过去的几年已经有了显著提高,企业面临着更大的压力以确保面向内部用户和外部客户的核心系统持续可用。

"越来越多企业的商务流程都非常依赖其应用程序和基础架构,所以如果系统环境中出现任何停机事件,从商务角度来看都要付出很高的代价。"位于康涅狄格州斯坦福德的Gartner公司的副总裁和著名分析家Donna Scott说。"这需要一个精心设计、严格管理的环境来转移系统停机的风险并且避免它的发生,如果避免不了,那就尽快进行恢复。"

最简单形式的高可用性计划包括三个方面:弹性(确保应用程序和系统尽量可靠)、可恢复性(确保如果某个组件发生故障,在给定时期内有办法恢复)和持续的运转(确保系统和应用程序即使在维护期间也能够正常运行)。

灾难恢复关注的是在发生计划外停机后使核心业务和IT系统重新启动并运行,而高可用性则是前瞻性地确保重要系统(可能是应用程序、数据库、网络、存储器或任何其他IT组件)不发生单点故障。"高可用性涉及计划内和计划外停机。"Meta集团公司基础设施服务的高级程序总监Charles Garry说,"计划内停机是由于应用系统升级、硬件升级、补丁和基本维护而导致的。计划外停机可能包括用户错误、操作员错误和真正的硬件故障。"

实际上,当谈到高可用性这个话题时,虽然大多数人可能会想到服务器崩溃、磁盘控制器失效、硬件或软件故障、或致命的灾难,但其实还有另外一个方面。"平均40%的宕机是由操作错误导致的。"Scott说,"Oracle和行业中其他公司一样,正在致力于降低软件产品的可管理性要求。这不仅可以减少管理软件产品所需的劳动量,还能减少接触产品时发生错误的机会。"

但高可用性不仅仅和数据库、应用服务器、网络、备份或新的网格技术相关,它还与用户及其期望值相关,即以用户期望的性能水平在他们需要的时候为他们提供所需的高可用性。不同技术的进步,包括诸如Oracle真正应用集群(RAC)和Oracle数据卫士这样的产品以及诸如Oracle数据库10g中闪回功能这样的新功能,不仅可以更容易满足这些用户的期望,而且显著降低了与高可用应用程序相关的可管理性和开发要求。

"我们并不是试图构建一个任何部件都永远不发生故障的系统,我们试图构建的是这样一个系统:我们能够容许单个部件的故障,但系统整体可以保持正常运行。"Oracle负责数据和系统技术的副总裁Juan Loaiza说,"我们已经将多种技术集成到了一个产品中,基本上使企业能够将大量廉价的服务器、存储器和网络技术组装在一起,以创建一个具备高可用性和可伸缩性的系统。它坚不可摧而且成本很低。"

Oracle: 集成高可用性

传统情况下,只有那些在任何情况下都必须保持其关键应用程序正常运行的机构才实施高可用性解决方案。它们通常需要专门的硬件和软件以及昂贵的咨询服务来保证正确的设计和实施。这种方法的结果之一就是大多数机构觉得高可用性解决方案超出了它们的财力或资源许可而不予实施。另一个结果是很多机构最终还是回到了高可用性解决方案,因为一些灾难性事件突出了其系统的脆弱性。

"通常只有在出现危机时,机构才会考虑高可用性方面的开支。"Gartner公司的Scott说,"例如,一家公司的电子邮件系统崩溃了,从而导致它的系统停运三天,于是CEO开始考虑要改变现状。这类事情经常发生。"

事情不一定非得如此。最近,在从硬件到软件再到运营管理的各方面进步使得提高可用性变得更加容易,无需出售农场或聘请顾问小组。例如,很多硬件组件如今都内置了冗余特性。虽然机构仍然需要将高可用性设计到特定的应用程序中,但越来越多的基础设施组件已经具有集成的高可用性功能,使企业能够以更低的成本更轻松地创建高度可用的解决方案。"Oracle在设计高可用性方面很有实力。"Scott说,"例如,RAC提供了高度可用的环境,当出现故障时你可以在一分钟内恢复系统。从可用性角度来看,这是非常有价值的。"

但实施Oracle RAC并非是提高可用性的唯一方法。除了在补充部分中总结的"实现更高可用性的步骤"以外,你还可以使用很多不同的Oracle产品和功能(有一些你可能已经有了)来减少可能的宕机。 要记住的是,这些产品中的许多可能会给企业功能带来多种影响。例如,实施Oracle RAC不仅能够提高可用性,而且还能提高可伸缩性。考虑以下产品和功能,它们在实施后都可以对可用性产生积极的影响:

  • Oracle真正应用集群(RAC)。Oracle RAC提供集群功能,以便当集群中的一个节点发生故障时,用户可以透明地切换到另一个节点。例如,如果一名用户正在查询数据库并试图检索数千条记录,而集群中的一个节点发生了故障,系统就会将用户和查询操作迁移到另一个可用节点继续完成该操作。
  • Oracle数据卫士。数据卫士提供了建立、维护、管理和监测备份数据库的能力,确保备份数据库与生产数据库在事务处理方面的一致性。Oracle9i第2版提供了附加的功能,如数据卫士SQL应用(逻辑备份数据库),它允许在备份数据库中创建诸如索引和物化视图等附加对象,从而使其可用于报表,同时保护你的数据免遭可能的灾难。

  • 最大可用性体系结构(MAA)。Oracle的MAA提供了一个基于最佳实践的实用框架,用于实施跨主要Oracle解决方案(包括Oracle RAC和数据卫士)的高可用性。

  • Oracle企业管理器(OEM)。除了为Oracle产品提供完整的企业管理功能,OEM通过前瞻性地监测系统和配置来减少宕机;它的自动化功能显著降低了因操作员错误而导致宕机的可能性。
  • 备份和恢复(恢复管理器)。Oracle提供了各种备份和恢复功能,包括恢复管理器(RMAN)和Oracle数据库10g中新的闪回功能,帮助减少与备份和恢复文件相关的操作员错误,并显著缩短了将数据库恢复到指定时间点所需的时间。
  • 自动存储管理(ASM)。ASM是Oracle数据库10g中的新特性,它自动管理底层存储系统,使DBA不用再费时地管理单个文件和驱动器,同时也避免了操作中的人为错误。和Oracle RAC的集群特性一样,ASM使企业可以利用高弹性的廉价存储设备构建高度可用的集群。
  • 网格功能。Oracle的核心产品都可以用于企业网格环境中,提供更高级别的资源和数据可用性。 在企业网格环境中,可以动态地提供资源和数据,以满足计算要求,保证系统最佳地运行。

这些特性和产品(以及很多其他产品)有助于提高应用程序的可用性,但你还需要对整体情况心中有数。"高可用性不是一个具体的产品。"位于北卡罗莱纳州夏洛特市Summersky Enterprises公司的独立Oracle顾问兼Oracle真正应用集群特别研究小组(SIG)的负责人Murali Vallath说,"它来自于整个企业体系结构,并结合了运行在上面的基础架构应用程序的特性。"

幸运的是,在Oracle9i和Oracle数据库10g中,Oracle已经提供了一组坚固的基础设施组件,将高可用性功能集成到企业IT系统的核心应用中。

实践中的弹性和可恢复性

正是这些软件和基础设施中高级技术对高可用性的支持,使得位于宾夕法尼亚州Mechanicsburg市Payment Technologies公司的CTO兼负责人Steve Sorem相信他的公司能够为很多公司实时地处理几十万个支付事务,这些公司包括Home Depot、Chase Merchant Services、Liberty Mutual Insurance、第一数据公司、甚至埃克森美孚公司负责加油站支付标签的SpeedPass Network。"我想我们已经达到了一个很难超越的可用性级别。"Sorem说。

概括地讲,PayTec为财务处理机及其大型零售客户提供了托管的事务管理服务。实际上,它结合了一个客户关系管理(CRM)产品和一个支付处理产品,后者处理每个支付事务并将这些采购行为与多个其他帐号联系起来,例如在一个忠诚度程序或提供折扣或奖励的程序中跟踪消费者的积分。

这个名为Valexia的系统的一个重要属性是它必须实时地运行,并且每周7天、每天24小时全天候可用。为了达到这一点,PayTec使用Oracle RAC来同时实现可伸缩性和可用性。"我们对Oracle9i RAC非常满意,因为从高可用性角度来说它确实很有帮助。"支付技术(PayTec)公司的信息服务副总裁Don Smith说,"我们一直在使用Oracle8并行服务器,当我们迁移到Oracle9i RAC时,我们注意到在速度、性能和管理成本上都有显著的改善。"

PayTec使用一个三层体系结构:一个前端适配器层,销售点和其他事务从这里进入;第二是应用层,包括运行在JBoss服务器上的纯Java J2EE应用程序;第三层是数据库层,在两台Sun V880s上运行Oracle9i RAC (9.2.0.4)。虽然PayTec知道发生故障时,理论上RAC会从一个数据库节点切换到另一个节点,但是在进行测试时才发现这真的可行,这令人感到非常高兴。"这是真的。你可能会遇到某个节点被锁住或硬件或网络遭到攻击,Oracle数据库将自动切换到第二个节点上。"Sorem说,"开始我们遇到了几次和服务器有关的故障,那时候确实是Oracle RAC挽救了我们。"

公司的Oracle RAC实施不仅保证应用程序的正常运行,而且还使维护工作变得异常轻松。利用RAC,PayTec可以将所有在第一个服务器上运行的过程都转移到另一个节点,然后关闭这台服务器进行维护。"能够在数据库层轮换这些数据库节点(当然是在非高峰期),而且将所有事务处理活动转移到另一个节点,这实在是太棒了!"Smith说,"当我们在做这件事时,我们利用Oracle资源管理器的一些组件来降低我们后台办公流程的优先级。"维护工作结束后,PayTec再次使用该节点把它重新启动,应用程序发现该节点重新运行后便将相应的事务处理活动迁移到合适的节点上。

除了使用Oracle RAC来确保可用性外,PayTec还充分利用了其他一些Oracle特性-数据卫士和恢复管理器,在发生大的计划外停机时为其主要系统提供可恢复性。

"我们有一个托管的平台,并且与部分客户签订了一些相当严格的服务水平协议
Making IT Available
确保IT可用性
(SLA),其中有些系统的正常运行率要求达到99.99%。"Smith说,"为了在发生灾难时确保系统的正常运行率,我们以最高性能(Maximum Performance)模式实施了Oracle数据卫士备份数据库。"这个备份数据库被放置在130英里远的灾难恢复地点,通过有两个10Mbps互连的SONNET环相连。

"我们使用Oracle9i的基于时间的日志切换特性,所以(最多)每10分钟,我们自动切换一个日志,并将它发送到灾难恢复地点。这样,我们最坏的情况是损失10分钟的事务处理数据。"Sorem补充道。在高峰时期,PayTec的Valexia每小时处理650多万个I/O操作,每小时的事务吞吐量为50万。这期间,系统每三分钟建立一个500MB的日志,以循环(round-robin)的方式通过两个网络连接被发送到灾难恢复地点。

虽然Valexia最初构建在Oracle8i上,但Smith为Oracle9i的一些新特性激动不已,因为这些特性可以使PayTec更轻松地确保可用性。例如,Oracle将联网功能集成到Oracle9i中意味着公司不必编写自己的脚本将日志发送到灾难恢复地点。相反,Oracle9i中的数据卫士拥有完全自动化的重做数据传输(redo-data-transport)功能和确保灾难恢复地点的数据为最新的实现机制。

"Oracle9i的新特性确实非常棒!"Sorem说,"这些自动化特性极大地减少了所需的管理成本、时间和资源,同时还减少了对第三方产品的依赖性。"实际上,只需一名主要的数据库管理员,PayTec就能够管理16个Oracle实例,包括它的生产环境、灾难恢复环境等。

每周7天、每天24小时的全天候可用性

虽然确保一个支付或一项交易正确完成对于支付技术公司这样的企业是个关键的商务过程,但奥地利铁路公司(ÖBB)更关注它的1万公里铁轨、1.6万个扳道岔、240个隧道、6000座桥和6700个道路交叉口对铁路乘客的安全。历史上,ÖBB曾经将其铁路网络的管理责任分配给地方机构,信息都用纸记录保存在本地数据库中。因此,要准确地评估轨道的质量和计划战略性维护与升级很困难,而且很昂贵。

然而,自1996年以来,ÖBB从根本上重新设计和集中了对其轨道网络的管理,以提供具有竞争力的全新服务并确保轨道的物理可靠性。这个计划的核心是ÖBB实施了运行在一个6节点的HP AlphaServer Tru64-Cluster(被放在相距1.5公里的两个地点,其间通过光纤连接)上的Oracle RAC。

"随着越来越多关键的商务流程由IT解决方案提供支持,高可用性对于我们也越来越重要。"ÖBB基础设施部Austrian Railways Fahrweg的首席信息官Friedrich Brimmer说,"我们的集成数据库应用程序拥有1000多名用户,他们访问超过10TB的数据,每天24小时地处理和管理维护信息。"

例如,ÖBB有不断围绕整个铁路网络开动的铁路机动车,测量每25厘米的轨道承受力,并通过无线局域网将测量数据发送到中央数据库。包括使用了地理信息系统(GIS)和Oracle空间数据库选项的应用程序通过运行在集群环境中的多个CPU上,提取并分析数据来推测轨道状况的变化,得出关于缺乏可靠性的详细信息,在24小时内发送给铁路维护人员。

"在部署高可用性解决方案方面,我们了解到进行周密计划以及检查异常情况和严格的压力测试下所有硬件和软件的耐用性和协作性非常重要。"Brimmer说,"如果你打算构建一个集群系统,那么选择稳定的操作系统和稳定的数据库(例如Oracle)是十分重要的。"

对于ÖBB来说,尽管使用Oracle RAC收集和分析铁路数据是一项"不可间断"的工作,但这对于其客户的安全至关重要,同时也给企业带来了利益。"我们相信,将Oracle RAC这样的技术与处理效率相结合,我们可以在5年中将生产力提高70%多。"Brimmer补充道。

减少人为错误

"高可用性对我们来说通常意味着双数据中心的概念,我们在位于不同数据中心的两个系统上运行应用程序,数据中心之间用类似光纤的介质互相连接在一起。"Atos Origin公司的Oracle运行服务经理Erik Snel说。Atos Origin是一家位于荷兰Hoofddorp的全球性IT服务公司,拥有5万名雇员。"如果其中的一个系统发生了故障,另一个可以接管工作。"他说。

这就是为什么仅在荷兰就管理着1800多个Oracle数据库的Atos Origin采用Oracle9i数据卫士来实现不同地点之间的故障恢复的原因。拥有大量客户,确保可用性是非常重要的。"例如,使用我们的仓库管理系统,如果我们不能提供高可用性,很多人就无法进行任何工作也不能将产品交付给客户。当我们不能提供服务时,影响是非常大的。"Atos Origin的一名技术顾问Nico Sponselee补充道。

"我们发现让可用性超过99.9%并不容易,而Oracle确实帮助我们在小数点后再加了一个9来实现这个目标。"为Oracle数据库10g的新功能激动不已的Snel说,"我们认为Oracle数据库10g又朝这个方向前进了一步。它将帮助我们以更低的成本实现更高的可用性,主要是因为我们认为操作系统和应用系统的人为错误更少了。人为错误可以通过减少与人的交互来降低,而Oracle数据库10g正是在这一点上有所帮助。"

当授权的用户犯了错误时,你需要校正这些错误的工具。Oracle数据库10g提供了一系列人为错误更正技术,叫做闪回(Flashback),它对数据恢复进行了彻底的改革。过去,可能只需几分钟就可破坏一个数据库但需要几小时来恢复。有了闪回技术,更正错误的时间等于制造错误所花的时间。快速闪回可以对局部破坏(如误删客户订单)进行精细的分析和修复。闪回还使你能够修复范围更广的破坏(如本月的所有客户订单都被删除),以避免长时间的系统宕机。闪回是Oracle数据库独有的技术,它支持所有级别的恢复,包括行、事务、表和表空间等级别以及整个数据库范围。

 

下一页:确保系统持续的可用性(二)

E-mail this page