eygle.com   eygle.com
eygle.com  
 
Digest Net

转引图灵访谈,原文地址:http://www.ituring.com.cn/article/62995

Jonathan Lewis 世界级Oracle资深专家,有20多年Oracle关系数据库管理经验。主要从事自由咨询顾问工作,其Oracle数据库引擎方面的培训课程和研讨会世 界闻名。Jonathan曾是UKOUG(UK Oracle User Group)的负责人,他著有多本Oracle方面的畅销书,并维护自己的Oracle技术博客。他的博客:http://jonathanlewis.wordpress.com

图灵社区: Oracle的自动化程度变得越来越高,很多需要人为介入的优化手段也变得越来越简单。在这种情况下,DBA怎么才能跟上发展、更好地提高数据库的效率?

JL:要想跟上Oracle的发展是十分困难的。我之所以无法完成我想要写的书,就是因为我总是跟不上 (笑)。虽然我可以解决很多实际问题,就算面对全新的难题,我也可以通过了解Oracle的表现,结合它的工作原理,很快诊断出问题。但是我却无法反向推 断,如果你告诉我某种情况,我可能无法说出Oracle会做什么。我现在已经很难再进行预测了,但是我可以根据问题找原因。跟上发展的意思我认为应该是预 前判断Oracle的工作状态,要做到这些,我认为要有足够的经验。

阅读手册是十分重要的事。我认为市面上还有两三本书,也可以帮助你掌握必要的信息。Christian Antognini有一本书叫做《Oracle性能诊断艺术》, 在这本书中,他讲述了很多Oracle运作的知识,以及如何利用工具找到问题,同时也提出了如何解决问题的建议,这样的好书会教你Oracle怎么工作, 然后会举一些例子告诉你Oracle能完成什么。如果你仔细读过手册,也读过这些书,你就知道如何构造模型,如何用特殊方式建立两个表,如何选择查询,如 何选择Oracle的特性......你可以亲手实践手册或者从《Oracle性能诊断艺术》里学来的东西,然后自己创造出一个可以解决自己实际问题的办法。通过亲力亲为的实践这些知识,你就会知道Oracle可以做什么,什么又是错的了。我认为实践是最好的学习方法。

但是很多人没有时间来做这些事。你的公司可能会说:9点到岗,5点之前不许下班。这样你就没有空余时间,一直都忙着做别人安排好的事情。每天重复做同样的事,一做就是5年,于是你没有时间跳出来,尝试一些新方法。

有两个办法可以帮你获取更多的经验。第一个就是像今天这样的大会是很好的机会。你可以离开你的工作,听听别人分享的经验。你会得到很多新的启发,也会找到解决问题的不同方法。得到这样的启发是大有裨益的。

另外一点就是,我作为一个咨询师,我工作的方式会让我每年大概接触到20家公司,我就会知道20种运作方式。大多数人只能有机会看到 Oracle如何工作的冰山一角,但是我几乎有机会看到全貌。所以关于在Oracle上可以做什么,我可能更有经验。常规公司的DBA经常会说:我们公司 在过去5年中就是这么做的,我们有其他的办法吗?DBA们应该经常安排自己重头思考一下,忘掉自己惯常的做法和思路,重新读手册,看看能不能想到一些新的 办法。对于我来说,如果我看到你们在做的工作,我可能会想出5种不同的方式来达到同样的目的,因为我见过这些方式。对于 Oracle来说,完成任务的方式多种多样,而普通DBA只能看到他每天接触的方式。所以,要成为出类拔萃的DBA,你就必须去了解和尝试不同的做法。这 些学习会花费你的时间,但是这也是必须要做的事。

图灵社区:你作为一位独立Oracle性能专家是如何工作的?在接到一个新案子之后你询问的第一个问题是什么?

JL:我还是挺出名的,所以经常会接到电话或者是邮件说:我们这出问题了,你下个礼拜哪天有时间能来一趟 吗?我大概每天工作3天时间,我还要留出一天做一些很重要的试验,来了解Oracle,了解更好的运作方式,剩下一天我会从事写作,无论是书还是博客。所 以接到这样的电话,我通常都是有时间的,也许是下周,也许是下下周。

一般我在接到工作的时候,他们都会告诉我,哪里出了问题,需要我来做什么。在整个解决问题的过程中,我第一步需要了解的永远都是:你们想要这个 系统做什么?出现问题时的状况是什么样的?并不是Oracle在干什么,机器在干什么,而是用户在做什么。然后他们可能就会说,银行系统处理了大批量的境 外交易,每个月我们在做账目核对的时候,就会出现性能问题。这就会告诉我他们平常的进程是什么,当在某天引入特殊进程的时候就会出现严重的性能问题,这两 个进程之间哪里发生了冲突,它们的运行机制是什么。经常会有这样的情况,在得知业务在做什么,然后转入Oracle问题的时候,我就可以预测出数据库服务 器上Oracle出现的是什么类型的问题。一旦我得到整体的情况,就可以追踪到具体的代码了,我开始检查数据库结构,询问为什么要建立这个索引,想通过它 做什么。然后重新运行,如果不行就导出性能数据,找出AWR报告、历史信息存储,以及其他Oracle能提供的信息,由此得出下一条线索。

图灵社区:我知道您满世界解决Oracle难题,现在您已经去过超过50个国家了。你有没有在这过程中遇到过很棘手很难解决的问题?

JL:中国应该是第52个国家了(笑)。确实有这样的情况,很难判断问题究竟出在哪里。有的时候问题其实是 一个Oracle bug,但是很难证明。有时候会遇到关于并发行为很稀有的问题,两件事必须严格在同一时间发生才能出现这个问题。于是我就只能说有可能是什么出了错,于是 解决方法很有可能就是需要绕过这个问题。有那么几次,我最终也无法说出是哪里出了问题,虽然我知道在什么条件会产生这样的问题,但是我无法给出足够的信息 来从根本上解决这个问题,甚至都没办法提供足够信息找到Oracle向他们寻求产品改进。我们能做的只能是建立历史记录,证明问题确实发生了。还有几次, 在我找出问题后,其他人在我之前找到了解决方法。在我从业的25年中,有一两次这样的情况。

图灵社区:你有没有打算建一个团队来从事现在的咨询业务?

JL:大家总在问我这个问题。他们总是说:我可以为你的公司工作吗?事实上,我没有公司。我觉得有了公司之 后就要为这个公司负责,这样就没法一直做自己喜欢的工作了。而这两点对我来说都没有什么吸引力。我不想为找到合适的工作者而发愁,我无法给出这就是他们需 要用来养家糊口的工作的保障。所以,可以说我从来都没有考虑过成立一个公司。

图灵社区:当你的孩子还小的时候,你不仅要写书,还要忙着满世界做咨询服务,你是如何分配你的时间的?

JL:在1999年,当我的孩子还很小的时候,我开始写我的第一本书,当时还没有人像我一样做Oracle 的咨询工作,大家当时都忙着重新编写程序,所以我觉得很有必要写一本书。我下决心花上半年的时间写这本书,暂时放下平常的工作。我告诉我的家人:我要写书 了!第二天,我的女儿对我说:"你还在写那本书吗?"她以为我花了一整天写书,第二天肯定应该写完了!

在我的孩子很小的时候,大概是12岁之前,我会尽量少出门做咨询,可以说我基本没怎么出远门。在他们大一些之后,我重新开始我的咨询工作,但是我会保证周末一定在家。我不会在一周内工作超过5天。今天大概是我25年中第三次,我周末没有和家人在一起。

图灵社区:这可能是你作为独立专家的福利之一吧。

JL:是的,我已经把很多人引诱到加入这个行列了(笑)!我跟他们说:如果你们周末工作的话,就要花上两倍的时间,如果你们星期天工作的话,就要用上三倍的时间。

图灵社区:想以数据库作为事业的人通常面临两个选择,一个是作为DBA,另一个是作为开发者。你对面对这两个选择犹豫不决的人有什么建议吗?

JL:对我来说最大的问题就是我所看到的Oracle应用,它们没有体现出大家所说的DBA和开发者之间足 够的合作性。有些人接受具体任务,他们写的代码需要和Oracle数据库交流,还有人管理Oracle数据库,他们整天看数据库的SQL。有时候他们会 说:这人会不会写SQL啊?这写的是什么呀?我认为不应该有这样的分界线。如果你的应用背后有Oracle数据库,你应该知道数据库是如何工作的,这样开 发者和DBA之间的对话就会更有效。

很多DBA抱怨,现在的数据库很大程度上就是按按钮。如果你是一位DBA,你可能这辈子都在做支持,没有机会接触像我所做的这些有趣的东西。如 果你想精通如今的Oracle,并且享受你在Oracle上的工作,我认为你应该把自己放在两种工作的中间。这样你就会了解数据如何工作,就会享受和数据 库交互的过程,也会喜欢和业务应用交流的过程,你会知道如何构建自己的代码和数据库更好的交流。所以,"DBA开发者"也许才是最合适的位置,并不仅仅作 为一个程序员,而是一个和数据库有亲密接触的程序员,享受数据库所能提供的帮助。当然,这可能需要找到一家能够提供这样位置的公司。

图灵社区:对于内核和功能,你认为关注哪个更重要?

JL:我认为每个人都应该熟悉undo和redo的运行方法,每个人也应该了解一些类似库缓存如何工作的只 是,因为他们应该知道,在完成一个很简单的任务时,后台都发生了些什么。也许你不需要对所有事情都知道得一清二楚,但是你需要知道什么时候需要干什么,需 要对整体有一个把握。一旦你对所有事都有了大概的了解,我认为你不需要再有更深的考虑了。大多数人需要知道的就是索引表怎么工作,群怎么工作,压缩索引有 什么好处。当你改变数据的时候,当你需要优化的时候,你就知道如何避免信息阻塞。基于此,你就可以去研究一下物理设计,这就是你需要掌握知识的上线了。

我对OTN数据库论坛上的一件事感到很有趣,几乎每周,论坛上都会有一个问题"如果我把这行上移到这里,而不提交,在这之后我们运行了很久,但 是突然间数据库崩溃了,Oracle会如何处理这件事?"我对这类问题出现的频率感到惊讶,因为从很多方面来说,需要了解这些事的人非常少,你不需要知道 如何解决和为什么这么解决,只需要知道它就是这样就够了。多掌握一些知识当然好,但是如果这需要耗费你大量的时间和精力的话就不划算了。人们总是不厌其烦 的问我这些问题,这其实也是我写这本书的一个原因,你们来看书吧,别问了。

图灵社区:如果您的子女对计算机科学感兴趣,你会让他们选什么具体的方向呢?

JL:我的孩子对计算机科学一点都不感兴趣,甚至对科学都没什么兴趣。他们主修的都是艺术。如果要我给其他 的人建议的话,我其实没法给出具体的建议。我对自己从事的工作很喜欢,我也鼓励别人做自己真正感兴趣的工作。如果你能通过这件事赚到钱,那就去试试吧。我 不会和任何人说,你去做Oracle。我知道有些人他们并不对Oracle感兴趣,只是因为他们做的不赖,做其他的事又做不来,所以才从事这份工作。刚才 这个问题的实质其实是预测这个市场:5年之后的就业市场会是什么样呢?

如果有人要根据未来就业市场的走向来定夺自己的未来。那我就大胆猜测一下。我认为对于Oracle顶级专家来说,会有一个很小的市场。5年后, 可能很大部分的普通Oracle工种都会被挪到云端,只会有不多的用可插拔数据库的支持,来维持很少数量的数据库。而大部分小型企业,只要租赁 Oracle的云端数据库就可以了。他们不需要自己买硬件和软件,也不需要有自己的DBA,只要为自己的应用租赁一块可运行的数据库就可以了。如果你想在 5年后成为Oracle DBA,你要么就是为很大的公司工作,他们自己为了保护数据的隐密性,而把数据留在自己这里。要么就是为很大的机器工作,500台机器上运行着上百个数据 库。小公司里的多数DBA,就不会存在了。除了Oracle,也会有其他的数据库技术也向这个方向发展。

