目錄
序 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里的莫明是一個這個圈子里處于底端的工程師,F在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們看!禗BA日記》不是一部小說,因為DBA日記里將會介紹很多DBA的知識和技術。但是《DBA日記》也不是一本純粹的技術書籍,因為DBA日記里帶有很多的故事情節,我想除了感情戲,其他的情感都會在日記里體現。DBA從事的是一種職業,在從業生涯里也會有喜怒哀樂。除了技術以外,我想我也應該把這些喜怒哀樂傳遞給大家。
為了敘事方便,我會把發生在很多人身上的事情集中在一個"我"身上體現,"我"不僅僅代表了白鱔,而是代表了一批奔4的老DBA。為了避免一些法律問題,部分客戶我將會使用代稱,或者有所改變。《DBA日記》總的來說還是一本技術性的書籍,并不會針對某個人或者企業,因此希望有些經歷過日記中所敘述的事情的朋友能夠原諒。
|
|