【IT168 专稿】数据库的运维管理是个技术活儿,需要DBA有很强的技术能力,也需要拥有很强的耐心,还需要很强的体格。说了这么多,也许大家觉得做DBA也太辛苦了。耳听为虚,眼见为实,下面就让我们来看看阿里巴巴张瑞的DBA生活。
▲阿里巴巴运维部DBA张瑞
张瑞2005年加入阿里巴巴运维部,负责数据库管理与运维,架构改进与性能优化,经历了阿里巴巴数据库技术的变革历程,主导了ORACLE向MySQL的转型。目前专注于数据库高可用,分布式架构等领域的研究与应用。
张瑞谈到,阿里巴巴过去一直采用的是Oracle数据库,并利用小型机和高端存储设备提供高性能的数据处理和存储服务。随着互联网业务的不断发展,数据量和业务量呈爆发性增长,传统的集中式Oracle数据库架构在扩展性方面遭遇瓶颈。阿里巴巴采用数据切分(sharding)的策略,将部分海量数据应用从集中式Oracle切换到分布式MySQL集群,从纵向扩展到水平扩展,解决了数据库扩展性的问题,并用PC服务器替换了小型机。
数据库应用的最大瓶颈是磁盘IO,而新的SSD存储技术,可以提供非常高的IO能力。阿里巴巴通过将SSD应用到数据库上,利用flashcache等技术,大幅度提升了PC服务器的处理能力,取代了高端的存储设备,减小了数据库集群的规模,并降低了成本。
说起平时工作中的经验,张瑞介绍说,在日常工作中,碰到的最大问题是数据迁移,尤其是不同类型的数据库之间需要做数据同步,比如Oracle,MySQL,Greenplum等等,这些数据同步都很难找到现成的工具去完成,必须自己想办法。数据迁移不仅要满足一定的实时性要求,而且要对业务的影响最小,我们一般会采用全量与增量相结合的方式,并通过解析数据库日志来实现增量数据同步,各种数据库之间的同步采用统一的方案。
“每种数据库都有其自身特点,正确使用才能发挥出最大的性能。我们主要使用Oracle和MySQL。ORACLE数据库功能庞大,可靠性高,可以充分发挥出大型硬件的性能。MySQL作为使用最广泛的开源数据库,OLTP应用性能高,复制方案灵活。ORACLE与MySQL各有优缺点,我们采用集中式ORACLE与分布式MySQL相结合的方式,不仅仅要考虑功能和扩展性,还要考虑开发和管理的成本。”张瑞介绍说。
在技术选择方面,张瑞表示,没有最好的方案,只有最适合的方案。所以,阿里巴巴在选择数据库产品时,主要是看功能是否满足业务需求;二是成本问题,如ORACLE license费用;第三考虑人员的管理水平,不要盲目引进新的技术,带来额外的风险。
最后,张瑞也谈到了自己对数据库未来发展的看法。他认为未来数据库在三个技术方向值得关注:一是分布式数据库;二是数据库软硬件一体机;三是SSD存储。还有另外一个非常重要的发展方向是NoSQL,现在NoSQL产品众多,甚至有很多说法NoSQL会取代关系型数据库,我认为未来数据库和NoSQL产品一定会长期共存,NoSQL更多是针对某个特定场景进行优化的解决方案,而数据库是一种通用的产品,两者并不矛盾,而是相互补充。传统行业肯定更适合使用数据库,而互联网行业则会呈现百花齐放的景象。