事实上,需要维持大数据库的大公司数量并不很大。无论你的技术是什么,DBA都不会很多。我将在5年内退休,对此我长出一口气。很高兴我不是个 初出茅庐的专家,因为我很担心在5年后很多DBA的命运,他们找工作也许会很困难。除非他们真的出类拔萃,而且大家也认可他的能力。

图灵社区:你会考虑开发某种工具让代码可以跨越各种版本的限制吗?

JL:绝对不会。我从来没有想过要把我做的东西变成某种产品。因为如果要有产品的话,那个产品就一定要尽善 尽美,而且要完美适配所有版本的Oracle。这就意味着我要花很多时间对已经存在的东西改来改去。这对任何人来说,都是得不偿失的。我甚至都不会公布我 的SQL代码,在我的博客上只有很少几个,我会说:这是一个很小的例子,这是2003年在某个版本的Oracle上运行的代码,它的作用是告诉你这个东西 大概是怎么完成的。我绝不会说:这是一个在所有Oracle上都能运行的程序。看着我现在用的某些代码,我认为我可以把它们改得效率更高,这个高效版本可 以在10上运行,也可以在11上运行,我十年前写的代码,现在仍然可以在9,10,11上用,对于我的要求来说完全适用。但是如果要我做一个产品来解释, 我就需要它在所有产品上适用,而且还要回过头修改以前的代码。人们不会为不产生新的结果的事情付钱。所以从经济学上来说也是不合算的。

市场上有些工具,我不会说具体名字,当你仔细观察它们运行的SQL,你就会发现他们的效率很低,这不是做事的正确方法。但你会认识到,在十年前,没有改变的需求的时候,它们仍然能够运行。在很多年以前,当Oracle 9刚问世的时候,有一个公司有个这样的标准工具,我在一个大会上看到了,是一个很小的展台。他们有一个产品在Oracle 8上小有名气,当时展台上挂着一个巨大的条幅,上面写:"Oracle 9的保证"。我就去问他们一些细节:"你们说Oracle 9的保证是什么意思?你们能做这些那些吗?"最终他们终于承认,这句话的意思其实是,代码在Oracle 9上仍然可以运行。但是这样的产品并不是为Oracle 9设计的,而是为Oracle 8设计的,只是可以在9上运行罢了。可以说如果我是这个产品的顾客的话,我听到这些话可不会高兴的。但是商业公司有自己的考虑,也就是这种考虑上的差别,使得我做梦也不想把我做的东西变成产品。

图灵社区:《Oracle核心技术》和《基于成本的Oracle优化法则》是两本很受欢迎的技术书。在《基于成本的Oracle优化法则》中你说过,会有一系列关于此主题的书,《Oracle核心技术》是这个系列的第二本,这个系列的其他书也在准备中吗?

JL:事实上,《Oracle核心技术》并不是这个系列的第二本书。当我写完《基于成本》,我决定不再继续 写那些复杂、耗费时间,但又不是十分必要的主题,比如分布查询和平行查询。因为这些很让人费神的东西的需求并不很大。但我确实有计划继续写书,主题是我所 掌握的其他信息。这个决定的根源是Oracle的变化和升级太快了,就算是有我这样背景的人,也无法跟上Oracle发布的步伐,无法预测在所有情况下 Oracle的反应。虽然我一直尝试紧跟发展,写一本关于优化,内容丰厚的书,但是却一直无法开始。

《Oracle核心技术》其实是倒退了一步,它跟随的是我在2000年写的一本书《Practical Oracle 8i》,介绍了Oracle工作的核心机制。《Oracle核心技术》扩展讲述的就是这本书一、二章的内容。我要小声透露一个消息,我可能会写一本关于物 理结构、索引,以及表方面的书,但是这件事还没有确定。这本书是要把《Oracle核心技术》中尚未展开的部分写出来,教你在写代码之前,通过如何选择不 同的物理结构,让数据库变得更有效率。如果可能的话,这将是一本很有意思的书,但是让我完成另一本关于Oracle的书希望渺渺。《Practical Oracle 8i》是一本好书,现在仍有人在买,如果我真的能完成下一本书,内容会和这本书一、二章之后的内容相关。

感谢杨志洪 、熊军、耿永辉三位译者协助采访。

本文引自Vage个人网站,原文链接:http://www.mythdata.com/post/15.html

十五年前,你或许还不懂爱情,看Jack和Rose执手相看泪眼,只是蒙胧的心痛。十五年后,你会和谁一起走进影院,更会和谁一起,走到生命终点。
十五年前,我还不太懂技术,凭兴趣玩着C语言。十五年后,当铁达尼的旋律再次响起,我会选择和哪门技术,一起走到我职业生涯的终点。

序言
---- 回望雨中的园区,更是回望来时的路。

此时天空飘着小雨,正如丝丝织雨细如愁。我刚刚离职,一路走出园区,回望了一眼雨中阿里巴巴的大楼,思绪随着微风,四处飘散。突然想起几年前我刚到杭州哪天,也是细雨微风。我走进城西的创业大厦,终于见识了大师Biti的风采,也从此开始我的阿里巴巴之旅。
杭州的特点,是隐匿在山青水秀之间,有很多雅至的主题饭店,团队第一次出外聚餐,就是在山间绕来绕去,最后到了一处青山环绕、绿水长流之处。Biti在会议上就"什么是架构"进行了精彩的评论,高度已经超越普通技术人员,至今我仍记忆犹新。但不久之后,Biti调至支付宝,真是遗憾。而这让我面临了空前巨大的压力,因为Biti一走,我变成了团队级别最高的DBA。初来乍到,入职刚满一月,忽然成为阿里系一个子公司的"首席DBA",惊喜之余,感觉压力之大、常常令我透不过气来。不过还好,时间总一晃而过,此时此刻,刚刚走出阿里,掏出手机,拍了一张照片,算作我在阿里的留念,更是我人生一段最重要经历的留念。

201209261701388124.jpg

回望雨中的园区,更是回望来时之路。............


本文引自ITPUB论坛,是Vage - 吕海波 的技术感悟,很有借鉴和学习意义,供参考。

原文链接:http://www.itpub.net/thread-1806151-1-1.html

----------------------------------------------------------------------------------------------------------------

arron刘:
大师您好,今天很高兴采访您,您先自我介绍一下? 分享一下您的职业经历? 您目前从事的工作?
VAGE:
我的ID VAGE,相信大家都知道了,经常发一些深奥、晦涩的文章,骗几篇精华赚赚人气。
其实并不是我总是发晦涩的文章。Oracle基本的原理啊、运行机制啊等等,这些年来大家都讨论的差不多了。现在不是流行"产业升级"这一说吗,这么多年了,我们研究Oracle的方法,也要"与时俱进"、"产业升级"吗。不能老是内部资料+各种DUMP。
我相信下一代专职DBA一定要掌握些软件调试技能,我的深奥文章,也就是调试技术在Oracle中的简单应用而已。就像N年前搞个10046就属于高精尖 了,我相信N年后我的文章只是入门级水平。就像现在的10046一样,如果现在你不懂得10046怎么用,还好意思说自己是DBA吗。
这次的OOW大会,很高兴看到Oracle将Solaris下优秀的调试工具Dtrace,移植到Oracle Linux下。其实几个月前我就已经得到这个消息,也第一时间试用了一下Oracle Linux下的Dtrace,功能当然没的说,但一些重要的探针(比如PID探针)Oracle Linux Dtrace下还没有,总的来说它还比较简单,期待以后版本中它进一步完善。
我的职业经历,这里就不详说了,在"35岁"那篇文章中:突然35岁:捡点我的职业生涯,已经有详细的介绍。
我目前在杭州博学负责Oracle的培训,同时还提供Oracle咨询服务。有需求可以联系我哦。除了这些表面上的工作,我在做的还有一件事,就是推广调试技术。我相信软件调试技术,将成为以后DBA的重要技能。

arron刘:
ORACLE最近发布了12C版本,相信您已经尝鲜试用过了吧,能不能分享一下你的安装经验,谈谈12C和以前版本在安装上有什么不同的地方?

VAGE:
12C从安装上步骤上看,和11GR2基本类似,连安装界面都差不多,相信安装上不会有什么难题。我分享过一篇Solaris下12C安装问题的解决思路。
因为缺包,安装完成后Oracle可执行文件是0字界,解决方法很简单,relink all了一下,重新编译生成Oracle的可执行文件,问题解决。可以参见:12C安装历险记----ORA-12560和ORA-12537的解决方案。
安装其实很简单,从这个安例中,我更想分享的是一种解决问题的思路。希望对大家、特别是初级DBA有帮助。

arron刘:ORACLE 12C 应该是甲骨文公司的重量级产品,据说有500多项的更新,您能不能给我们讲讲Oracle 12c最主要的变化是什么?给我们分享一下你的使用感受呗。

VAGE:
变化,我觉得可以从两方面来说,一是功能,二是内部原理
先说功能上的变化,12C新功能的确很多, 最大的亮点就是"Pluggable Database",PDB,"可插拔数据库"。网上已经有很多相关的文章,每一个PDB都是一个单独的小数据库,若干个PDB组合在一个大的CBD中, 共同构成一个大数据库。需要迁移数据的时候,可以将某个PDB拔出,插入进另外的CBD。这个特性,将使未来的数据迁移、数据流动更加方便。
还有ASM方面,ASM和数据库实例可以分别放在两台主机上。ASM和数据库实例的分离,至少说明Oracle以后有可能要为ASM添加更多的功能,如果ASM和数据库实例挤在同一机器,ASM功能太多,占用资源太多,势必会影响数据库实例的运行。
而且,分离之后,ASM就有点像存储的控制器了。存储控制器通过网络把LUN输送给主机,ASM通过网络,把DiskGroup输送给数据库。
还有,至得一提的时,12C中Oracle开始对EM做减法,推出了轻量级EM,安装简单、占用资源少,问题也更少。使用轻量级EM,将大大方便DBA们 的操作。但同时,图形化、智能化工具的普及,也必将提高DBA的要求。未来DBA必将向"一专多能"方向发展,但要注意,千万不能只"多能"。有"一专" 为基础的"多能",是如虎添翼。我还是哪句话,当水涨上来时,我们只有爬的更高。

另外,从内部原理、运行机制上说,Oracle也有不小的变动。Oracle从来没有停止精益求精的步伐。比如,12C下LGWR已经可以有多个,多 LGWR无疑将大大提高并发事务量。为达到这个目的,Oracle必然对Redo这块的机制有很大的变动,Redo这块的调优、排故,方法必然会有变化, 以往的经验有可能不再适合。
还有,以前在9i时代,我就觉得Buffer Cache池、共享池已经非常完善了,这一块原理基本不会发生变化了。到了10G,Buffer Busy Waits就发生了变化。还有,Mutex的出现,对共享池的锁机制做了很大的改动。12C后,Mutex、IMU等技术继续优化、完善。举个简单的例 子,Oracle获得共享Mutex的函数是kgxShared(已验证在Linux和Solaris下都是这个函数),在Oracle的可执行文件 中,11.2.0.1下,这个函数的大小是1496字节。而在12C中,这个函数大小缩减到393字节。(注:只需要在gdb或mdb中,反汇编一下这个 函数,就能获得函数大小)。
共享Mutex缩小了三分之二左右,代码量大大减小,CPU的消耗也将更加少。当然,Mutex的变化主要体现在内部,对我们维护人员来说无所谓。但还有 些变化是和我们相关的,比如log file sync与log file parallel write的关系等,后面我会找时间写篇文章和大家分享下。

arron刘:
现在云计算和大数据是时代的宠儿,ORACLE也不能置身世外Oracle 12c这个C是不是代表着云计算呢?新的数据库版本在云计算中有哪些应用呢?

