【名人堂】专访沃趣技术专家魏兴华:老司机的技术修行心得

2021-10-22 00:00:00 数据库 产品 技术 等待 阿里

嘉宾介绍

魏兴华,杭州沃趣技术专家。曾就职于东软集团,阿里巴巴集团,Oracle ACE-A,DBGEEK 用户组发起人,ITPUB认证博客专家,ACOUG、SHOUG核心成员。曾在ORACLE技术嘉年华、ORCL-CON、YY分享平台等公开场合 多次做过数据库技术专题分享。ORACLE INTERNAL达人,对数据库架构设计、高并发下数据库性能调优有丰富的经验。



duke217(Q1):魏老师,您好!很高兴有机会采访到您,作为ITPUB的老朋友,相信很多网友对您都很熟悉了。不过按照惯例,还是请您简单的介绍下自己,跟大家打声招呼吧~

魏兴华(A1):各位Puber,大家好,我是Rose魏兴华,目前就职于沃趣科技,一家专注于做数据库产品和解决方案的公司,我从07年接触数据库,至今已经快十年,也算一个老司机了。这十年中,大部分时间是在做与Oracle相关的事,会优化懂恢复,能做故障处理也能架构设计,中间也断断续续的搞过Mysql、GreenPlum、MongoDB和GoldenGate,目前的主要精力是在围绕数据库做产品和解决方案。学了这么多年的数据库,我相信终以产品和解决方案的形式去落地是一件非常有意义的事,知识也可以用服务的形式提供,不过在我看来做服务本身可复制性不高,而把经验和知识融合在产品和解决方案中,知识就具有了可复制的能力,进而能够创造出更大的价值。


duke217(Q2):在我个人看来,学好这些复杂的技术是一件十分难的事情,您是如何在不到十年的时间里,成为业界技术专家还获得了诸多荣誉的?据我了解您是DBGeeK用户组的发起人、ITPUB认证博客专家、Oracle ACE组的成员,ACOUG、SHOUG核心成员等等。请问这个过程中是否有什么可以给大家分享的?

魏兴华(A2):就拿Oracle来说,它是一个庞大、复杂的rdbms系统,如果一开始就知道它是这么的厚重,可能也不敢轻易的决定去学习它。很多事情都是这样开始的,你对它一无所知,然后开始去学习它,然后对它开始着迷,接着没日没夜的看书、做实验、泡论坛。不过话说回来,要具备足够的专业性,兴趣只能是个引子,还需要去阅读大量的不是那么有趣甚至是无聊的文档,需要模拟各种稀奇古怪的情况下,该如何利用所学知识去解决问题,在这个过程中逐渐总结、提炼出自己的方法论。就我的亲身经历来说,学习本身并没有捷径,不能浅尝辄止,就是要踏踏实实的一步步的去走。很多人认为大牛之所以厉害是因为脑子好,智商高,不可否认,有些大牛是这样的,可就我这么多年接触到的大牛们来说,他们身上具有的相通的品质是勤奋,要成为某领域一个牛人,成为一个受大家尊敬的人,一般还到不了要去拼天赋的地步,勤奋一些就可以了。


duke217(Q3):我了解到,您曾经在阿里这种让很多人都羡慕的大型企业任职,那么当初又是什么让您下决心离开,选择重新打拼的呢?

魏兴华(A3):阿里是一家非常的公司,在那里我接触到了非常的数据库团队,同时接触到了很多数据库之外的知识,例如的运维产品、运维工具,各种数据库架构,各种硬件,当时阿里在SSD的使用上也非常的早,我还有幸主导实施了当时套基于fusionio的共享redo的方案,接触到了GreenPlum这种MPP架构的数据库。这里还有闪闪发光的业界大牛,看到了的人是怎么做事和如何思考的,所有的这些对我影响都非常大,潜移默化的,会学习到很多知识,当时我还跟团队的人开玩笑,“即使一个傻子什么都不想做,在这里也能学习到很多知识”。我当时在阿里主要是做Oracle相关的事,不过后来就像大家都知道的,阿里集团把去IOE作为战略,那我就面临一个问题:是选择去学其它数据库还是继续做Oracle相关的,当时还处在对Oracle痴迷崇拜的阶段,非常不愿意丢掉这一块,再加上当时也是机缘巧合,遇到了一个做caipiao的创业公司,非常希望我加盟,创业对于我来说还是很有吸引力的,考虑再三后就去了。现在回头来看,当时走的有点草率,但是并不后悔,在那边的两年多并没有荒废,现在身上的本事一小半都来自于那段时间,可惜由于种种原因吧,这次创业失败了。 再后来就来到了我现在工作的地方——沃趣科技,是我之前阿里DBA团队的老大出来创业的一家公司,这里有很多数据库的人才,而且所做的事情也非常有意义,相信在这边我能把我想要做的事做得更好,十年来积淀的能力也能得到更好的发挥。


duke217(Q4):RAC是从Oracle 9i版本开始出现的技术。那么在您眼中,Oracle数据库从9i版本发展到现在的12C,RAC技术都有哪些突破性的发展呢?

魏兴华(A4):Oracle各个版本的命名都反映了当时所处时代的特点,8I、9I的I代表了Internet,10G、11G的G代表了Grid、网格计算,12C的C代表了Cloud,云也是当下为热门的词。当然除了产品的命名结合时代特征,产品推出的新特性也有大量的配套,例如12C版本提出了Flex ASM,Flex Cluster和CDB容器数据库,都是基于云的特性,大大提高了资源的整合密度、增加了获取资源的便捷性,进一步提高了集群的可用性和可扩展性。


