技术开发 频道

专家访谈:连锁酒店如何选择数据库?

  【IT168 专稿】面对实时用户数据查询及更新的挑战,越来越多的连锁酒店选择了方便快捷的IT解决方案,其中数据库选型是不得不谈的一个重要方面。那么针对连锁酒店的特殊性,数据库选型过程中需要注意哪些问题呢?带着这样的疑问IT168记者采访到拥有13年数据库从业经验的技术专家徐青,为大家解答连锁酒店如何选择数据库。徐青目前在国内一家著名的软件咨询公司工作,并担任技术总监的职位。

  以下为采访实录:

  IT168记者:请问您从事数据库相关工作多久了?工作内容是什么?

  从毕业到现在,一直从事跟数据库相关的工作,到现在已经有13年的工作经验。主要负责数据库维护与性能优化、数据库开发以及开发团队的管理。我所在的公司主要是为国内连锁型企业,如连锁型酒店、连锁型商场、超市等提供信息化的咨询与软件实施工作。我刚毕业从事的是数据库的开发管理。然后一步步从数据库维护工程师、项目经理走过来,最终到现在的技术总监岗位。曾经负责过Oracle数据库、SQL Server数据库、DB2数据库、MySQL数据库等多个厂商的数据库管理软件的维护、调优及开发项目。

  IT168记者:请介绍一下您在连锁酒店进行数据库部署的经历?

  去年10月份,公司刚接了一家国内大型的连锁酒店的信息化项目,在其中我负责技术方面的支持。数据库选型与部署就是其中一项关键的内容。这个项目其实是一个二次选型项目,以前这家酒店采用的是单系统的管理模式。即一家酒店一套系统、各家酒店之间没有数据的共享与同步。如此的话,一些新兴的经营模式,如会员卡消费、统一的促销活动等等,都无法进行。在去年5月份开始了信息化管理系统的二次选型。通过几番竞争之后,我公司负责这家酒店的信息化项目实施工作。从数据库这项工作来看,就经历了选型、实施、测试与维护等几个环节。

  在选型阶段,就与企业管理层出现了比较大的冲突。因为这家企业以前使用的是MySQL免费的数据库系统。现在他们仍然希望保留这个数据库管理系统。对此我提出了反对意见,并不是说这个数据库系统不好,而是说这个数据库系统不符合企业未来发展的趋势。因为MySQL数据库在单系统模式下,确实会有不错的表现。但是现在这家酒店在业务模式上要集中管理,就必然要求业务数据要在数据库中集中存储。此时如果还是使用MySQL 数据库的话,显然无法满足需求。一开始酒店管理层不认同我们的意见,后来我们把MySQL数据库、Oracle数据库等官方文档,拿给酒店的管理层看。然后再通过酒店IT管理人员,终于说服了酒店管理层,采用Oracle数据库。这里顺便说一下,公司给这家连锁型酒店采用的是云计算平台的模式。简单的说,就是让企业买服务,给当地的电信部门进行托管。然后在服务器上部署应用软件与数据库,让全国各地的酒店都通过互联网连接来访问这个管理系统。

  在实施阶段,比较重要的工作是为企业推荐合格的数据库管理人员。这家酒店数据库以及应用系统都需要自己维护,而不是外包给我们公司。因为其没有专业的Oracle数据库管理员,所以在前期沟通过程中,就要求我给他们推荐一个能够胜任的数据库管理员。其实在数据库部署的过程中,这种情况比较常见。由于企业原先没有专业的数据库管理员,并且管理人员对这个行业一般也不懂,为此都会委托猎头或者实施公司寻找合适的数据库管理人才。我是建议这家企业通过猎头来寻找人员。因为通过猎头,可以从酒店行业中挖人。而如果我公司出马,从以前的客户那边挖人,就违反了职业道德。这家客户听从了我的意见,从猎头那边招了一个以前从事酒店行业数据库管理的人员。我负责对这些人员的面试。最后推荐了两位我认为比较合适的人员。企业最终选择了其中一位。由于其以前有酒店行业Oracle数据库管理的经验,在实施过程中,我对其的培训就轻松了许多。在实施阶段,对于数据库的配置等等一般都是我们公司技术人员负责。作为酒店一方,只需要有人参与并了解相关的参数配置即可。如果了解的透彻,无论是对于实施方,还是对于酒店,都是双赢的事情。为此如果酒店让你推荐或者面试数据库管理人员的时候,千万不要推诿,要当作一项大的工作去做。

  在测试阶段,我认为需要四方参与。这四方是我公司的数据库管理人员、我公司应用软件的设计人员、酒店的数据库管理人员以及酒店的系统管理员。从数据库管理角度来看,测试的内容主要是数据备份与恢复、差异备份的策略、故障的转移、数据冗余备份等等。在测试决定,我建议相关的测试过程、测试结果等等都要以书面的形式确认下来。一方面,这些资料可以为以后酒店数据库管理人员进行故障维护与性能优化提供数据的支持。其实这也是对酒店方的数据库管理员一个很好的培训过程。另一方面,也可以作为实施方工作验收的一个标准。在这里我还要提醒酒店IT负责人一句。如果实施方没有主动提供这方面的资料,IT负责人要主动索取。这份资料,虽然可能只有不到一百页纸,所涵盖的范围也比较窄,但是比那种官方几百页的文档要重要的多。

  在维护阶段,主要是公司组织的一些培训。在项目交付之前,公司会抽调当时参与项目的骨干人员对用户进行一次集中的培训,其中数据库的优化是我负责的。通常情况下,数据库的维护包括日常的维护和数据库优化两个方面。数据库的维护如数据的备份、数据容量的监控等等,而数据优化包括碎片的整理、性能的调优等等。随着数据量的加大或者应用环境的改变,数据库的性能会逐渐下降。作为数据库管理员,需要追踪这方面的变化,并分析其中的原因。等到一定的程度,需要对数据库进行性能上的优化动作。如可能需要对服务器的硬件进行升级、对数据的算法进行优化、要采用磁盘阵列来提高I/O的能力等等。在维护培训阶段,我都会将这些知识转移给企业用户。因为我公司非常重视项目交付后的知识转移过程。当然我们也会建议,在大范围的性能调优时,还是外包给我们的团队来做。我们会适当收取一定的费用。

  在数据库部署过程中,我建议要重视知识的转移。不然的话,后续数据库出现一点问题,就来找我们公司处理。这对双方来说都会带来很大的困扰。在这个过程中,帮助酒店企业培养一个合格的数据库管理员,是实施方的责任,是一项双赢的投资。

0
相关文章