VAGE:
其实我理解云就是前些年SAAS的延伸,软件就是服务。以后使用软件,就像电源插座一样,无论到哪里,接上插头就可以使用。Oracle DataBase本身是系统软件,系统软件不必是云。就好像Linux一样,我暂时还无法想像Linux怎么变成云。但系统软件要能很好的支持上层的"云应用"。我觉得12C中的C,是指Oracle将更好的支持上层的"云应用"
在"云应用"的背景下,数据要有更好的流动性,接上插头、或打开水管,数据就流出来了,"可插拔数据库",是Oracle在这方面的尝试。另外还且个不得不提的东西,就是OGG,虽然它不是在12C中新推出的,但它无疑可以增加数据的流动性。

除了让数据"流"起来之外,应用程序升级到"云应用"后,对数据的规模要求一定越来越大,因此大数据是不可避免的趋势了。其实使用Oracle RAC和ASM,也可以方便的搭建大数据计算平台。
大数据通常都要数据分布化存储,这样才能有更好的扩展性,才能更好的支持大规模数据。
ASM也能实现数据的分布化存储,扩展也可以很方便。而RAC则可以实现分布式计算,也就是多台主机一起进行计算。

比如,先看一张RAC的图:

100846xcwxxx9wbuu9mdms.jpg

图比较简单,大家凑合着看就行。上面是N个RAC节点,下面是一台共享存储,其中有N块硬盘。这是RAC的传统架构。我主要想通过这幅图表达一个问题,先 不说RAC节点数多对性能的影响,单说RAC的共享存储,一直是RAC的一大限制。共享存储限制了数据的分布性。像GreenPlum和Hadoop等等 都是Nothing Shared的全分布式架构,扩展更方便,能力更强。
其实使用iSCSI+ASM,做一个类似分布式的架构也并非难事,看下图:

100846kbufifpjpzdxnzbn.jpg

下面的存储节点可以是有很多硬盘的PC Server,每个PC Server的盘用iSCSI技术输送到所有计算节点,然后用这些盘创建ASM的DiskGroup。
以后随着数据空间规模的扩大,只要再接入更多的PC Server,就可以扩展空间了,扩容也很方便。
不过,很多时候,这张图被画成这样:

100846pp9pobfogxz3p3r3.jpg

看这张图,还是集中式的架构。一套ASM,集中存放所有数据。其实数据是分布式的。假设在ASM中建一个表,在AU大小1M的情况,这个表的数据会以1M为单位,分布到所有磁盘中。如下图:

100847zvll89uup219hg9c.jpg

假设在节点1,发起一条命令,对这个表进行全扫描并排序。我们知道,在RAC下,并行操作是会被传播到其他节点的。如上图,也就是说,上图的每个计算节点会一起完成扫描、排序。
在协调节点的控制下,全扫描、排序将按如下图方式完成:

1008475pzc832nfyo5dlii.jpg

节点1从存储节点1、2中读取第1、2M。同时节点2从存储点3中读第3M,等等。每个计算节点会同时从多个存储节点一起读数据。
多个计算节点,每个都在对一部分数据作操作。每个存储节点,都在为不同计算节点输送数据。简单点说,就像这张图:

100848662uuuua26piunl0.jpg

数据分散存储在多台PC Server中,这不就是一套分布式的系统吗!但同时,它又是一套集中式的数据库系统。
试想一下,如果下面的存储节点使用了SSD技术,网络使用和光纤有一比的InfiniBand,这套系统可以提供超大的IOPS,和超高IO吞吐量。
并不一定只有GreenPlum、Hadoop等才是大数据,ASM、RAC也可以实现分布化、大数据。而且,由于对外这还是一个统一的、集中的数据库,这样的方案还有纯分布式不能提供的好处。
还有一个问题:RAC节点数太多的影响。其实RAC节点多少,对整体性能影响不大。节点太多,主要影响稳定性。但Oracle一直在改善多节点的稳定性,相信未来多节点不会是RAC稳定性的瓶颈。
arron刘:
能不能谈谈您在工作中遇见印象比较深的的难题,您是怎么解决的?谈谈您在工作中解决问题的思路?

VAGE:
留给我印象最深刻的难题,说来很搞笑,其实是一个简单的问题。每次提到这个"难题",总让我联想起一个小故事。
说是一家医院,有一段时间总是在凌厚5、6点钟有人病人死亡。经过多方调查,多位专家、牛医汇诊,始终无法找出原因,最后院方重金聘请国内外数位专家学者,组成调查团,入驻医院调查病人死亡原因。最后结果,大大出人意料。
又一天凌晨5点左右,专家已经在病房中开始忙碌起来,检查这个、检查哪个等等的情况,一切都在有条不絮的进行着。这时只见门一开,打扫卫生的阿姨推门进 来,开始打扫卫生。阿姨拔掉电源上的插头,收拾一下零乱的线头,开始拖地、扫地、......。众人过去一看,被拔掉的,赫然有呼吸器的插头。问题终于找到了。

好了,说说我这个案例。这是阿里非常重要的一套核心库,从某天开始,总在11:20分连接数爆涨,偶而有超过processes参数的趋势,不得不手动 Kill掉一些相对不太重要的连接,避免连接数超出。通常两、三分钟后正常。经过调查,发现在11:20分,数据库的各项性能指标(如逻辑读、物理读、解 析次数、执行次数等)先降后升,如下图:

1008488311jq6z8vei54eb.jpg

这张图上三项资料的值,执行次数、调用次数、解析次数,在11:19分50秒左右,突然下降,然后在不到一分钟的时间中,又大幅上升。然后,又不到一分钟时间,一切都恢复正常。
黄线是执行次数,在大幅上升的顶点,执行次数有可能超过每秒2.4万次。正是在这个峰值时刻,连接数也达到顶峰。
看到这个图,我当时的判断是,在下降阶段,一定是有什么锁之类的东西,将大家都阻塞了,因此执行次数、逻辑读都大幅下降。之后,"某种锁"释放了,被阻塞的进程一齐要求执行,结果各项性能指标突升。
就好像将河水拦起来,下游没水了,突然将水放开,下游顿时巨浪滔天。然后,蓄的水流完,一切恢复正常。
如何确定问题呢?很简单,既然是某种锁阻塞了大家,只在看等待事件即可。
由于这是9i的库,查不了历史等待事件,只有等第二天再说了。
第二天到了,11:20,情况出现,各项资料先降后升,连接数猛然冲高,然后恢复正常。整个过程,我一直在不停的查看等待事件。但是,什么都没有查到。没有发现所谓的"某种锁"。
哪底是什么问题呢?经过多方调查,DBA、开发、架构、......,各种人员会诊下,问题依旧不明。
第三天11:20分,大家正聚在一起会诊情况,一名开发悠悠的打开电脑、登录VPN、连接应用,开始从一批MySQL集群中拖数据到DW,问题终于找到了,......。
呵呵,当然最后这段有"戏说"的成份,事实情况是,经过分析,根据Oracle没有等待事件判断,性能资料的下降不是由Oracle自身造成的。既然不是 Oracle自身的问题,最大的怀疑对象是网络。经过几天的调查,发现同一机房、同一交换机还连接了一批MySQL。本来MySQL中的数据分阶段向DW 中同步,但可能开发考虑这样一天同步几次太麻烦了,将同步时间改成了每天同步一次,具体时是中午11:20。

这个案例,我想说明的是,当需要网络、MySQL等其他部分同事配合调查问题时,一定要足够的知识、数据,告诉其他部门的同事、领导,"问题不是Oracle",才能获得帮助。
当你向领导汇报说:"问题不是Oracle"。
领导一定会问:"为什么?"。
你回答:"因为没有等待事件。"
这时候,十有八九的领导都会再问:"为什么?"
后面就是发挥的时候了,用简短的语言,解释清楚为什么没有等待事件就说明问题不是Oracle。交流、沟通,永远是我们DBA必不可少的技能。但交流、沟通,并不是全部,还要有过硬的技术作基础。

还有一个案例,有一个RAC,版本是10G的,有一个节点有一段时间经常因为ORA-07445重启,找不到原因。打开当机节点的Trace文件,发现有如下的调用堆栈:
----- Call Stack Trace -----
calling              call     entry                argument values in hex      
location             type     point                (? means dubious value)     
-------------------- -------- -------------------- ----------------------------
skdstdst()+64        call     kgdsdst()            000000032 ? 000000004 ?
ksedst1()+432        call     skdstdst()           00000001E ?
ksedst()+128         call     ksedst1()            C00000123065F668 ?
dbkedDefDump()+1456  call     ksedst()             9FFFFFFFFFFFB710 ?
ksedmp()+80          call     dbkedDefDump()       000000003 ?
ssexhd()+2672        call     ksedmp()             9FFFFFFFFFFFC640 ?
<kernel>             call     ssexhd()             9FFFFFFFFD54CB68 ?
skgxpdmpmem()+52481  call     <kernel>             9FFFFFFFFD54CB68 ?
skgxpgetimd()+51808  call     skgxpdmpmem()+48656  C0000017212BC1B9 ?
skgxppost()+27808    call     skgxpgetimd()+51104  6000000000043FA0 ?
skgxpvsnd()+11696    call     skgxppost()+23936    9FFFFFFFFFFFD340 ?
skgxpwait()+512      call     skgxpvsnd()+7104     9FFFFFFFFFFFECB0 ?
ksxpwait()+2928      call     skgxpwait()          000000032 ? 000000004 ?
$cold_ksliwat()+203  call     ksxpwait()           00000001E ?
kslwaitctx()+240     call     $cold_ksliwat()      C00000123065F668 ?
kslwait()+192        call     kslwaitctx()         9FFFFFFFFFFFB710 ?  000000003 ?
ksxprcvimd()+1120    call     kslwait()            000000003 ?
........................
正好哪段时间我一直在研究Oracle的等待事件机制。Kslwait、skgxpwai等等这些函数正是Oracle产生等待事件的函数。Trace文 件是Lms进程的,看问题是lms产生了某个等待事件,在登记等待事件后出的问题。如果能知道lms当时产生的等待事件是什么,问题应该就有了方向。
但是查看了相关的Trace文件,找不到当时的等待事件。最后的方法很简单,使用oradebug中的call命令,调节ksxpwait函数,参数是 000000032,000000004等。然后查询oradebug的会话在等待什么,发现它在等一个不常见的I/O类等待事件(具体事件名记不太清楚 了)。由此判断,是I/O导致的问题。最终发现是存储多路径软件版本的问题。

综合这两个案例,解决Oracle问题,无外乎也就技术、沟通这两点而已。


arron刘:
现在数据库技术更新换代的速度越来越快了,您觉得从业者该怎么选择自己的学习方向?比如说应该学习什么数据库之类的问题。

VAGE:
我觉得这个要看个人爱好了,有兴趣研究源码的,我觉得去研究一下MySQL、PostGreSQL等等,是个不错的选择。如果对代码不感兴趣,那就选择Oracle好了。
当然,还有Hadoop类的NoSQL类方面,也是值得考虑的。如果年龄还不算大、还有时间的话,可以都接触下,看一下兴趣点在哪里。毕竟,学习是很苦的事情,如果不能发掘点兴趣出来,是很难坚持的。
另外,虽然现在是个一专多能的时代,但在选择方式时最好还是要有所选择。有些专业,加在一起可以起到双剑合璧的效果,威力翻倍。但有些专业,多会一样,可 能只代表工作量会翻倍。比如开发和美工。美工设计出的界面有可能脱离程序,开发设计出的界面有可能脱离用户。开发+美工,等于界面设计师。好的界面要由界 面设计师设计。界面设计师编码能力一般,美工能力也不要求多高。界面设计师如果单纯从事开发的工作,或美工的工作,收入都比较低。但将开发、美工二者结合 后,收入将会提高很多。选择方向的时候,其实不仿考虑一下,哪个方向和自己现在的工作结合度更高。哪个方向可以和自己现在的专业"双剑合璧"。


