目录
序 3
前言之DBA的性格 7
前言之我的成长之路 11
第一部(1) 5月11日 20
第一部 (2) 5月12日 22
第一部 (3) 5月13日 24
第一部 (4) 5月14日 26
第一部 (5) 5月15日 28
第一部 (6) 5月18日 31
第一部 (7) 5月19日 南京 33
第一部(8) 5月20日 临晨的邮件通知短信 37
第一部(9) 5月22日 ODS系统和RAC 39
第一部(10) 5月23日 实时ODS 41
第一部 (11) 5月24日 重返沈阳 44
第一部(12) 5月25日 46
第一部(13) 5月26 优化方案 48
第一部(14) 5月27日 无奈 50
第一部(15) 5月29 突破困局 52
第一部(16) 5月31日 实施优化 54
第一部(17) 6月6日 实施优化 56
第一部(18) 6月7日 突发事件 58
第一部(19) 6月10日 性能问题 60
第一部(20) 6月11日 例会 62
第一部(21) 6月12日 64
第一部(22) 6月13日 演戏 66
第一部(23) 6月14日 转机 68
第一部(24) 6月14日之二 cache buffer chains 72
第一部(25) 6月15日 青岛 74
第一部(26)之二 6月15日 青岛 78
第一部(27) 6月16日 青岛机场 80
第一部 (28) 6月17日 完美的效果 85
第一部 (29) 6月18日 准备收工 88
第一部(30) 6月19日 突然事件 90
第一部(31) 7月20日 重回沈阳 92
第一部(32) 7月21日 课堂风波 95
第一部(33) 7月23 世博园一日游和心想事成 98
第一部 7月23日夜 漫长的一夜 (第一部完) 101
后记1 结束语 108
后记2 优化项目的流程之方案 109
序
算起1993年第一次帮客户安装Oracle开始,我和Oracle亲密接触也有16年了。说实在的,第一次和Oracle的接触,我对Oracle的印象十分差。在这之前,我只接触过一个大型数据库,DEC公司的RDB,随着IT届的沉沉浮浮,现在RDB也归在Oracle名下了。当时国内使用最广泛的小型机平台是DEC公司的VAX,操作系统是20年前大名鼎鼎的OPENVMS,80年以后出生的人耳熟能详的是UNIX和LINUX。但是如果倒退十多年,在90年代初或者更早的计算机操作系统课程中,很多算法都来自OpenVMS 。90年代初,Oracle在国内使用最广泛的版本是5.1,而且那时候大家的版权意识都比较薄弱。就是很有钱的政府部门,也不太愿意花上几十万去买一个正版的数据库。所以有一种职业就很吃香,就是能够帮客户做破解和安装系统的工程师就十分吃香。
我那时候是一个搞OpenVMS上的应用开发的软件工程师,由于工作关系,接触了较多的VAX系统。因为那时候懂VMS和Oracle的人十分稀缺,因此经常有人让我利用周末帮助安装系统。我的第一次和Oracle的接触就是从一次帮助客户安装数据库开始的。软件已经破解好了,当时清华大学有个老师水平很高,居然写出了一个生成Oracle许可证文件的程序,花上2000块钱就可以买到一个和机器码绑定的的许可证。安装介质是那种20年前十分著名的正方形的磁带。拷贝安装介质,编译链接,然后创建数据库,以前的Oracle安装十分繁琐,连数据文件都要手工创建后添加到表空间里。当我手忙脚乱的忙活了一天,终于替客户成功的安装了一套Oracle 5.1并拿到2000块钱的时候,是十分愉快的,因为那时候我的一个月工资不过1000块钱。但是Oracle给我的恶劣印象使我很长时间不愿意接触Oracle。和RDB比起来,Oracle简直太繁琐了,而其性能和功能也无法和RDB 相比。基于这个认识,在94年我帮助泉州电信开发计费系统的时候,我还是全力推荐客户使用RDB,那是一个十分成功的项目,获得了一个省级的科技进步3等奖。
在这段时间里,我在每个项目里都会碰到大型数据库,不是选择Oracle就是选择RDB,不过如果可以让我选择,我更愿意选择RDB。在这段时间里,Oracle也在进步,而RDB随着OpenVMS在商业上的失败也日薄西山了,几年以后,RDB终于被Oracle收购。1995年我为一个政府部门设计一套电子单据处理系统的时候,客户坚持要使用开放的UNIX,而拒绝使用VMS。在UNIX平台上,Oracle成为我的唯一选择,那时候正是Oracle 7.1大行其道的时候,Oracle 7已经有了太大的进步,其方便的安装配置以及优异的性能让我感到十分意外。所以在1996年我为泉州电信设计联机实时计费系统的时候,Oracle成为我的首选,正是这个项目使我对Oracle真正的入迷了。服务器是一台2个21164 CPU,256M内存的DEC ALPHA 2100服务器,在今天看来,这台服务器还不如现在的一台普通的PC机,但是就是这台很寒酸的服务器,完成了一个具有上百万市话用户,50万长话有权用户的大型本地网的联机实时计费系统。这个项目是我第一次对Oracle进行优化,通过调优的系统发挥了强大的性能,一个电话在挂机后5秒-10秒钟,通话话单就结算完成。后来在这个系统的基础上,福富软件开发了一个话费回送系统,在挂机后几秒钟,把通话费回送到客户的来电显示电话上。
从那以后我和Oracle结下了不解之缘,1997年我第一次参加了Oracle OPEN WORLD,那次北京的盛会,除了让我了解了VLM和VLDB,也让我结识了一批Oracle第三方服务的先行者北京巨龙的朋友,他们在Oracle这个产业上获得的成功让我羡慕不已。
真正让我成为DBA是1999年以后的事情了,在这之前,虽然我和Oracle形影不离,不过我的主要身份还是一个系统架构师和一个十分优秀的程序员,数据库安装、维护和优化只是我的副业。从1999年开始,由于要为一些客户提供专业的第三方技术支持,我开始认真研究Oracle的架构以及内部原理。我花了差不多2年的时间,在METALINK上阅读了超过2000份技术文档,一个专题一个专题的研究Oracle的内部原理,从寥寥可数的文字中去解密一些Oracle秘不可宣的秘密。后来我接触了不少Oracle内部文档,发现如果我能够早点获得这些文档,那么这个学习过程至少可以缩短一半。我觉得Oracle应该把这些文档开放出来,让愿意深入研究的人员学习。
在这个时间里,我经常上一个技术性讨论的网站,ITPUB,刚刚开始的时候大家的Oracle水平都很有限,论坛的学习气氛也十分不错。而随着网站的人气越来越旺,论坛里不再是大家一起学习和讨论问题了,而是不停的扯皮和争吵,后来ITPUB上有一批人转到了www.oracle.com.cn,我也在上面混迹了一段时间,DBA这个圈子保守的气氛使这些网站都很难成为真正的高手的园地。在这些IT网站上,有价值的内容越来越少,所以我把所有的兴趣都放到了METALINK上了。METALINK应该是Oracle学习者最大的知识库,Oracle也愿意把这个知识库和所有的用户共享。从那时候开始,METALINK基本上成为我每天必上的网站,每天不到METALINK上看几篇技术文档,就觉得缺了点什么似的。我很少看别人写的Oracle书籍,除了Oracle官方的文档,我的Oracle的知识绝大多数都是从METALINK上获得的。
有很多网友问我为什么不写本书,其实我也一直想写一本关于Oracle的书,2002年开始,我想把我在METALINK上学习的成果写出来,写一本书,书名都起好了,叫《ORACLE深度历险》,书写了1年多,WORD文档算下来也有一千多页了。2004年开始,在我对这本书进行校对的时候,我发现这本书的大多数内容都是目前市面上的书籍里有的,出版这本书的价值并不大。虽然第一次写书很失败,不过写一本书的想法一直没有熄灭。不过由于工作关系,很少有较长的空闲时间可以写作。很难写出一本连贯性很强的书来。当年看王强的《圈子圈套》的时候一下子被迷住了,推荐给很多朋友,看过的人都说在里面能够看到自己的影子。说实在,我当时看《圈子圈套》的感觉也是如此。说起来和王强还有过一面之缘,根本就没把他和作家联系起来,但是他的作品在IT圈子里的人看来,比作家还作家。因为这是他在it圈子里摸爬滚打的经验的总结,看过圈子圈套后我开始写IT AND I,王强是从一个系统集成行业的高层人物的角度去看问题,而IT AND I里的莫明是一个这个圈子里处于底端的工程师。现在IT AND I在我的另外一个博客里连载,不过最近也已经很长时间没有更新了。我也不想给自己有多大的压力,只是想把我这些年里做DBA的一些经验写出来,给大家共享,所以我决定写这本DBA日记,开始写的时候,我的初衷还是自娱自乐,并没有出书的打算。
直到有一天,我和我的一个同学在北京相聚。他以前是BEA公司的,由于这次ORACLE和BEA的并购,成为ORACLE的一个售前部门的总监。他问我一些DBA圈子里的事情,也介绍了JAVA圈子里的一些事情。Oracle圈子和JAVA圈子全然不同,JAVA圈子是一个十分开放的圈子,由于JAVA的开源性质,整个JAVA圈子都十分开放,大家都以把自己的工作成果开放出来给大家分享为荣,所以JAVA的技术发展十分迅速,技术方面的创新层出不穷。我想Oracle圈子只有开放了,才可能象JAVA圈子一样欣欣向荣。从那一次开始,把DBA日记公开发表的想法才逐渐形成了。这也是我这一次重新修订DBA日记的一个主要目的。既然目的是正式出版,那么书中的很多内容就不能太随意了,很多观点也要再三推敲,免得误人子弟。
现在大多数的ORACLE书籍都是以技术为主,而介绍Oracle的各种技术的书籍十分丰富,但是对于DBA来说,要学的不仅仅是技术,还有很多东西不是仅仅通过技术传授所能够学到的。做一个好的DBA需要具备的一些气质,一些性格和一些处事原则,都不是纯技术的问题,但是往往和我们的DBA生涯关系重大。我写这本书的初衷也是为了把我和其他朋友的DBA生涯中的一些故事介绍给正在学习或者使用ORACLE的DBA们看。《DBA日记》不是一部小说,因为DBA日记里将会介绍很多DBA的知识和技术。但是《DBA日记》也不是一本纯粹的技术书籍,因为DBA日记里带有很多的故事情节,我想除了感情戏,其他的情感都会在日记里体现。DBA从事的是一种职业,在从业生涯里也会有喜怒哀乐。除了技术以外,我想我也应该把这些喜怒哀乐传递给大家。
为了叙事方便,我会把发生在很多人身上的事情集中在一个"我"身上体现,"我"不仅仅代表了白鳝,而是代表了一批奔4的老DBA。为了避免一些法律问题,部分客户我将会使用代称,或者有所改变。《DBA日记》总的来说还是一本技术性的书籍,并不会针对某个人或者企业,因此希望有些经历过日记中所叙述的事情的朋友能够原谅。
|
|