微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络业界新闻 > 管理心得 改造企业数据库要花多少钱?

管理心得 改造企业数据库要花多少钱?

时间:08-18 来源:计世网 点击:
最近一段时间内,将有大量新的数据库管理软件包涌入市场。甲骨文刚刚发布的数据库11g,承诺将为DBA提供超出DBA理解范围的新特性;微软的SQL Server 2008即将于明年2月发布,成为SQL Server 2005的继任者;Informix推出了新的"Cheetah"版本,IBM希望利用该产品夺回失去的市场份额;FileMaker公司的同名软件第9版,该厂商表示该产品已经为Web 2.0准备就绪,同时保持了良好的易用性。

  新产品的功能可能相当诱人,但有经验的DBA一定明白新版本通常具有更多特性,就意味着任何性能的提高更可能来自伴随数据库升级而来的昂贵的硬件升级,而不是数据库升级本身。同时,性能提升可能也是有限的,如果基本的设计缺陷或操作问题依然存在的话。

  正如旅游运营商Globus公司的DBA Amy Stuemky所说:"利用硬件解决问题永远是错误的。"那么,如何在不把大笔的钱花在咨询师或新硬件上的前提下,解决数据库应用的常见问题呢?一些DBA表示,解决这样的问题需要的是一点智慧和汗水,还有精心选择的第三方工具。

  修补不良SQL代码

  对于钢铁制造企业Lone Star Steel公司的数据库与系统管理员DeWayne Treadway而言,数据库问题表现在公司的两个甲骨文数据库"整体速度缓慢",但却不能确定其中的原因。

  当Treadway两年前来到这家公司时,公司的数据库在IBM AIX服务器上运行Oracle 8i,其中的一台服务器是16路System p570,另一台是较老的RS/6000 M80。Treadway凭直觉感到问题与SQL代码有关。这些代码是由承包商在5年前编写的,当时公司数据库从大型机迁移到了Unix服务器上。

  Lone Star Steel遇到的情况比较普遍。开源PostGreSQL数据库的开发者之一Josh Berkus就表示:"数据库应用就像是不老松。一个‘临时的一次性’应用的平均寿命长达4年,目前仍有60年代编写的代码仍在运行。"所以,找出问题代码并非易事。Treadway表示,伴随甲骨文数据库的Statspack应用不保存历史性能数据,它已经"不适合"担任这项任务了。

  在分析了多个数据库性能优化软件包后(包括Oracle Enterprise Manager和Quest Software的Spotlight on Oracle),Treadway选择了Confio Software公司的Ignite for Oracle。利用这款工具的"等待时间分析"特性,Treadway能够迅速确定造成数据库一半延迟的3段SQL代码。例如,Treadway能够重写Ignite确定的一段代码,使以前运行需要4分钟的一个进程只需运行10秒钟。

  自从一年前开始使用Ignite后,Treadway把数据库的性能提高了30%。他说他可以通过进一步的调整,再将系统性能提高50%,不过他没有去这样做,因为公司已经打算从Oracle 8i迁移到Oracle 10g R2。然而,Treadway估计通过使用Ignite,在部署新的甲骨文数据库时,他依然能够更好地测试其运行情况。

  正确构建数据库支持网站

  支持动态内容或电子商务网站近几年已经成为最流行的数据库应用之一。不过, Walmart.com的前CIO Neil Day表示,绝大多数网站并不是以高效率的方式构建的。Day指出,在典型的三层Web应用架构中,数据库会承载很大的负荷。为了防止数据库出现瓶颈,DBA必须利用缓存技术和传输流的智能平衡技术,实现数据库与应用请求的隔离。

  为此,Walmart.com建立了节点,每个节点由4台轻型商用PC服务器构成。Day说:"没有使用一台Cisco、Sun或EMC设备,我们使用的全是廉价的x86机器,以及其他廉价的硬件。"由于整个应用栈包括大型Walmart.com数据库,因此每个节点都能缓存某个用户可能发出的所有传输流请求。这就大大减少了瓶颈和由此而来的延迟,并且确保用户的请求始终保持在本地。

  Day说,Google采取的将搜索索引数据库复制到数万台PC服务器上来获得速度和冗余性的战略("分片"方法),就是与他们的方法类似且不太复杂的版本。不过,"分片"并不适合用于媒体内容网站和像Walmart.com这样的电子商务网站。Walmart.com拥有巨大的商品目录以及数以百万的图形元素和图像,因此拥有比Google数据库容量大得多的数据库。

  Day并不愿透露更多细节。不过他说,"利用目前的战略,尽管我们运行在价值两百万美元的硬件上,但Walmart.com仍能够成为世界上最大的电子商务网站之一。"如今,Day将一种类似于Walmart.com的技术引入到了其目前服务的Web音乐新兴公司MediaMaster。

  对于对Walmart.com的方法感兴趣但又不想重建基础设施的DBA,Day给出的建议是,不妨考虑采用前Walmart.com首席设计师Ari Zilka开发的Terracotta公司的开

  源Java群集软件,这样可以有效利用许多同样的技巧。他说:"Terracota为应用中使用的数据提供真正高级、智能的缓存。同样重要的是,它找到了如何让缓存无缝地在应用层之下的代码中运行方法,使缓存能够透明地工作。"

  当升级出现问题时

  对Globus公司的资深DBA Amy Stuemky来说,数据库瓶颈出现公司的关键任务网站中。Stuemky说:"网站常常会瘫痪,没人知道原因。我们不知道是数据库的问题、Web服务器的问题,还是应用造成的。它快把我们逼疯了。"

  Globus拥有50个从版本8到版本10g的甲骨文数据库,以及30个微软SQL Server 2000数据库。而Stuemky是惟一的DBA。这就使Stuemky很难把很多时间用在寻找网站中到底哪里出现了问题上。旅行代理和越来越多的消费者都在通过这个网站预订旅游行程。

  Stuemky甚至做了她不知道是否有效的事情,就是给SQL Server数据库添加了两个额外的CPU。她说:"我们之所以增加CPU是因为我们的数据库许可证允许这样做,而数据库也把它们全部都利用了。"

  Globus最终也选择了Confio的Ignite。Stuemky表示,Ignite的表现优于SQL Server内置的性能监测工具。把Ignite安装在客户端后,一天内就返回了数据库诊断结果:SQL Server存在一个"巨大的锁定问题"。有了这些数据后,Stuemky就能够从微软支持人员那里获得一个Hotfix补丁。

  修改业务流程而不是数据库

  简单调整公司的业务流程常常能比技术修补带来更大的回报。据Orapub公司前甲骨文优化的独立数据库咨询师Craig Shallahamer说,实际上,一些操作,比如调整SQL代码,常常只会将瓶颈由一个地方转移到另一个地方。相比之下,减少数据库工作负载或重新平衡工作负载可以取得更大的成效。

  那么,为什么很少有人会采取这种方法呢?Shallahamer说,这个问题属于典型的DBA的性格问题:即内向何偏爱解决问题。Shallahamer回忆与一位DBA一起工作的经历。这位DBA管理的甲骨文系统在月底高峰期"变得不堪重负"。这位DBA提到了有一些每秒都在运行的SQL语句,这些SQL语句组成传递应用的一部分。他说:"我问他是否有什么办法把这些SQL语句的运行频率减少到1分钟运行一次。他说他首先要与用户协商。用户说:‘噢,没问题。’因此,这实际上全取决于你如何提出问题。"

  他说,DBA还"常常感到没有足够的能力去推动流程改造。"Shallahamer说,正如前面提到的例子所证明的那样,这也是一种误解。DBA可以得到他们"创造令人惊奇案例"所需要的全部信息(例如工作负载的分布情况等)。

  DBA常用数据库管理工具

  Confio Confio Ignite 为DBA提供对数据库性能问题的深入洞察力,支持快照和全天候系统监测功能,实现客户体验和服务水平的优化。

  Oracle Oracle Enterprise Manager 自上而下的应用管理工具。除去常规的监控和报告功能外,强调对终端用户体验、内部应用流程的改进能力。

  Quest Software Quest Spotlight 快速、准确定位性能瓶颈,具备实时诊断能力,可以识别和诊断千余种性能问题,提供详细性能视图和自动瓶颈告警功能,包含完整的故障处理知识库供DBA使用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top