arron刘:
您作为行业的老人,不知道有没有遇见过学习瓶颈的问题?您面对这种问题是怎么解决的呢?有没有什么好的方法分享一下。

VAGE:
学习瓶颈啊,我已经遇到过好几次了。第一次瓶颈是在学习编程7年之后,大概是2003年。我个人比较偏爱C语言,公司有些项目是SDK开发的,使用的是C语言。但更多项目是使用的5花八门的语言。
就像现在很多人苦恼一样,公司里用Oracle,就学Oracle。业务上有MySQL,就再学MySQL,还有SQL Server等等,结果会了一大堆数据库。
我当时是事业单位的临时工,为了不被辞掉,我甘当一颗革命的螺丝钉,哪里需要哪里拧。为了单位需要,我学习了C++、Visual FoxPro、Java、VBScript、JavaScript,还有Oracle的Form/Report。更离谱的还有Flash中的脚本编程。
这样广泛涉猎多年之后,我发现很多专一的人已经比我牛B太多,牛B的我连想去超越的勇气都没有了。我觉得编程上自己很难再有成果,很难再前进。决定换个方向,这个新的方向就是Oracle了。正好单位也需要Oracle方面的人,我又一次充当了革命的螺丝钉。不过,痛定思痛,这一次我决定专一点,只搞 Oracle。
这样又过了8年,在我到阿里后第二年,当时觉得Oracle真没什么可学的了。雾里看花的研究内部原理,如同隔靴搔痒,很多地方总感觉没办法研究透。只能在网上搜各程各样的文章,讨论起原理总是说谁谁的文章中提到过,某篇内部资料说了,这个地方应该怎么怎么样。感觉DBA有点像考据学家了,整天查这个资料、翻哪个资料,一开口就是,史记第几章提到什么什么,汉书第部分讲了什么什么,因此怎样怎样。
关键是这样的研究,由于无法了解透某些技术的原理,在真出问题的时候,意义不大。所以当时我非常同意一个观点:内部原理的研究,应当适可而止,再深入下去只是满足好奇心,对于调优排故帮助不大。
我觉得是时候"适可而止"了。这是我第二次遇到瓶颈。
当是也迷茫了好久,本来计划另选新的方向,比如MySQL、Hadoop等等。但偶然的机制发现Dtrace后,用这东西研究原理,发现很多原来无法搞清楚的东西,可以搞的比较透了。再后来又结合gdb/mdb,可以将内部机制了解的更加清楚。
一旦可以通透的了解机制,对于DBA帮助还是非常巨大的。最明显的一个好处,一些等待事件、v$sysstat中的资料,其根本意义将更加清楚的展现在你眼前。
举个简单例子,Oracle有两个简单的网络相关等待事件,"SQL*Net message to client"和"SQL*Net more data to client",一个是Message to Client,一个是More data to client。这二者有什么区别?
我们都知道Oracle有一个"预读取",或叫"批量读"的功能,在SQL*Plus中可以用set arraysize 设置批量读的批大小。在SQLPLUS中默认值是15,也就是一次逻辑读默认读15行。
逻辑读的数据是发何发送给客户端的呢?这些数据要先被读取出来,暂时存入PGA的一块名叫Session Data Unit(简称SDU)的空间,再从SDU中通过网络发送给客户端。
SDU默认大小是8K,如果一次逻辑读读出的数据小于SDU大小,等待事件是"SQL*Net message to client"。如果一次逻辑读的数据大于SDU,数据将被分多次发送,这时将会有等待事件"SQL*Net more data to client"。具体来说,比如一次逻辑读的数据共10K,而SDU是8K,这将会产生一次"SQL*Net more data to client",一次"SQL*Net message to client"。
关键问题是,数据已经占满SDU,这时加在数据块对应Buffer上的Buffer Pin锁不会释放,因为一次逻辑读还没有完成。数据通过网络发送,同时进程注册等待事件"SQL*Net more data to client"。发送完数据,继续逻辑读。直到这个块Buffer中的数据被读完、或者达到一个批大小,Buffer Pin锁才释放。
也就是说,Buffer Pin锁的持有,在有等待事件"SQL*Net more data to client"时,包含了网络的传输。这将导致Buffer Pin锁持有时间加长,有可能触发Buffer Busy Waits相关等待
简单点说,批量读批大小超过SDU,将会有"SQL*Net more data to client"。没超过是"SQL*Net message to client"。而有"SQL*Net more data to client",则说明进程将在块Buffer上持有更长时间的Buffer Pin锁。
SDU的大小,虽然默认是8K,但它是可调的。关于它,在文档"Net Services Reference",第5章中,和文档"Net Services Administrator's Guide"第7章中,都有介绍。我将"Net Services Administrator's Guide"第7章中的粘下来,这一段还比较详细:

Session Data Unit (SDU) Size
Before sending data across the network, Oracle Net buffers and encapsulates data into the session data unit (SDU). Oracle Net sends the data stored in this buffer when the buffer is full, flushed, or when database server tries to read data. When large amounts of data are being transmitted or when the message size is consistent, adjusting the size of the SDU buffers can improve performance, network utilization, or memory consumption. You can deploy SDU at the client, the application Web server, and the database server.


说实话,这段英文看的我莫明其妙。很早之前我看这段话的时候,完全无法理解SDU的真正影响与作用。
SDU到底控制着什么,调节它的大小可以影响性能,影响什么性能?影响有多大?......,有N多的问题,文档中都没有提到。
没有提的原因无外乎有两个:一是信息垄断。只有内部人士可以掌握更多的信息,现代社会,信息就是金钱啊,相信Oracle有理由这么做的。
不过,这个调节参数是在sqlnet.ora等监听配置文件中调的,如果真是为了限藏它,干脆在文档中不提多好。
如果文档不提,用户用show parameter或查隐藏参数的视图,又找不有这么个东西。这样多好,除了内部人,其他人断无可能知道有这么个东西。
文档即然提了,又没讲清楚,我想还有另一个原因,就是写的文档的人也不知道这东西是干吗的,从以前版本的文档中直接照抄过来完事。

我原来在网上也了解过这个参数。一些个老外也有提到过这个东西,但都没有说清楚。
说白了SDU很简单,加大SDU大小,可以将"SQL*Net more data to client"等待事件变成"SQL*Net message to client"事件,减少Buffer Pin锁的持有时间,节省CPU
使用gdb/mdb和Dtrace,非常简单就可以将SDU的意义发觉出来。我就是在一次调试Oracle时,发现进程运行代码中,一会注册 "SQL*Net more data to client"等待事件,一会注册"SQL*Net message to client"等待事件。进一步分析,发现读取数据量超过8K时,就会有"SQL*Net more data to client"等待事件。然后在文档中查了一下,SDU的默认值是8K,修改了这个值,果然可以去掉"SQL*Net more data to client"等待事件。因此发现SDU的作用,过程也很简单。
有时间再和大家详细分享这个结果吧。继续讨论"瓶颈"的问题。我的第二次瓶颈,就是在发现调试工具可以用于Oracle后打破的。软件调试+Oracle,这是我给自己设定的一个新方向。
软件调试也是一个大方向,需要了解很多东西。比如,操作系统原理,这是必不可少的。《深入理解Linux内核》,《深入理解Solaris内核》,这些书是要大概翻翻看的。
就像现在流行的量子物理一样,人类的一憋,确定了量子的位置。作为观测者的人娄,对被观测对象亚原子,是有影响的。计算机也一样,调试也会影响到调试对象。但影响到底在哪里,这些只有在对操作系统原理有基本的了解后,才能明白。
Linux下还有一个调试利器:Ptrace,Gdb就是用这东东实现的。还有CPU的一些相关知识,这些都要去学。
学好调试这块,真的要进入底层了。
不过,这样的学习收获是很大的。对计算机底层有基本的了解,这是每个IT技术人员的基本要求。如果我们对CPU、内存等等的了解,只停留在频率、型号上, 这样的话我们和电脑城买电脑的也差不多了。但人家是销售,我们好歹也是技术人员。你说一技术人员对内部的了解和销售差不多,有点说不过去吧。而且,基础知识不足的话,也很容易有一些让开发笑话的观点。
曾有人不太理解一种CPU负载的计算方式:逻辑读块数乘以块大小。
逻辑读的确是消耗CPU的操作,但一个复杂的数据库可不只逻辑读消耗CPU。而且,一个逻辑读可不一定都是读8K,有可能只是从8K中只读几十个字节。逻辑读块数乘8K,这样的统计方式的确有点莫明其妙了。如果对计算机底层基础知识有些了解的话,对于这样的错误结论是很容易理解的。
调试+Oracle估计够我再学个一、两年的了,哪天瓶颈再到了,我计划自己写写数据库玩玩,最近看了老虎的帖子:用数据库的称为大师,写数据库的笑了......^_^,心痒难耐,等我的书稿完成后,下半年我也响应虎皇号召,去搞搞这块。

Oracle群英录 - 2013上海OOW名人录

以下是出席2013上海Oracle Open World(甲骨文全球技术大会)的官方重要人名名单及履历,在这次大会上马克赫德因飞机故障最终未能出席。

马克·赫德
甲骨文公司总裁
马克·赫德先生目前担任甲骨文公司总裁及董事会成员。他于2010年加入甲骨文,拥有超过30年与领先技术行业、计算机硬件以及执行管理相关的丰富经验。作为总裁,赫德负责甲骨文公司全球市场运营的企业发展方向和战略,包括市场、销售、咨询、联盟与渠道以及支持。他主要关注战略、管理、创新和客户。赫德先生说:"作为一个企业,我们的任务就是帮助客户节省成本并进行创新。"

在加入甲骨文之前,赫德先生曾担任惠普公司的董事会主席、首席执行官以及总裁,负责客户、创新、提高运营效率及执行管理,在其领导下,公司业务取得显著增长。在此之前,他在NCR公司工作了25年,并在该公司担任过包括管理、运营、销售、市场等多项职位,最终成为该公司的首席执行官和总裁,成功带领该公司提升运营效率、增强产品线并促进业务增长。

赫德被《福布斯》(Forbes)评为2009年"最佳管理者"之一。2007年,赫德入选《财富》杂志25位年度最有影响力的商业人士。他也曾多次入选《Business 2.0杂志》的50位最重要人物(Who Matter Now)以及《巴伦周刊》的最佳CEO名单。《旧金山纪事报》将其评为2008年年度CEO。他曾3年入选CRN的25位最有影响力的管理人员名单,两次成功入选最佳25强管理人员。

John Fowler
甲骨文公司系统事业部执行副总裁
John Fowler现任甲骨文公司系统事业部执行副总裁,在公司战略、系统以及软件开发方面拥有深厚的从业经验。

John Fowler于2010年加入甲骨文,此前,Fowler先生已供职Sun公司超过14年,并相继担任过一些重要职务,包括Sun系统集团执行副总裁、Sun软件事业部首席技术官、以及Sun x64系统集团执行副总裁等,主要负责为Solaris、Linux和Windows开发行业标准的网络计算系统。

在甲骨文,John Fowler继续负责所有Sun系统产品的开发工作,包括SPARC和基于x64的服务器,以及网络和磁盘与磁带存储产品等。此外,他还负责系统软件工作,包括Oracle Solaris等。

Steve Miranda
甲骨文公司应用产品开发执行副总裁
作为甲骨文公司应用产品开发执行副总裁,Steve Miranda负责全面领导Oracle应用产品和相关云服务的产品政策、产品发展和产品交付。这些产品包括Oracle Fusion Applications和Oracle针对顾客服务与支持、商业和人才管理所设计的最新产品。

Miranda先生于1992年加入Oracle,担任过多项领导职务。2007年,他曾经出任Oracle新一代软件应用套件和Oracle Fusion Applications 的主要负责人。在Miranda先生的领导下,Oracle不断履行着帮助应用软件客户赢得创新、保持竞争力的承诺,并且利用Oracle新产品与服务帮助客户优化其IT投资的价值。在加入Oracle之前,Miranda先生曾就职于GE Aerospace。他拥有斯坦福大学的数学和计算科学学位。