duke217(Q5):在您迄今为止的职业生涯中,您碰到过的棘手、印象深的一次Oracle故障处理是?

魏兴华(A5):现在我所在的杭州沃趣科技是一家提供数据库解决方案的乙方公司,经常会需要帮助客户解决各种各样的疑难杂症,在这里一年多的时间里处理过的故障比以前七八年里的还多。有时间我也会写写文章,不过熟悉我的朋友可能都清楚,我写过的故障处理类的文章非常少,大多是原理性和新特性的文章居多,这并不是因为我处理的故障少,而且我认为大部分的故障处理都依靠着对于数据库基本原理的掌握和平时对数据库特性的深入研究,具备这些基本功后,故障处理是自然而然的事。很多人喜欢强调动手能力,强调实践出真知,我不是很认同,大多数知识或真理都是来自于书本,很多的原理并不是以实践为基础的,哲学,科学,艺术大多都不是以实践为基础的,这些要考抽象思维,靠思考得来,不过理论结合实践是一个非常好的验证理论的方式,这个过程中也可能让你对某些理论产生新的认识,就像我平时的故障处理在很大程度上可以促进我对相关知识的理解,比如昨天还帮助一个Exadata的客户处理了一个enq: SQ – contention等待事件严重的问题,它直接导致了数据库高峰期的HANG,严重时候,将近有200多个会话都在等待这个等待事件,看AWR报告,TOP等待事件中,百分三十以上的数据库时间都是由它造成的,可终经过分析,其实问题出现的真实原因是故障发生时,所有日志文件的检查点未完成,导致所有的DML类的SQL被HANG,还有大量的select序列next值的SQL被HANG,这些SQL虽然是查询,但是由于序列的cache值用完,那么再次获取的时候就要修改数据字典,这个操作也会产生日志,而当时数据库又不能产生任何的日志,因此这个获取序列next值的查询就会HANG,等待log file switch(checkpoint incomplete)等待事件,但是其他的连接会话等待的是enq: SQ – contention等待事件,只有个去修改数据字典的连接才会等待log file switch(checkpoint incomplete)。虽然我经常说,等待事件告诉你时间去哪儿了,但是就像这里的情况,有些时候并没有直接告诉你,需要你根据现象往下继续摸索才能发现事实真相。


duke217(Q6):两个月前,我有幸在DTCC大会现场听了您关于“云是未来”的演讲。正如您所说,越来越多的企业正在考虑“上云”,但是云的安全性和QoS等问题同样一直是大家所关注的焦点,对此您有何见解?

魏兴华(A6):安全是对比出来的,没有的安全,任何系统都有可能会被入侵。打个比方,如果一个公司规模很大,有非常专业的安全团队,比如腾讯、阿里、百度等公司,则肯定他们自己部署会安全很多,但是如果是一个小的创业公司,不可能有很专业的安全人员,那么云服务的提供商则可能会提供更专业的安全保障。我所在的公司也在做数据库私有云的相关产品,在设计这些产品的时候同样需要考虑安全性和QoS的问题,比如QoS的问题,我们通过实例之间CPU资源和内存资源的隔离来保证每个实例的服务质量,对于数据安全,通过ASM的冗余机制来保证在一份数据出现问题后,整个集群的可用性不降低和数据的完整性。大多数的安全性问题和QoS问题都可以通过一些现有的成熟技术去解决掉。但是不可否认,由于云的整合性,一旦基础架构出现安全问题和服务质量问题,这个影响面是非常大的,对于这一点,几大公有云提供商都几乎出现过问题。


duke217(Q7):去IOE是当前国内数据库行业,乃至整个IT行业都无法绕开的一个话题。“O”到底该不该去,也让很多企业,特别是初创型企业很是烦恼。作为一名大咖,您有何建议?

魏兴华(A7):之所以喊出了去IOE,说明出现了一些可替代性的技术和产品,而正如大多数人看到的,现在各种各样的数据库层出不穷,rdbms、nosql、newsql,nosql这个类别里又有mongodb、redis 、Cassandra等等几十种,像SSD这种颠覆硬盘行业的革命性产品在我刚去阿里时也只是少量的在用,而在这几年SSD已经在各种行业遍地开花,再者,这些产品/架构相较于O这种昂贵产品已经是非常的便宜,而且随着SSD的出现,性能也变得不再是问题,不需要依靠高大上的架构才能去解决性能问题。人类基因的传承需要多样性,一个团队成员的技能需要多样性,对于数据库来说,同样也需要多样性,新的数据库越来越多,任何一个行业在鼎盛发展时期都应该是百花齐放、百家争鸣的。用户以前只能选Oracle,而不去管应用场景,但现在随着越来越多的数据库出现,用户也需要去思考,到底我的应用适合跑在哪个数据库上,如果应用要求数据零丢失、对于事务的ACID要求非常的高,那么可能终还是要选Oracle,这是Oracle的强项;如果这个应用仅仅是用来记录类似于淘宝收藏夹、用户评论等,那么就非常的适合使用MYSQL或POSTGRESQL等开源数据库,甚至选择一些像MONGODB这种的NOSQL数据库,这是它们这些数据库的核心竞争力。因此我个人认为去IOE它大的意义是让用户去仔细思考,自己的应用到底适合什么样的数据库,而不是像以前那样只要考虑用数据库就是Oracle,还是需要根据自己的应用特点去选择合适的数据库,而不是急于把那些本来就应该放在Oracle上的数据库迁移到其他数据库上。这里再补充一点,阿里能够成功去O,很大程度上是因为它具有很大一批出色的技术人才,人才很重要,这是非常重要的一点。

相关文章