Andrew Mendelsohn
甲骨文公司数据库技术产品高级副总裁
Andrew Mendelsohn现任甲骨文公司数据库技术产品高级副总裁,主要负责开发和管理甲骨文的各类数据库产品,包括软件类产品中的Oracle数据库、Oracle TimesTen 内存数据库、Oracle Berkeley数据库、 Oracle NoSQL 数据库,以及 Oracle Exadata 数据库云服务器、 Oracle数据库机和Oracle大数据机等集成设计系统。

Mendelsohn先生于1984年5月加入甲骨文,曾担任过甲骨文数据库5.1版本的开发者 。在加入甲骨文之前,他曾在惠普和ESVEL公司供职。Mendelsohn先生拥有普林斯顿大学电子工程和计算机科学的工程学理学位,并在麻省理工学院完成计算机科学的研究生学习。

David Vap
甲骨文公司应用开发集团副总裁
David Vap目前担任甲骨文公司应用开发集团副总裁,负责基于云的甲骨文用户服务产品系列的战略及管理,并协同包括销售、服务、市场营销及商业应用在内的整个甲骨文用户体验产品线的战略。

作为拥有20年经验的科技领域资深从业者,Vap先生在2012年因RightNow公司的收购而加入甲骨文。在RightNow时,他担任产品副总裁,负责产品战略、产品管理及市场营销。

加入RightNow之前,Vap先生担任Software AG的销售及市场营销副总裁。任职期间,他定义并推广了领先的商务流程SOA套件Software AG Crossvision,同时主导其销售工作。他还曾担任内容管理厂商Artesia Technologies产品副总裁,负责产品管理、开发及质量控制。在加入Artesia前,他成立了一家专注于基于CASE工具环境的包装解决方案的专业服务公司并成功将其出售。他在华盛顿的PwC开始他的职业生涯。

Nandini Ramani
甲骨文公司Java客户开发副总裁
Nandini Ramani是甲骨文公司Java客户开发副总裁。她负责Java客户平台业务,长久以来为Sun公司的创新和未来发展做出了很大贡献。

Nandini发起了JavaFX平台及工具的开发,自2007年5月JavaFX平台的开发启动以来,一直积极参与其中。加入客户机部门之前,Ramani女士在"软件首席技术官办公室"工作,负责推动实施孵化项目的新技术部门的工作。她在硬件和软件领域都拥有丰富经验,一直参与"图形加速(Accelerated Graphics)"部门的硬件架构和仿真团队以及JavaME部门的图形和媒体团队的工作。她参加了XML标准的开发,是W3C"可缩放矢量图形(Scalable Vector Graphics)"工作组的联合主席,也是W3C"复合文件格式(Compound Document Formats)"工作组的成员。她还是JCP的几个图形及UI相关专家组的成员。

Peter Utzschneider
甲骨文公司Java产品管理副总裁
Peter Utzschneider现任甲骨文公司产品管理副总裁。Utzschneider先生现在负责Java产品的市场策略,包括Java SE、JavaFX、Java ME 以及Java 嵌入式产品等,以持续推动Java产品的商业成功、Java社区的振兴以及甲骨文公司对Java语言和技术的持续承诺。

Utzschneider先生曾在欧洲和美国工作超过20年。通过将早期的市场需求转换为广泛的市场部署能力,他在市场营销和销售行业领先软件解决方案方面取得了很大的成功。在加入Oracle之前,Utzschneider先生曾担任Tangosol公司市场副总裁。加入Oracle之后,他进一步推动Cohenrence产品的发展,使其成为业界领先的数据网格解决方案,并成为Oracle融合中间件的一个重要组成部分。

Cameron Purdy
甲骨文公司云应用基础副总裁
Cameron Purdy现任甲骨文公司开发副总裁,主要负责Java EE平台、Web服务器和应用服务器等产品的研发工作。

在加入甲骨文之前,Purdy先生曾担任数据网格软件公司Tangosol的首席执行官,该公司具有创新性的Coherence数据网格(Coherence Data Grid)产品, 可为企业提供可靠的和可扩展的数据管理。自1996年起,Purdy先生开始从事Java和Java相关技术的工作,他还是JCP(Java Community Process)组织的规范领导者。

作为一位软件专家和行业领袖,Purdy先生经常在行业大会中发表演讲,并因其对Java社区发展的特殊贡献而多次获得嘉奖,其中包括三次被授予"JavaOne RockStar"奖并入选TheServerSide的"企业Java名人堂(Who's Who in Enterprise Java)"。

Amit Zavery
甲骨文公司融合中间件集团副总裁
Amit Zavery先生是甲骨文公司融合中间件集团副总裁,目前负责融合中间件产品的产品策略、发展线路图、产品定位以及上市推广计划,包括云应用基础、服务整合、业务流程管理、数据整合、商务智能、内容管理、企业门户、身份认证与访问管理以及开发工具等。

自从1995年加入甲骨文公司以来,Zavery先生曾在产品开发、产品管理、产品战略和咨询等领域担任要职。在负责Oracle应用服务器之前,他主要负责Oracle电子商务应用软件的产品开发和管理,包括Oracle iStore, iPayment, 以及iMarketing。Zavery先生还负责在印度创建了甲骨文CRM研发中心。

Zavery先生最早在甲骨文视频服务器产品团队担任解决方案架构师。随后,他在甲骨文咨询部门工作,负责实施大量的互动电视应用以及随着Web的普及为客户创建互联网应用。他还曾服务于Oracle数据库集团,负责规划和定义Oracle 9i数据库。Zavery先生拥有奥斯汀得克萨斯大学的电气和计算机工程理科学士学位,同时还持有美国的卡内基梅隆大学计算机科学和商业硕士学位。

Neil de Crescenzo
甲骨文公司健康科学事业部高级副总裁兼总经理
Neil de Crescenzo现任甲骨文公司健康科学高级副总裁兼总经理,负责甲骨文全球范围内的健康和生命科学市场业务,全面管理该行业解决方案团队、战略规划、产品开发、销售及服务支持。Neil de Crescenzo在健康和生命科学领域拥有超过25年的丰富经验及全球客户和合作伙伴资源,他在工作中充分展示了杰出运营能力及IT领导力。

加入甲骨文前,Neil de Crescenzo曾作为高层领导在IBM效力十年,负责该公司在全球的健康和生命科学客户管理。深耕IT行业之前,他曾在医药中心和健康保险公司领导层任职。Neil de Crescenzo多次以主题演讲者的身份出席众多全球性的行业大会,并在相关领域话题上广受推崇。Neil de Crescenzo毕业于耶鲁大学拥有政治学学士学位,并随后在美国东北大学取得高科技工商管理学硕士学位。

Chris Baker
甲骨文公司全球ISV/OEM/JAVA销售高级副总裁
Chris Baker任甲骨文公司全球ISV/OEM/JAVA销售部门主管,负责与ISV/OEM伙伴合作,同时最大化甲骨文的业务价值,进一步为合作伙伴的终端用户提供优质服务。在担任此职务前,Chris是Oracle EMEA管理组的成员之一,并担任甲骨文公司高级副总裁,负责核心技术业务。

Chris于1997年1月加入Oracle,曾担任一系列高级管理职务,包括负责英国、爱尔兰及以色列地区的技术许可业务高级副总裁,英国、爱尔兰及南非地区的咨询副总裁兼部门主管,以及英国、爱尔兰和南非地区的应用与技术产品副总裁。此外,他还担任过Oracle支持部门的英国区总监。

在加入Oracle之前,Baker曾在Digital Equipment工作13年,曾担任英国区销售总监,负责公司的外包业务。Baker是一名资深的土木工程师,获有邓迪大学的土木工程学士学位,并在IT领域拥有超过25年的丰富经验。

Lyle Ekdahl
甲骨文公司集团副总裁兼JD Edwards总经理
Ekdahl 先生自2009年开始担任甲骨文公司集团副总裁兼JD Edwards产品总经理,包括JD Edwards EnterpriseOne及JD Edwards World系列。此前,在2005年至2009年,他曾任JD Edwards全产品线的产品策略及管理副总裁。

Ekadah先生于2003年加入JD Edwards EnterpriseOne团队。在此之前,他先后于Siebel Systems、Scopus Technology、Platinum Software和Channelpoint等公司担任高层管理职务。同时,Ekdahl先生在一系列国际高科技企业拥有超过20年的从业经历,对产品研发、管理、市场营销、分析及运营等领域均有丰富的经验。

Robert  K. Weiler
甲骨文公司全球行业事业部执行副总裁
Robert K. Weiler现任甲骨文公司全球行业事业部执行副总裁。此前,他曾在临床试验与医药安全领域数据管理解决方案领先供应商Phase Forward担任董事长和首席执行官。Weiler先生在科技领域拥有30余年的领导经验,比如曾在Giga Information Group过担任董事长、总裁和首席执行官。在他的事业生涯早期,Weiler先生曾在Eastman Software(原名Wang Software)公司担任过总裁和首席执行官,也曾在Lotus Development Corporation担任过全球市场销售高级副总裁,对公司Lotus Notes的业务拓展发挥了至关重要的作用。

Weiler先生目前是SADD(青少年毒品及犯罪防治组织)董事会成员之一,也曾是Waterville Valley Company、Saint Anselm's College、Corporate Software、Distributed Management Systems、Cullinet Software Interleaf、DataLogix和Giga Information Group的董事会成员。Weiler先生拥有Saint Anselm's College的学士学位,并于2000年获得荣誉博士称号。他曾荣获美国新英格兰区2010年度安永医疗IT领域企业家荣誉称号;2006年,他名列PharmaVOICE 100强;Weiler先生也因其在商业及科技领域优秀的领导才能获得麻州科技领导协会的认可,荣获2006年度首席执行官的奖项。

Barry Clark
甲骨文公司集团副总裁兼全球零售事业部销售负责人
Barry Clark拥有30年的销售和综合管理经验, 于2011年3月甲骨文收购ATG时加入甲骨文。Barry Clark先生于2011年3月至2013年6月期间出任甲骨文集团副总裁,负责公司全球商业销售业务。在加入甲骨文之前,Barry Clark先生曾在Schoolkidz Inc., Domino Printing Sciences, AM Multigraphics 和 Digital Equipment等公司担任多项重要的销售以及管理工作。

Chet Kamat
甲骨文金融服务软件有限公司首席执行官兼董事总经理
Chet Kamat现担任甲骨文金融服务软件有限公司首席执行官兼董事总经理。该公司是一家甲骨文控股子公司和甲骨文金融服务全球事业部的重要组成部分。凭借着25年多深厚的金融服务、咨询和业务转型经验,Chet Kamat在Oracle金融服务软件领域发挥了重要作用。
 
在加入甲骨文之前,Chet Kamat是一家领先的私人股权投资公司STG的董事总经理,该公司主营投资软件和企业服务公司。在STG,其负责投资组合公司的转型和运作,并特别关注这些公司在全球经营模式上的运用。

在这之前,Chet曾在埃森哲及一家零售金融创业公司担任CEO。其1986年加入埃森哲,曾在印度、美国、瑞典、匈牙利和菲律宾等多国,从事广泛业务咨询和大范围的系统整合工作。离开埃森哲前,Chet掌管埃森哲印度交付中心网络的合作伙伴,负责从无到有,建立并发展到拥有13000多个员工,服务于200多个全球客户的事业部。

Gregory Midtbo
甲骨文公司全球金融服务事业部行业副总裁兼全球负责人
作为甲骨文公司金融服务事业部全球负责人,Gregory Midtbo先生带领着一支行业专家团队,管理着甲骨文在全球金融服务行业领域的Go-to-market活动。

此前,Gregory Midtbo先生曾在甲骨文公司负责过纽约地区管理应用软件的销售以及亚太区域金融行业应用软件的销售。1995年加入甲骨文前,Gregory Midtbo先生曾在Treasury Services Corporation担任亚太区运营负责人,也曾在NCR和AT&T担任过多项销售和管理工作。他28年的工作经验无论是与市场信息技术还是金融服务产业都密切相关。Gregory Midtbo先生毕业于美国明尼苏达大学(University of Minnesota)并荣获金融本科学位。

Sonny Singh
甲骨文公司金融服务事业部高级副总裁兼总经理
Sonny Singh先生现在担任甲骨文金融服务行业事业部高级副总裁兼总经理,管理着甲骨文银行、保险及资本市场等行业相关产品的销售、咨询、工程以及支持等领域。

在甲骨文工作23年期间,Sonny Singh先生在公司及业务的创新执行方面以及新市场策略方面展示了其卓越领导力,不断推动着甲骨文硬件、软件和服务产品线在业界的影响力。

此前,Sonny Singh先生担任甲骨文行业事业部高级副总裁,负责甲骨文的上市策略,比如跨越甲骨文整个产品线和服务线的产品市场推广,竞争分析,市场培训,销售推动以及收购整合。此外,Sonny Singh先生负责提升甲骨文策略性客户的关系维护能力,比如针对所有行业的解决方案和专业技能计划,不断提升甲骨文品牌价值引擎竞争力的甲骨文洞察力计划以及甲骨文解决方案中心。在领导甲骨文行业事业部之前,Sonny Singh先生担任甲骨文咨询事业部的集团副总裁,领导着针对北美策略客户的甲骨文服务领域。

邹晓兵
甲骨文公司融合中间件产品管理副总裁
邹晓兵先生目前在甲骨文公司主要负责甲骨文市场领导融合中间件产品的上市策略,特别是合作伙伴计划以及跨平台解决方案。邹晓兵同时也负责基于整个Oracle融合中间件堆栈创建解决方案和策划上市方案,比如针对融合应用的甲骨文中间件。

邹晓兵先生因甲骨文收购身份管理软件领导者Bridgestream公司而加入甲骨文公司。他在Bridgestream公司负责市场、产品管理以及策略合作伙伴。在加入Bridgestream公司之前,邹晓兵先生曾担任TIBCO软件公司商业整合部总经理。他同时拥有南加州大学电机工程学硕士学位以及加州大学洛杉矶分校安德森商学院MBA学位。

Mark C. Lewis
甲骨文公司亚太区联盟与渠道部高级副总裁
Mark Lewis现任甲骨文公司亚太区联盟与渠道部高级副总裁,也是公司亚太区管理团队的成员之一。

Lewis先生常驻新加坡,主要负责制定和推动所有Oracle产品的渠道销售、市场和合作伙伴发展战略。其中包括与战略合作伙伴联盟、分销商以及平台合作伙伴发展成功的长期合作关系,并将所有渠道整合入亚太合作伙伴的生态系统之中。
在甲骨文工作的十年时间里,Lewis先生担任过销售、市场和企业并购等多项高层职务。在出任现职务之前,他负责甲骨文公司亚太区的运营工作,包括销售、市场发展、活动推广和企业内部沟通。Lewis先生于2001年加入甲骨文,此前他曾在Arthur Andersen和IBM供职,担任过泛亚地区销售、市场和咨询方面的职务。
Lewis先生拥有悉尼科技大学的数学学士学位,以及麦考瑞大学研究生管理学院的工商管理学硕士学位。他也拥有商业和市场推广方面广泛的专业背景和会员资格。

潘少海
甲骨文公司高级副总裁及大中华区董事总经理
潘少海于2012年出任甲骨文高级副总裁及大中华区董事总经理一职,负责公司在大中华地区的整体业务,其主要职责包括推动甲骨文在中国的增长计划,加速甲骨文全线产品的市场渗透,提升市场占有率和市场领导力,致力于兑现对大客户及核心合作伙伴的承诺,进一步扩展甲骨文的业务领域。

潘少海从2008年起,出任甲骨文亚太咨询服务(OCS)高级副总裁,全面负责甲骨文在亚太地区的咨询业务,这些业务包括市场进入模式,跨行业、跨地域解决方案组合、市场竞争力建立,为关键客户提供转型服务以兑现甲骨文的承诺。

潘少海在2007上半年加入甲骨文,主要负责提升甲骨文ERP咨询服务能力,加强甲骨文在大中华地区和韩国的ERP服务市场进入。凭借其在地区性咨询管理专业的广度和深度,成功帮助甲骨文建立了策略性的目标,确保了甲骨文对北亚市场潜力的挖掘和掌握。

在加入甲骨文以前,潘少海在惠普公司工作20年,曾担任该公司在亚太地区的多项高层管理角色,包括亚太及日本地区惠普服务公共部门总经理,亚洲和澳大利亚地区惠普咨询总经理,以及大中华区惠普咨询总经理等要职。

喻思成
甲骨文公司副总裁兼大中华区技术总经理
喻思成先生现任甲骨文公司副总裁兼大中华区技术总经理,负责管理售前技术团队。喻思成先生于2008年6月随甲骨文收购BEA而加入甲骨文公司。在BEA期间,曾任职于BEA公司北美研发部门,负责BEA的系统整合产品WebLogic Integration(WLI)的开发。2001年,喻思成先生从BEA美国总部调任中国,负责对BEA中国区售前技术团队的组建和管理,参与了BEA在中国的迅猛发展。

喻思成先生拥有加拿大Lakehead University工程硕士学位,并获得北京大学光华管理学院EMBA学位。1997年始担任美国西雅图FactoryMall 公司的CTO,专攻网上电子商务领域的创新。

潘杰君
甲骨文公司全球副总裁及大中华区应用软件总经理
潘杰君于2010年出任甲骨文全球副总裁及大中华区应用软件总经理一职,负责公司在大中华地区的应用软件的整体业务,其主要职责包括推动甲骨文在中国大陆,香港以及台湾的应用软件的业务增长,加强甲骨文应用软件产品的市场渗透,占有率和市场领导地位, 并为客户带来完整的端到端的业务解决方案。

潘杰君从2007年起加入甲骨文,出任甲骨文亚太咨询服务全球副总裁,负责甲骨文在亚太地区的金融/电信/媒体/电力等的咨询业务,为关键客户提供转型服务, 实施咨询并兑现甲骨文的承诺。潘杰君加入甲骨文前, 也曾担任过仁科PeopleSoft大中国区总经理, JD Edwards北亚区总经理,也曾担任大型咨询公司在亚太地区的多项高层管理角色,并取得优异的业务成绩。

刘松
甲骨文公司大中华区技术战略部总经理
刘松先生现任甲骨文公司大中华区技术战略部总经理,负责甲骨文中国战略性产品方向的规划与执行,新技术与解决方案的推广,并担任公司技术发展趋势的主要发言人;通过众多大型IT项目的实际介入,与国内各个行业信息主管的深入沟通,结合国内客户与合作伙伴的具体情况,他的工作重点是帮助国内企业的信息主管在理解技术趋势的基础上更好的使用IT技术,用于行业应用。作为几个软件行业媒体的专栏作者,他的许多言论被国内的知名IT媒体作为行业技术趋势方面的内容来源之一。

刘松先生在中国IT市场拥有15年的工作经验,在加入甲骨文公司之前分别在IBM、BEA等公司担任多种技术与市场职位。

谢 鹏
甲骨文公司大中华区企业应用咨询总经理
谢鹏先生现任甲骨文大中华区应用产品解决方案咨询总经理,负责大中华区应用产品解决方案的销售支持和业务咨询,包括ERP、SCM、CRM、HCM 和Application Cloud等应用产品和方案。其主要职责是领导顾问团队在理解和洞察客户需求的基础上为客户提供引领创新及业务驱动的信息化解决方案,并帮助其导入业务运营之中。同时他还专注不断地向市场和企业传递沟通新的管理理念和方法,以及甲骨文新的产品方向和策略,致力于建立企业基于IT的核心竞争力并使总体拥有成本最低。

谢鹏先生是甲骨文公司首席应用架构师,擅长信息技术和业务变革的融合创新。在 不同类型的大中小企业都有成功咨询和项目导入的经验,包括国企、民企和跨国企业等。谢鹏先生在企业应用领域有超过20年的工作经验,曾担任凯捷咨询副总裁等高层管理角色。

何伟信
甲骨文公司中国区管理软件--中型企业市场总经理
何伟信现任甲骨文公司中国区管理软件--中型企业市场总经理,负责中国区高增长城市的应用软件业务,包括ERP, HCM, CRM, 专有软件, 商业分析软件以及SaaS云解决方案等的推广和销售, 为不同行业的客户提供完整的端到端的业务解决方案。

在担任此职之前,何伟信曾先后担任甲骨文香港区董事总经理和甲骨文公司华南区董事总经理,负责领导该地区的整体业务,以及掌管策略和管理运营。何伟信在甲骨文香港及大中华区拥有超过20年的丰富管理经验。

加盟甲骨文前,何伟信在IT及互联网公司担任多项要职,汲取了宝贵的销售和合作伙伴管理经验,并取得了卓越的业务佳绩。他曾出任雅虎香港搜索营销总监,并在此前担任BEA系统香港有限公司区域总经理,成功赢得金融服务行业、通讯行业及政府重大项目中的多项中间件解决方案业务。何伟信于1998年至2005年期间在Sun先后担任多个要职。

原文地址:http://www.ituring.com.cn/article/23791

他既是码农,又不是码农,在微博有20万粉丝的他"声音"很大,可他说话的声音很小。冯大辉是数据库方面在国内数一数二的权威专家,可以说他参 透了数据和信息在技术层面的含义。可是如今,技术上的纯熟已经无法满足他的视野,他开始探寻信息真正的意义。前路依然坎坷,希望风景越来越好。

enter image description here

圈子

虽然完全是野路子撞进这个圈子,但是在每个环境中,新天地都不断地打开。

图灵社区:你大学学的是什么专业?

我没有经过高考,保送上的大学。当时其实有点被忽悠了,大家都说21世纪是生物学的世纪。我就在离家比较近的大学保送上了一个生物学的专业,还是本 硕连读那种,10年前读硕士还是挺稀罕的事儿。但是上了学之后,我就知道,这根本不可能是我们这代人的未来,我其实更喜欢理工类的东西。由于我没有经历高 考,所以有时间在高中时读了很多人文类的书,容易胡思乱想,而生物基础课中有太多死记硬背的内容,我当时也没有体会到什么乐趣。于是,大学第一年,基本已 经对整个专业很绝望了。

图灵社区:你是如何开始学习计算机的?

有两类人,一类人就是(有)苹果机或学习机的一代,我就属于(什么机器都)没有一代。我接触计算机其实非常晚,是从大学才开始的。

大学时在图书馆里,看见有个人在拿着本书看,我对那本书很感兴趣,印象很深,但是没有记住书的名字,后来就在我快把这事忘了的时候,有一天我又来到 图书馆,看见有本书放在桌子上,刚巧,就是那本书。我拿起书,读了介绍,内容讲的几乎就是整个计算机发展的背景。这是一本介绍Linux的图书,通过学习 这个操作系统,我对这个行业有了一个最初的认识。后来越了解越多,反而把开发层面的东西都丢掉了。Linux在当时只在小圈子流行,那时候业界流行的技术 是Delphi,PB,"PB程序员,月薪万元",那时候月薪万元是什么概念啊,我每个月的伙食费才2、3百,我要是有那么多钱,不是想吃什么就吃什么了 吗(笑)?

后来在实习的公司里有一些比较厉害的人,在看TCP/IP的书,就是Stevens(W.Richard Stevens)那个系列(TCP/IP 系列,《UNIX网络编程》),以及道格拉斯•科莫(Douglas E. Comer)的TCP/IP 系列的书。我看见他们在看这些书,就偷偷买回家去,自己吭哧吭哧地啃,啃了一大段时间 。早期关于Linux和Unix的经典书,我几乎都有,都是靠伙食费买的。开始都是点的积累,然后才变成面的知识,由点到面,后来当我站在书店里面,逐渐 就知道自己喜欢读什么样的书,而哪些书又不是自己的菜。我和很多朋友聊的时候,发现这也是大家共同的经历。现在的程序员面对的信息量太大了,我那个时候的 问题是找东西找不到。如果我最开始能读到Dennis讲C语言的那本书(《C程序设计语言》)的话,我现在肯定是个C程序员,可是,我是快毕业的时候才读到这本书的,非常遗憾。当时我读完第一章就深深地觉得谭浩强那本书绝对是把人带沟里去了,看完(那本书)之后,你仍然没法知道你写这些东西是为了什么,我看的时候就一直在想,病毒是如何调用底层的呢?完全想不通啊!

我学习的方式都是铺面的,我学Linux和Unix就会把绝大部分书都买回来,学习网络的时候也是这样,但是绝大部分编程书是不能这样看的,把每本书的代码都敲出来是不可能的。

后来有一位师兄,寒假的时候带我去外面实习,这家公司的业务就是承接电信给早期互联网用户的服务,其实很多基础的事背后都有很高的技术含量,在做这 些琐碎的工作的过程中,不可避免要接触到互联网、互联网协议,以及底层的东西,加上之前我对Linux和Unix也已经有了一些了解,所以相当于我在网络 这方面打通了一条线。经过在这家公司的锻炼,我积累了起码能干些活儿的能力。

图灵社区:但是要放弃本来的专业,选择到IT这个圈子里也需要一些决心吧?

我赚的第一笔钱是帮别人做的一个浏览器上用来管理(库存信息)的程序,虽然只有1000块,但那是我认可自己挣的第一笔钱,那是纯粹密集的脑力劳 动,用了10天的时间,在一个网吧里,找了台机器,现学现卖,最后把东西做出来了。我的朋友都震惊了,纷纷表示:靠,搞IT真TM挣钱!从那之后,我决心 以后也要靠这种方式工作,也要通过这个方式赚钱。

我一直觉得自己没写过程序,应该确切地说是没有进入到软件工程的那个环境中去,因为我始终都没有参与规模作战,我做的事都是单兵作战,或是几个人的 小团队。我觉得如果一个人要被称为码农的话就必须要在开发团队中做事情,要把我归纳进来的话,完全是滥竽充数。但是我喜欢这个圈子,也喜欢在这里做事儿。 我关注这个行业,关注码农,关注这里面有趣的人。虽然完全是野路子撞进这个圈子,但是在每个环境中,新天地都不断地打开。

图灵社区:你第一份真正的IT工作是在哪里呢?

当时我所理解的IT就是北京的中关村,我仍然不知道怎样进入到这个领域中来。后来毕业的时候歪打正着就来到了北京的一家公司。我认为这归功于我的简 历。我简历的UI设计绝对是超前的,所以简历投递出去,用人单位很容易就会把我的简历在一大堆里面挑出来,他们也不仔细看,就会给我打电话聊几句,还是拒 绝的居多。通常都会问,"你是本科生?什么专业?""生物技术。""那好吧。"然后就免谈,所以我当时非常伤心(笑)。

后来终于中软要我了。我到了那以后,人家说:"是有(冯大辉)这么个人,但是一直都没联系上,我去问问总经理还要不要。"当 时我就崩溃了,后来多亏总经理大发善心,把我留下了。当时一起去的虽然都是计算机专业的,但是操作系统技术还没有我熟呢。我的工作是做工程,相当于去当地 做项目实施。在中软我虽然只呆了一年,但是收获还是挺大的,中软不少优秀的同事的做事风格对我影响很深。但是更多的学习收获来源于自学,我在这里进一步接 触了Unix、Oracle。我觉得可以把Oracle当作工作一直作下去,所以倾注了很大精力,还考了很多证。当时我们有四五个人,年龄都差不多,也没 什么事,就每个人选一个方向,开始学。公司的计算机很多,(软件)环境也都有,我们经常都会学到晚上11、12点钟。当时没人琢磨加班费什么的,公司有计 算机,夏天还有空调,我们就很开心了。人被局限久了,忽然遇到这样的环境,学习东西的效率是非常高的。现在圈里搞数据库的几个人聊起来,觉得经历都差不 多,刚毕业的几年,每天都是要学到很晚,自己拼命啃。有朋友甚至原来是学日语的,从0开始学,从无到有。最后也成了专家。

后来觉得收入太低,就离开了中软,那时还年轻,的确不怎么懂事。随后我又在北京工作了四年,一直从事Oracle相关的工作。后来我有一个朋友去了 阿里巴巴,过了一年他问我要不要来,我说我刚换了工作,不去了。后来又过了一年,他又问我,要不要来。这次我犹豫了,于是去杭州观察了一下,阿里巴巴不象 当时网上流传的那样(当时有很多负面的信息),是个很有生气的企业,很欣欣向荣的感觉,从环境到人,给我的印象都很好。于是这次下定决心,走吧。

走吧,去阿里!

我要是当时知道这个工作有那么累,我就真不去了。但是一旦干起来,就不能掉链子。

图灵社区:在阿里的工作是怎么样的?

当时给我的工作是维护支付宝的数据库,我对这份工作是很期待的,很多东西都是刚刚做起来。当时支付宝属于急速扩张期,很着急在招人,而整个阿里也没 有几个DBA,这些人每个人手里还都有一摊事。我刚到杭州,还一头雾水的时候,就要马上开始高负荷的工作。后来我女朋友一个月之后到了杭州,她不知道我现 在忙成这个样子,结果直到她来的那天我仍然在加班,后来几天一直处于这个状态,整晚整晚的连续工作,直到早上才回家。后来有一天我早上回到家里,一敲门, 她开门看见我熬了一晚上很疲惫的样子,哇一下就哭了,说:"咱们不干了!"

我从三月到五月份两个月的工作,几乎一直都是这么度过的。当时的支付宝系统要从淘宝独立出来,自己独立建立一个全新的平台,阿里也从各个子公司调了 很多专家进来,要在五月份上线。当时我们手机都是24小时开着,短信一来就要待命。杭州的冬天很冷,接到短信就要半夜爬到电脑前准备处理情况。经常是早上 5点多刚到家里,7点多就被吵醒了,让我8点到公司来。打电话的人现在是一淘的老大,我就说,那我也得睡一会啊。人要是累成那样,还哪管什么上下级啊。但 是撂下电话,想一想,还是去吧 。那几年根本没时间考虑休假这些事,要是休假去了个手机不通的地方,是要出事的。而且当时长假(五一,十一)的时候经常要做大项目迁移。我从来没想过在阿里退休,但我想我有可能在阿里猝死。在支付宝的第一年差点没累死我(笑)。说实话,我要是当时知道这个工作有那么累,我就真不去了。但是一旦干起来,就不能再掉链子。

我最担心的就是数据丢失,系统崩溃,数据无法恢复。里面可都是钱啊,如果搞不定这些,是要给公司带来直接经济损失的,追究起来,我就是责任人。我当 时经常睡不安稳,会惊醒。由于心理压力大,人容易暴躁,身体也处于很糟糕的状态,其实也是一种恶性循环。我觉得我很累,有人比我还累。现在支付宝的首席架 构师程立,当时博士还没毕业就加入了支付宝,我们当时一起和Sun的工程师熬夜工作,经常是我们这边维护完的时候,他还要继续写代码。回头想想,像我这样能力平常的人,怎么还会变成了别人眼中的行业专家呢 (请允许我假装一回吧)? 有些人的确有天赋,我可能靠的就是卖力工作、拼命把所有事情搞清楚、认真地去做。

图灵社区:但是很多年轻人认为私人时间是一定要保证的。

有些人提倡八小时工作制,有些人提倡加班,其实这些在一定的场景下,或者说对某一类人来说都是合理的。新一代的程序员和我们经历的事情不一样,虽然 我很反感那些所谓的"感恩"论调,但是现在的年轻人很多都需要哄着来工作,可能这也是一种一代人看不惯下一代人的心理吧。我们当时崇拜的都是像求伯君、鲍 岳桥、简晶这些人,或者搞开源软件的这些牛人,当时这些人里谁赚的钱最多?没人知道,也没人关心这些不相干的事情。

所以尽管我努力尝试去理解不同时代的IT人,但是很多时候仍然无法完全理解。从我大学毕业到现在,大概有15年时间。这个社会的变化非常快,是一个 大时代。我大学时候,那男女关系是多么纯洁,哪像现在这样礼坏乐崩(笑)。现在很多人的世界观已经被完全颠覆了。人们一方面很向往美好事物,但是另一方面 又要在现实中挣扎,和社会去斗,为了买房而奔波赚钱。

现在学校快变成工厂了,以利益为导向,间接地导致不少学生变得千奇百怪,歪瓜裂枣。在学习方面,一个人没有挨过饿就不会吃得特别撑。

图灵社区:贝塔咖啡也是你在阿里的时候开始的吧?

贝塔咖啡,开的时候就是想给IT人弄个据点,平时大家也没什么地方去,想让大家有个聚一聚的地方。我都没想到后来会有这么多人开咖啡馆,当时看北京 的雕刻时光挺好的,也没想过创业人,投资人什么的,就是单纯想给和我们差不多的人一个可以聊聊的地方。当时开的时候5个人里有4个在阿里,也没有人有精力 全力去做,我们当时就明确:这个东西不会赚钱。挺坑人的其实(笑)。在开咖啡馆的过程中,我也学到了不少,认识了很多人,知道了很多事。也知道传统行业不 是那么好干的。这也是一种全新的体验。人的精力是有限的,把链条拉得太长了,想做好就很难。我们做得就不算好,只算是能够运营下去,和我们最初设想的还有 差距。里面咖啡不好喝,饭也不好吃,环境也不是特别好,但是我们想刻意保持这种气氛,让人知道这也不是什么高富帅去的地方,抱着孩子抱着狗你就别来了,这里就是给大家扯扯淡、拍拍肩膀聊一聊的地方。现在这个咖啡馆也变成了我们几个合伙人的纽带了,我们现在都不在阿里,做的事情也不一样,但是出来了都不后悔。

公众人物的公众视角

经常,我会对需要打击的事给予鼓励,对于需要鼓励的事给予打击,这样似乎总让我站在对立面上。

图灵社区:你是怎么开始写博客、写微博的?

我原来的工作一直都偏系统集成,后来从03年开始,我开始逐渐关注互联网,我的主要娱乐之一就是写博客,还不能写公司的东西。写久了你就会知道好的 文案应该怎么写,一个从来不写字的人肯定是写不出来的。写博客,写着写着就会有一条脉络,里面会纪录我实践的过程。如果有人真的有耐心把我所有的东西都读 一遍,就会发现我一路走来的变化,这就是一个样本。我自己也会发现自己的变化,比如以前关注的事情会比较小,比较琐碎。现在我可能会关注比较虚,大一点的 事情。这就是所谓的"人的经历会影响视野吧"。没有变化是一件很可怕的事。业界的很多人其实都是很好的写手,你可以认为他们没有别的特长,但是至少他们很能写。比如盖茨刚出道的时候就写出了"给软件爱好者的一封信",他绝对不是个书呆子。很多人都觉得写东西酸不啦叽的没有用,这些人肯定错过了一些好东西。

经常写东西的人就会写得越来越短,为什么说专栏很难写,就是因为其实几句话就能说清楚的事,要写得非常长才可以,这是需要技巧的(笑)。我做过这种 试验,把一条微博扩展成一篇文章,啰啰唆唆说一大堆,结果不是很成功。我有的时候也有一些恶作剧,比如经常会做一些伏笔,比如把7号写的东西,标上8号, 结果只有霍炬看出来了,别人都不敏感。这个有点扯远了。总之,通过写博客,我间接学习到了很多知识。

图灵社区:你在网上总是在投诉一些东西,有什么东西很让你反感吗?

我大多数投诉的都是公职类,面向公众的服务,如果是私人公司的话,我也就是调侃一下。比如12306或者电信的一些东西,这些基础设施类的服务就是 要做好,做不好就是要被骂,这都是天经地义的。没有监督,这些公务员就会变成滚刀肉。如果阿里没有早期的内在驱动,后来怎么会变好呢?每一次系统故障,我 们都是如临大敌。第一次系统故障就是由于我的疏忽,半夜把系统搞宕机了,多亏那个时候用户量小,没人用,我当时觉得这个东西迟一些做也没关系。后来出了问 题,我连话都说不出来,就想找个地缝钻进去。这都是我应该做好的,是我的责任,做不好别人骂我是应该的。

李彦宏说的"狼性",他讨厌的东西我都可以想象出来。大公司里有一些人就是这样,干多干少都行,干好干差都可以,整天从这个会议室窜到那个会议室,看看他对公司的贡献,几乎等于0。大 家为什么那么喜欢考公务员什么的,可能就是因为不想承担责任,没有业绩考核。整天无所事事是常态,想做事情的人反而会被视为异类,大家都会想:你瞎折腾些 什么啊?和我们一样就可以了。百度现在属于那种很疲的状态,你踢一脚也没什么反应,"我就这样,我躺着钱就从天上掉下来了"。

我总是支持你们(图灵社区)的原因也是这样,我觉得任何行业里认真做事的人都值得认真地支持。

图灵社区:你在微博上很活跃,和形形色色的人打交道,有什么发现吗?

在微博上,你会发现不同的人是怎么看你的。如果有人骂你,那一定是因为他觉得从某些方面受到了冒犯、受到了攻击。我仍然会经常看看有些人的微博,比 如老赵,看看他说些什么,和一年前比有什么变化。通过这些反馈我会对我的团队有更准确的判断,这样我才能了解他们有哪些诉求其实是很正当的。

我几乎没有批评过做技术的人,我骂的都是决策层。我这个人很容易改变自己的立场,你可以认为我没有原则,但是时过境迁,有一些说法必须要改变。随着 对一些事物的观察和了解,我对它们的判断也会随之改变。经常,我会对需要打击的事给予鼓励,对于需要鼓励的事给予打击,这样似乎总让我站在对立面上。

图灵社区:有很多人都反映被你拉黑过?

一条微博我就能看出来我们是不是一路人,如果不是,那就不要沟通了。我记得有一回我说阿里不好,就有人跳出来说我不应该攻击老东家,我觉得这样的人 是非常龌龊的。我很反感总是要尝试改变别人的人,总是想把想法强加到别人头上。我从来就不会把自己的想法强加给别人,而有些人却一定要说服我。还有的时候 我说微软,这个时候搞微软技术的人就会跳出来,我也没有一杆子把所有人打死,你干嘛对号入座呢?

拉黑对我来说根本也不是什么重要的事,他们随便怎么想,我就是随手那么一点鼠标而已。我其实就是不希望他在我说的话下面留言。就像是有人总找你说 话,而你就是不想和他对话,仅此而已。这些人也需要有人来刺痛他们,我就是要告诉他们,你说这句话就是很二。很二的代价就是你看不了我的东西。如果一定有 其它事情需要联系的话,可以通过其他方式,比如邮件。

有些人素未谋面,就会对我进行人身攻击,这样的人都可以归纳到脑残那一类。经常是抱团来吵架的,他们不关注我说话的内容,上来就是攻击。如果我把微 博删了,他们就会说,你看他,心虚了。这些人其实都是思维上的弱者,他们觉得他们终于赢了,我认错了(笑)。我不会和这样的人有更深入的合作,我会选择和 更靠谱的人互动。比如说,如果我说创新工场好,他们就会说我拿到好处了,如果再过段时间,创新工场给我投资了,他们会说,"你看,我早说了"。但是我也会反思,有时我说的话的确会有负面的东西,以前就有人说"丁香园怎么找了这么个傻逼来管技术,我要是VC就不给他们投资",我就觉得很好笑,多亏这样的人他不是VC。

至于调侃阿里云的话,其实我很希望中国能出一家云计算的公司,这样很多中小公司都会受益,我希望阿里云不要再瞎折腾了,赶紧提供一些可靠的服务吧。

图灵社区:很多程序员觉得自己过得很辛苦,你有什么想说的吗?

长期做一种事情的人容易形成一种观念,只有在我这个领域牛的人才是牛人,别的领域的牛人都是狗屎,都不行,看不上。写前端的和写后端的,搞微软的和 搞开放技术的,写C++的,觉得Linux领域的牛人都不行,IT行业里的这种隔阂非常大,所以吵架在所难免。语言之争什么的,市场的选择也不是你争论出 来的。

很多程序员过得没有希望是因为他们的视野太窄了,除了看技术,就是看科幻,我建议他们多看看人文历史类的书籍,这样的书可以引导他们理解别人的内 心,看看小说什么的也可以很大程度上补充他们看问题的角度。程序员整天面对的就那么几个人,经理就是监工的、客户就是傻逼,每个人的角色都已经设定好了, 如果没有更多了解,圈子就会越来越窄。应该尝试开阔一下视野。

比如,Paul Graham,画画对他是一种补充,这些积累有可能在一些关键点上决定一些东西。再比如说,如果我当时没学过生物,我现在又为什么要做(丁香园)?我现在 倒是经常会买一些生物学的科普书,回头想想,其实我还是喜欢生物学的某些地方的。生命起源、进化这类东西都是很有意思的,都会帮你打开视野。

信息的意义

没有什么能拯救中国互联网。中国互联网自己会拯救自己。

图灵社区:你是怎么加入丁香园的?有什么特殊的理由吗?

我喜欢给自己找一些看似正向的理由,当时去杭州,我说服我自己和家人的时候都是说电子支付是能改变电子商务的事情,是对社会有价值的。但是后来做久了发现,电子商务也主要是帮人赚钱,无法解决更多的问题。支付宝做得再好,也无法改变人的生死。但是如果信息和服务可以做得更好,就有这样的可能。

我的病(类风湿)发作起来的时候异常痛苦,如果没有经历,是无法理解那种痛苦的。比如关节痛的时候,我甚至恨不得拿刀把手腕砍断,就希望自己昏死过 去,这样就感受不到了。长期处于病痛中,难免要开始考虑生老病死的问题。后来出现了机会,我就希望如果我们能更好地给医生提供信息,是不是可以让他们的医 术和待遇更好一点,这样整个医疗行业是不是会更好一点。我看到了很多医生确实因为丁香园改变了他们的工作方法。我们想通过这样的网站更好地为中国的医生服 务。做到这步之后,我们也想更好地服务于象我这样的慢性病、疑难病、罕见病患者。这个事情可能赚钱很慢,可是只做一点点,也是会造福的。对于用药的知识丰 富了,对医生的理解也就会更全面,人们会发现更好更积极的治疗方法。如果我十年前最早发病的时候能了解得更多,我就可以主动和医生配合,和他交流常规疗法 以外的治疗方法,就能用很系统的方式治疗了,不会造成现在这样对身体的永久损伤。

有人问我们有没有考虑把食品安全这块也做进去,其实我也有这样的打算,我们的计划很庞大,但是有可能到最后也实现不了。我们遇到了很多很多的障碍,这在事前是无法想象的。就算做不大,我们也可以赚一些小钱,也能解决100多人的工作,其实也相当于为社会做了贡献。中国的人口基数这么大,将来医疗肯定是个大问题,所以我们能做的事也是越来越多。而我们这些对信息了解更多的人为什么不来做这件事呢?我 一直觉得我们做的事是半公益性质的,但是不商业化是不可能的,我们的商业化是底层的,不会影响到使用。话说回来,如果我没有学过生物,如果我没有经历阿里 的工作,如果我没有得过病,也许我不会认识到我现在工作的价值。我有可能只想要份好工作,一个好Title,一份好薪水,就够了。

当时我在阿里,似乎感觉能一眼望到底,而我现在做的事都是非常规的,都是需要加入真正的判断才能做的事。我不知道我一年后是什么角色,也不知道我三年后会在干什么。

图灵社区:你最近的微信账号"小道消息"很火热,它的口号是"只有小道消息才能拯救中国互联网",如何理解?

关于互联网,每天都会有大量的信息,真真假假的信息都有,多数信息都是不那么可靠的,倒是很多在私底下流传的信息反而更加准确。只有小道消息才能拯 救互联网,有一点恶搞的成分,其实还有下半句,"只有小道消息才能拯救中国"... 别那么严肃,这只是一句玩笑话,没有什么能拯救中国互联网。中国互联网自己会拯救自己。也没有谁能拯救中国,也要靠我们所有人。

我现在的确花了一点业余时间在运营微信公众帐号"小道消息",最初的目的就是想摸索学习一下微信的运营方法,看是否能够对我们的业务有帮助。倒是有些一发不可收拾了。有的时候会夹带一点私货,发表一些我对个别事情的看法,我也不知道会坚持多久,既来之,则安之吧。

Pages

Powered by Movable Type 5.2.7

Recent Assets

  • Larry_Ellison.jpg
  • Bruce_Scott.jpg
  • Oracle_Company_Building.jpg
  • Oracle_Gang_of_4.jpg
  • 201209261703156270.jpg
  • 201209261702411476.jpg
  • 201209261701388124.jpg
  • 1008488311jq6z8vei54eb.jpg
  • 100848662uuuua26piunl0.jpg
  • 1008475pzc832nfyo5dlii.jpg

最新评论

  • yangzm.sh: 你这样操作,说明你没有小孩。如果你有小孩,你把唯一的房子卖了,看你的小孩户口落在哪?小孩在哪里上学? 房价这么高,大家还去买房,并不只是因为房子能增值,而是因为附加价值太多了。 不过现在好了,现在上海限购了,保障房开始造舆论了。大家都在观望,炒房的人要开始还债了。 奉劝炒房的人,出来混总是要还的。炒商业地产也没用,商铺价格炒上去,我们大不了不去商铺买东西,直接网购。 read more
  • yangzm.sh: 你这样操作,说明你没有小孩。如果你有小孩,你把唯一的房子卖了,看你的小孩户口落在哪?小孩在哪里上学? 房价这么高,大家还去买房,并不只是因为房子能增值,而是因为附加价值太多了。 不过现在好了,现在上海限购了,保障房开始造舆论了。大家都在观望,炒房的人要开始还债了。 奉劝炒房的人,出来混总是要还的。炒商业地产也没用,商铺价格炒上去,我们大不了不去商铺买东西,直接网购。 read more
  • SZ: 附上‘甲骨文中国’的SWIFT CODE: 开户名称:甲骨文(中国)软件系统有限公司 开户银行:花旗银行(中国)有限公司北京分行 账号:1731421265 银行地址:北京市西城区武定侯大街6号卓著中心17层 同城清算代码:012510928(或者1092) 通过央行CNAPS系统清算代码:531100000018 国际交换专用代码:CITICNSXBJG Beneficiary read more
  • Julia: 很感触,更多是对平常判断事情态度的反省. read more
  • eygle: 总数,加起来。 read more
  • chen: 按硬盘数算,10 PB相当于2280个2TB硬盘,3166个1.5TB硬盘,再加上749个1TB硬盘 ??? 這段有點問題 (1TB硬盤才749個) read more
  • onlyring: "半封建半资本" ------------ 入木三分! read more
  • 可达培训: 为什么中华民族能历经5000年磨难而不倒?因为我们有一代又一代这样的人。 有志者,事竟成! read more
  • 可达培训: 为什么中华民族能历经5000年磨难而不倒?因为我们有一代又一代这样的人。 有志者,事竟成! read more
  • orion: 要么找我去吧,我从第一步的成长开始:D read more