【IT生活】呂海波:阿里巴巴離職DBA職業生涯總結:突然35歲

海星星hktk發表於2014-08-22


呂海波:阿里巴巴離職DBA職業生涯總結:突然35歲

原文地址 http://bbs.51cto.com/thread-926748-1.html
作者呂海波:曾任阿里巴巴B2B子公司首席DBA。著有《Oracle核心技術揭密》


十五年前,你或許還不懂愛情,看Jack和Rose執手相看淚眼,只是蒙朧的心痛。十五年後,你會和誰一起走進影院,更會和誰一起,走到生命終點。

十五年前,我還不太懂技術,憑興趣玩著C語言。十五年後,當鐵達尼的旋律再次響起,我會選擇和哪門技術,一起走到我職業生涯的終點。


序言
---- 回望雨中的園區,更是回望來時的路。

此時天空飄著小雨,正如絲絲織雨細如愁。我剛剛離職,一路走出園區,回望了一眼雨中阿里巴巴的大樓,思緒隨著微風,四處飄散。突然想起幾年前我剛到杭州哪天,也是細雨微風。我走
進城西的創業大廈,終於見識了大師Biti的風采,也從此開始我的阿里巴巴之旅。
      杭州的特點,是隱匿在山青水秀之間,有很多雅至的主題飯店,團隊第一次出外聚餐,就是在山間繞來繞去,最後到了一處青山環繞、綠水長流之處。Biti在會議上就“什麼是架構”進行了
精彩的評論,高度已經超越普通技術人員,至今我仍記憶猶新。但不久之後,Biti調至支付寶,真是遺憾。而這讓我面臨了空前巨大的壓力,因為Biti一走,我變成了團隊級別最高的DBA。初來乍到
,入職剛滿一月,忽然成為阿里系一個子公司的“首席DBA”,驚喜之餘,感覺壓力之大、常常令我透不過氣來。不過還好,時間總一晃而過,此時此刻,剛剛走出阿里,掏出手機,拍了一張照片,
算作我在阿里的留念,更是我人生一段最重要經歷的留念。

來時之路:矽谷,IT傳奇的開始。
---- 人可以依靠夢想活一段時間,但不會一直下去


    “坐落在縱橫交錯的高速公路之間的,是巨型的商業園區和簡陋的三臥兩浴的平房住宅,其間最高的建築是變電站的鐵塔和架著電話線的水泥杆子。真正的工作是員工們在簡陋的、用屏風隔
開的小辦公室裡,眼睛盯著電腦螢幕靜靜完成的。每個人都試圖做一些前人沒有做過的東西。”
      這就是李彥宏在《矽谷商戰》中談到的矽谷的樣子。
      曾經有兩個在一家公司供職的工程師,去找矽谷著名的投資家史蒂夫·朱維森,這位資深風險投資家對他們提出網上資料庫系統並不感興趣,他問:“你們還有其他主意嗎?”
      其中一個叫比爾·巴迪亞的工程師就說,他還想通過因特網來提供免費的電子郵件賬戶,從網上廣告為獲取收入。10天之後,朱維森連商業計劃都沒要便掏出30萬美元幫助他們成立了Hotmail
公司。Hotmail後來以10億美元的天價買給了微軟公司。
      這在當時看來有些離譜,但這樣的故事到處流傳,充斥著各類勵志雜誌,也充滿著我的心。
      世界上賺錢的公司多的是,但沒有哪家公司的口號是改變世界。看看現在的IT、網際網路公司,每個公司的口號中幾乎都包含著改變世界的夢想。而且從微軟、蘋果這類老一代革命家,到
Google、Facebook這類矽谷新星,也的確有很多家公司或多或少的改變了世界,或至少是深深影響了世界。
      IT,網際網路,這是一個傳奇的行業。當我的手撫過鍵盤,當眼光劃過滿屏自己寫的程式碼,澎湃的激情,從來都沒有息滅過。但無論多大的激情最終都會有息滅的時候。人可以依靠夢想活一段
時間,但不會一直下去。
      1996年,我職專畢業。職專,是差等生的代名詞。職專生的夢想,一般都是成為某武俠小說的男主角,有一個酷酷的名字,有一堆驚豔的紅豔。我也不例外。但這一切,在96年的夏天到來時
,突然中止了。原因我應聘到了一個很小規模的計算機培訓中心---“辰星計算培訓中心”。還有,我看了辰星書櫃中的電腦報合訂本。
      有一篇故事我仍然記得,《軟體輝煌》,其中詳細講述了蓋茨創辦微軟的經歷,還有Word的開發歷程,……。一群大男孩,用電腦改變世界。美國,矽谷,IT界,從來都不缺這樣的故事。雖
然這樣的故事從來沒有在東方某個偉大的國家發生過。
      合上電腦報,一個想法出現在我的腦海中,哪就是我要做中國的比爾。蓋茨。年輕人總有夢想,不是嗎?
      一年後,1997年的夏天,四個辰星公司的“核心”員工,告別辰星,踏上創業之路。四人熟讀微軟、乃至矽谷的歷史,這些歷史讓他們熱心沸騰。
      40年前,電晶體之父肖克利博士的故鄉,美國西海岸的聖克拉拉,八名懷著夢想的年輕人離開肖克利半導體實驗室,創辦了可謂矽谷搖籃的快捷半導體公司。這就是著名的八叛逆。而我們,
則自許“四叛逆”。
      我們在和辰星僅一牆之隔的地方,買了二十臺電腦,投資達十萬,創辦了紅星計算培訓中心。哪一年,我們十八歲。


光輝歲月
---- 青春總是這樣苦澀,但在長長生命之中,裝在記憶這個罈子裡,慢慢的發醇,
最後卻能化為無比的感純。這或許就是生命的魔力。
………………
  夢想總是遙不可及
  是不是應該放棄
  花開花落又是一季
  春天啊你在哪裡
  青春如同奔流的江河
  一去不回來不及道別
  只剩下(平凡)的我沒有了當年的熱血
  看那漫天飄零的花朵
  在最美麗的時刻凋謝
………………
      
      紅星的創辦,讓我們的年青歲月,都達到了頂峰,此後再無超越。我們在同學中間成為傳奇,成為創業的典泛。甚至有同學的同學,還幕名前來,向我們請教人生。
      在紅星除了講課,我們還為一些傳銷公司開發核算、財務軟體。我還用C和彙編,寫各種有趣的程式。我用匯編寫過一個DOS下記憶體駐留的程式,寫完很有成就感,自信潢潢。但轉念一想,要
學的東西如此之多,不知何年何月才能學完,霎那間又充滿急燥。
      哪段青春歲月真是難又形容。快樂與淚水,自信與自悲,堅持與旁徨,……,各種各樣的感情交織著,匆匆的,過去了,不再來。
      寒來暑去,花兒謝了又開、開了又謝,時間就如同夏日傍晚的涼風,輕輕的帶走了歲月,只給人留下,多樣的回憶,哪怕這回憶是如此的沈重。
      
      小學三年級時,還是1987年,我在書店看到一本書,作者是諾查丹馬斯。書中詳細介紹了他的一系列預言,從獅心王理查的死期,到西特勒的出現。當然,最後是1999年人類大災難,恐怖大
王從天而降。很不巧,當時哥哥剛剛帶我看完電影《超人》。超人故鄉星球毀滅的特效,雖然在現在看來雖然拙劣不堪,但當時強烈震憾了我幼小的心靈。如今再看諾查丹馬斯的預言,我幾乎已經
看到了地球在強烈的地震、大火中,變為一片廢墟。出了書店,我萬念具灰。我馬上找到我的一眾好朋友,將這個惡耗講給他們:“我們只剩12年好活。”,未了,看著他們一個個臉如死灰,我卻
突然心情大好起來,悠載悠載的回家寫作業去也。有了這種經歷,使我完全相信微博上的一句話:不要向任何人訴苦,因為20%的人不關心,剩下的80%聽到後很高興。這是題外話,我們繼續。
      12年後,1999年到了,我卻再無所謂。或許大家一起死了,比我迷茫的活著更好。曾經輝煌的紅星,只不過幾年,便已面目全非,曾經的朋友,分道揚鏢。在千禧年來臨的前夜,我和幾個同
樣迷茫的年青人,喝著劣質的白酒,揮灑著青春,也揮灑著生命。
      青春總是這樣苦澀,但在長長生命之中,裝在記憶這個罈子裡,慢慢的發醇,最後卻能化為無比的感純。這或許就是生命的魔力。
      我相信人生是一段段例行公事,一段忙完又一段,直到盡頭。在紅星的大門關上哪一刻,我告訴自已,一段生命結束了,要開始新的一段了。
      2000年春暖花開之際,我踏上新的征程。通過以往學員的關係,到了我市一家百年老字號---五福糕點,做學徒。強烈的急燥心理,令我急切的尋找一條可以快速發家致富之路,我當時的選擇
是:糕點師。但我並沒有忘記我的夢,我的蓋茨之夢,我的程式設計師之夢。2000年周星馳賀歲片《喜劇之王》上映,其中一句“我是一個演員”,深深打動了我。我想,或許有一天,別人吃著我做的
極品慕絲,我卻告訴別人:"其實,我是一個程式設計師”。
      羅紅可又先做糕點,開好利來,賺了錢再當攝影師,我也可以。成長就是這樣,我的目標,已經從創辦Intel的肖克利八判逆,或蓋茨等世界級大腕,變成了中國人羅紅。其實,極便是羅紅這
樣的成就,也是高高在上的。所又,我成熟了,但還不夠成熟。我想成為一個不普通的人,原因就是我是一個太普通的人。
      幾個月後,我放棄糕點,拎起菜刀,成了一個飯店的幫廚學徒。
      幾個月後,我放下菜刀,在路邊擺攤買精品。
      幾個月後,我開了一家精品店。
      幾個月後,精品店倒閉,我賠光了所有錢。
      這就是成長的代價。路不去走,就不知道原來走不通,更不知道哪條路可以走通。
      其實,在這一年左右的時間中,也不是沒有收穫。在飯店做幫廚學徒時,我認識一個廚師。當其他廚師都是打檯球、或站在街邊對著過往的美女吹口哨時,他在練習刻花,或者學習。他說,
他的目標是要上天津一所廚師大學。我們一直保持著若有若無的聯絡,我要看看他的堅持是否會有結果。我想,他也這麼想的,他也想看看,我的堅持,會不會有結果。因為,無論在幹什麼,我也
從沒有中斷學習。我不會吃口哨,檯球打的也不好,他在苦練刻花時,我通常會拿起嚴蔚敏《資料結構》、同濟大學版的《離散數學》等等。從96年到現在,從我看完比爾。蓋茨故事哪一刻起,無
論的目標如何變化,我可以自豪的說,我的IT夢,從沒有一天停止過。也從沒有在哪個階段,停止過學習。
      還在五福糕點時,雖然這個決定有點晚了,但我還是決定放下DOS。開始看《Windows程式設計》這本號稱Windows下的聖經。當我拿起菜刀時,同時,嚴蔚敏的資料結構,已經開始看第二遍了
,這本書後來成為我走北上、南下必帶的書。而在精品店時,對於始終不明所又的編譯原理,我也沒有放棄,買了本號稱龍書的,但我最終對編譯原理還是不明所以。……。
      4年後,那名廚師告訴我,他並沒有去上廚師大學,他在北京的一家飯店,一個月已經拿到八、九千塊。6年後,他仍在北京,但薪水已經到達一萬五了。到我入職阿里巴巴高階資料庫專家時
,他已經到了廣州,薪水和我在阿里不向上下。之後,我們失去聯絡,不再有彼此的訊息。因為我們在各自的身上,都已經找到結果。

殘酷的青春
——在某一階段,或許我們在尋找的和拒絕的都是自己。

      中國最神密的部門是有關部門,最危險的工種是臨時工。2001年的夏天,我來到鄭州,到了我向往以久的事業單位,省計算中心,可惜從事最危險的職業:臨時工。
      從小,媽媽就教導我:“要好好學習,長大了進事業單位,有個鐵飯碗。”
      我問媽媽:“為什麼只有事業單位才有鐵飯碗,其他的就沒有嗎?”
      “其他單位會破產啊,效益不好會倒閉,發不下工資。”媽媽沒加思索的回答我。
      我又不理解了,“哪會為什麼事業單位就不會效益不好呢?”
      “事業單位是國家嗎,國家可以印錢啊。錢不夠了就印。所以事業單位永遠都不會缺錢。”媽媽回答我。
      我想起阿甘正傳中的一句話,Momma always had a way of explaining things so I could understand them. 媽媽總是有辦法讓我明白道理。
      媽媽的目標,就是讓我能進事業單位。現在,我終於進了,這多虧了一個親戚。但我只是個臨時工。我的工作是講課,還有為其他各個大小企、事業單位開發各種程式。我在計算中心一共待
了7年,前2年,都是作為程式設計師,後來才轉DBA。哪兩年,我也為河南的不少企、事業單位開發了大大小小不少程式。現在想想,還有些後怕。常常午夜夢迴,驚出一身冷汗。萬一哪天我當年寫的程
序有問題,會不會被跨省追捕回去。或許我下半輩子最好待在,和中國沒有引渡協議的國家,才能真正安全。
      事業單位大家都互喊老師,在阿里的時候,大家都互喊同學。所以後來到阿里後,感覺年青了幾歲,哈哈。在事業單位,正式的愁每天無事可做,臨時的愁每天有太多事要做。常常一個上午
跑兩個單位解決問題,下午又要回去參加會議、討論新軟體的架構。在馬不停蹄的忙碌中,我一直在考慮我將來的發展。誰都明白一個道理,如果想從一個行業中脫穎而出,只有兩種常見的可能:
要麼技術牛*,要麼佔得先手。技術牛*這個,不容易做到,所以,對我來說,取得成功的最簡單方法只有一個,“取得先機”。
      我們都明白一個很簡單的道理,當火焰燒起來的時候,你才想到去加柴火,只能收穫一堆灰燼。於是,我開始以我自己的判斷,從眾多的技術種類中,找到一個還在發展中的技術。
      經過苦苦的尋覓,瞭解了眾多專家學者的一直看法,我選定了承載我希望的東西----VRML。VRML是HTML的3D版,當時一些專家預測,未來的網頁,都將是這個樣子的。
      想想看,3D的網頁,酷吧。開啟網頁,首先看到一扇門,用滑鼠點一下,門開啟了,隨著滑鼠的移動,你的虛擬形象走進房間,這是一個客廳,有三三兩兩的網友進進出出,大家互相在聊著
天,還有幾個網友在角落中私聊,…………,怎麼樣,這樣的網頁夠酷吧。
      那是01年的仲夏,傍晚的涼風,讓經歷了一天酷暑的人,感到格外輕鬆。夕陽西下的天邊,還飄著幾朵雲彩,恰到好處的點綴著色彩絢麗的天空。我騎著自行車,輕鬆的穿行在大街小巷。我
的心情格外的好,因為我剛買了一本書,是專門講VRML的。而且,我找遍了整個書店,只找到一本關於VRML的書。這更加證實了我的猜想,VRML目前還比較小眾,是一門方興末艾的技術。只要抓住
時機,在VRML全面代替HTML前,將VRML學的比較精通。等到VRML大行其道時,我的名字將隨著VRML一起,響徹全國。哈哈哈哈,……,想到末來的美好前景,我幾乎忍不住要逛笑起來。但命運如同
橫穿馬路的汽車,在你得意忘形時,將你的夢想擊的粉碎。
      2004年,一晃三年過去了。HTML勢頭不減,Flash紅遍國內,之於我的未來希望:VRML,不提也罷。這從一個測面證明,不要相信所謂專家、學者的預測。絕大多數的預測,都是錯誤的。就像
IBM創史人托馬斯·沃森曾經作出了:“全球只需5臺計算機”的預言一樣。專家對未來的預測,往往是不靠譜的。企業家公開發表的預測,往往更不靠譜,他們的預測是為了對他們的產品和市場策
略作宣傳。就如同早些年Larry Ellison(拉里。埃裡森)將預言未來PC將不再是主角,NC(網路計算機)都是主流。可惜早些年我不明白這些道理,浪費了幾年時間。
      如果能成功的搶佔“先手”,無疑會以最小的代價、獲得最大的成功。但是,如果你自以為是“先機”的東西沒有發展起來,一切都將是竹藍打水,一場空。
      搶得“先手”固然可以使用自己更快的功成名就,但刻意的去搶,往往適得其反。成功搶得“先手”,這是上帝賜給你的禮物,可遇而不可求。這段經歷讓我明白,不要刻意追求快,欲速則
不達,還是一步一個腳印來得穩託。
      其實仔細想一想,歷史上固然有比爾。蓋茨、賈伯斯,有Google、FaceBook,等等人或者公司,以創新、搶先贏的市場和尊敬。但是,成功的人一定都是少數,還有更多的人,同樣的才華橫
溢、同樣的聰明無比,但是,他們的創新、他的“先機”,都失敗了。歷史不會記得他們,因為,歷史,是勝利者的豐碑。
      矽谷的風險投資商厲害吧,他們肯定不會將錢隨便投給不靠譜的人、不靠譜的專案。但是,即使經過矽谷風投認定靠譜的事,成功率仍只能達到20%左右,80%的失敗者沒有人會記得。
      幾年的堅持,幾年的努力,只不過去學了一個毫無用處的東西。其實從03年開始,我就想過要放棄,我可能壓錯了寶、選錯了方向。無數個夜晚在孤燈前學習,換來的只是毫無價值的技術!
我的內心,很不願意承認這個實事。人有時候最難否定的,就是自己。一直堅持到04年,還是一個仲夏的傍晚。依然是涼風習習,天空依然是絢麗多姿。我沿著金水河隨意的漫步,我想,是不是要
放棄了。一根接一根的抽著煙,買了幾罐啤酒,一罐接一罐的喝著,夕陽將我的影子拖的老長老長。在某一階段,或許我們在尋找的和拒絕的都是自己。你認為它錯了,後來發現又對了,釋然之後
你擔然承認,自己執著了。錯和對重要嗎,關鍵是它過去了。
      是的,過去了。
      這之後不久,因為工作需要,我開始接觸一個新的東西,Form和Report,是一種很少人聽說的,一種叫Oracle資料庫的開發語言。各種語言對我來說是駕輕就熟,除了安裝配置,這兩種語言
的開發,我很快就撐握了。我的歷史,也因為這兩個東西而轉折。

燈塔:ITPUB

      04、05年,我一直在做Oracle開發,主要使用的就是Form、Report,當然,還有OCI。在一些專案中使用OCI,純粹是出於對C語言的偏愛。其實大多數我們的軟體,可以全部使用Form和Report

      我從開發轉型為DBA,是一個很偶然的事件。04年底,在給海關做一個專案時,認識了一名搞網路的技術人員,他剛剛考過CCNP,正在向CCIE努力。當時,我從沒想過要考什麼認證,因此,也
不瞭解這些認證。聽了CCIE,也沒什麼概念。他跟我講,Oracle有一個很牛的認證,OCM。考過了後可以身價倍增。我回去在網上查了一下,說是當年亞州只有4名COM等等,總之就是很牛*。這個結
果令我大吃一驚,我沒想到一個認證,能有如此難度與作用。從此,我開始了我的轉型之路。
      其實我們單位從02年就開始使用Oracle,幾年下來,也基於Oracle開發了不少專案。很多地方有時也要求我們在專案交付的同時,提供容災、高可用方案。但這些是我不肖做的。曾經的我對
SA和DBA是如此的不肖一顧,“只是搬搬機器、裝裝系統的民工”。我的夢想是創造,創造獨一無二的程式,獲得鉅額風投,憑一已之力改變世界,我能,我可以。當夢想的浮華散去,我發現,8年
過去,我仍站在原地。我的蓋茨
      我是從備份、恢復切入到DBA這個行業的。04年底,我們為海關做了一個專案。專案完成後,我為他們搭建了DataGuard,同時,寫了個指令碼每週未備份DataGuard。當然,在專案軟體中我也做
了個按鈕,如果需要,他們可以隨時點這個按鈕觸發對備庫的備份操作。軟體中還有個按鈕是將備庫直接啟用的,啟用之後,備庫要重搭,並且,如果Redo檔案有問題的話,啟用會丟失些資料,不
過,這個專案的資料丟掉些他們可以接受。整個這些東西,我做為了高可用、容災的方案,濃重的寫進專案文件。當然,免不了介紹的天花亂綴。哪個時代,大家對Oracle都沒有什麼概念,你只要
能把庫裝上,都會有人說你牛。客戶測試了備份、切換這些功能,再加上看了我天花亂綴的文件,對於災備方案、高可用方案非常滿意。我們領導後來得知這一情況後,專門問我是否有意轉型做DBA
,我自然沒有問題。我已經厭倦了開發,或者說,厭倦了老是為了別人的需求,開發程式。聽說DBA還算輕閒,我計劃轉做DBA,再利用剩餘時間開發自己的程式。但不可否認的是,Oracle是有它獨
特的Mei力的。隨著對Oracle學習的越來越深,我慢慢的發棄了我的開發夢。
      這一切的轉變,都是很自然的,自然到我每每想起,總覺得那是命中註定。
      數萬年間我和Oracle相遇了,沒有早一秒,也沒有晚一秒,哪也沒有別的話說,唯有說一句,原來你也在這裡。
      
      海關的專案之後,我開始考慮,如何讓使用者的資料在切換時也可以保持不丟。最後考慮的結果很簡單,就是將Redo每組中設兩個成員,每個成員都在不同的儲存上。但當時有記得有人說這樣
做會對效能有影響,即使存放日誌的兩臺儲存一模一樣。但也有人說沒有影響。我在網上查了很多資料,大家的說法,莫衷一是。最後經過測試,結論很簡單,有影響,但影響不大。對於這個結論
,我想大部分讀者也不會滿意。到底影響在什麼地方呢?
      每組中兩個成員,每個成員在不同的儲存中,儲存效能是一致的。說這種情況下寫Redo效能不會有影響的人,主要是認為LGWR會同時寫兩臺儲存中的兩個Redo檔案。如下圖所示:
 

      但是,我們考慮一點,LGWR程式只有一個,儲存有兩臺,向A儲存寫和向B儲存寫,必然是兩條語句,一個程式怎麼可能同時執行兩條語句呢。所以,上圖不對,應該如下圖所示才是:
 

      LGWR傳送命令寫A儲存中的RedoFile,不必等待寫完成(因為是非同步IO),LGWR再傳送命令寫B儲存中的RedoFile。LGWR只有一個程式,不可能同時發命令寫A儲存和B儲存中的兩個Member,只
能逐個來。但因為I/O是非同步的,向B儲存中寫Redo Member,不必等向A儲存中的寫操作結束,而是如圖中所示,有部分操作是平行的。
      從總的時間消耗上看,圖1中錯誤的理論,共耗時1.002 ms, 圖2中正確的理論,共耗時1.003 ms。當然,時間是我隨意加上去的,但對於現代的計算機系統,“發出一條命令”,“接收一個
通知”,消耗 0.001 ms 應該是過高的估計了。 寫磁碟的1 ms,應該是差不多了,大部分資料庫寫日誌的響應時間,應該都是幾ms左右的。
      通過上面兩個圖的分析,可以得出結論,讓LGWR寫兩個儲存,對效能有影響,但影響不會太大。多了圖2中最後一階段的操作:“B儲存向LGWR發出寫完成通知”。
      有了這個結果,再後面的容災架構,如果客戶要求不丟資料,我都要求客戶準備兩套一模一樣的儲存,每個日誌組的兩個Member,分別放在不同的儲存中。後來DBA逐漸增多,客戶哪裡,會有
自己的甲方DBA,對於災備系統,當我提出要兩臺一模一樣的儲存時,一些客戶會有疑問。我會詳細解釋LGWR的原理,其實,向客戶解釋的過程,也是傳播自己思想的過程。向客戶解釋的原理越多,
客戶對我的信任感也越強,後面的事情也越好辦。
      這些經歷,也直接促成了我後面的學習習慣----重視原理。雖然原理這東西很虛無,但為了更好的說服客戶、取得客戶的信任,有時我不得不向客戶解釋這些東西。
      說點題外話,總有人問研究內部有什麼用,我覺得最重要的作用就是,可以更好的忽悠客戶。
      哈哈,這是玩笑話,有用沒用看自己愛好。有興趣就去研究,沒興趣就去做別的。這個問題不必糾結。
      如果真有興趣去研究了,也一定會有回報。如果沒去研究,也可以當好一名普通的DBA。
      言歸正傳,能為客戶解釋這麼多東西,有一個網站功不可未,就是ITPUB。我05年註冊了帳號,此後,只要有疑難問題,第一時間先上PUB上搜尋。PUB成為了工作、學習必不可少的網站。但是
,我很少在PUB上發表什麼,因為我自己的功力尚不足,怕寫出錯誤的東西,耽心影響大家。但看了哪麼多好帖,從來沒有回過帖,現在想來,也讓我心中不安。於是從去年開始,我開始將這些年的
積累逐步總結出來。我相信一個道理,有一個農場主,得到了一種優良小麥種子,但他不懂得分享,只在自家的地裡種這上了這種優質小麥。收穫季節到來時,結果他的優質小麥表現並不如何的好
。他很不理解,就去請教一位專家。專家瞭解了情況好告訴他,只他自己種優質小麥,面積太小,旁邊別人普通小麥的花粉,會被傳播到他的優質小麥中,結果,影響了他的優質小麥的質量。第二
年,這位農場主將自己的優質小麥種子分享給旁邊其他的農場主。由於有了足夠大面積優質小麥的花粉,到了收穫季節,大家都獲得了大豐收。現在時間已經成熟,我會慢慢將一些心得分享出來,
希望和大家一起研究、一起進步、一起豐收。
      在乙方工作哪段時間,對於工作,我只有一點感觸。每天,我並不是為了單位而工作,我是為了自己而工作。只有自己的技能獲得提升,才是關鍵。我會選擇個別庫做為觀察物件,進行深入
、細緻的分析,以此來煅煉技能。但人的精力是有限的,再加上單位給的福利待遇也不高,所以大部分庫,只要客戶不找我,我也不去找他們。
      從07年開始,單位成立專門的資料庫運維團隊,決定讓我作為團隊的Leader。我的工作重點,從單純的技術,慢慢變成了開會,參加各種會議。有些人對此樂此不疲,但我很不習慣。大家把
活推來推去,把功勞爭來爭去。不單要開會,還要培養新人。慢慢的,一些庫分給其他人管理,使我可以專心去“開會”。很長時間裡,我無心從事技術,腦子中之想著明天要參加已經開了好多天
的某專案架構大會、要最終確定下來的某事故改進會議、……。我心目中的管理會議是這樣:
 

實際上的會議是這樣:
 


      哈哈,我承認圖有點誇張。我實在不適合做扯皮這樣的事。或許隨著我年齡的進一步增長、技術實力的進一步加強。技術上已經沒什麼可學的了,活也幹不動了。每天開開會,扯扯皮,還有
點意義。現在,這絕不是我想要的生活。古人都說,“學而優則仕”,我學還沒有優呢,如何去入“仕”呢。
      07年我技術進步緩慢,如果一直這樣下去,我不知道,如果有一天單位辭掉我了,我該何去何從。沒有了技術優勢,一個單位的中下層管理人員,你到51JOB上搜尋一下,有招聘“技術團隊管
理者”這樣崗位的嗎。而且,計算中心是事業單位,從05年開始,我就一直謀求可以轉成正式的“在編制”人員。為此,我、包括我們全家人,使用了很多方法。但是,我們的希望最後都落空了。
其實,我本來也沒抱太大希望。
      08年初,為了將來的發展,我決定辭職。這個決定或許已經有點晚了,但是,如果不馬上行動,將來只會更晚。

在阿里巴巴遇見最好的DBA團隊

      我不喜歡飄泊的生活,也不喜歡新鮮的城市。只想在我家鄉哪座著名古都中,像被固化在虎珀中一樣去生活。但我的人生卻註定要去飄泊,而且,是在三十而立之年,才剛剛開始。千萬不要
刻意去選擇自己的生活,因為你只能猜到開頭,卻猜不到結果。
      我的第一站是北京,因為有朋友說可以為我介紹工作,但這份工作是Oracle講師。我的技術還沒有達到一定水平,還需要提高。這時候去做講師,實在非我所願。我的內心的理想目標,是去
阿里系的公司:阿里巴巴、淘寶、支付寶。這些公司“大師”級的人物層出不窮,我想也應該是很多DBA的目標。但自己投簡歷過去,成功可能很小,我一向不喜歡自已投簡歷過去。所以,在09年初
,考完OCM之後,我就一直想做點東西出來。正好一個朋友找過來,於是我們合作,很快就有了“Oracle日誌挖掘研究版”這個程式。也很快的,阿里巴巴就給我打了電話。
      到阿里面試是很爽的,來回的機票、酒店全部都已經訂好,就好像到杭州來了個一日遊。我是中午到的創業大廈,先被HR領到一個大廳裡,做了一份筆試卷子,說是60分鐘,但其實沒有人在
旁邊計時,晚一會兒也無所謂。筆試題難度不高,和網上流傳的阿里巴巴筆試題差不多。做完筆試題,就是著名大師Biti的面試了。這是第一次見到Biti,個子不高,但人很精神,說話極有條理。
Biti面試時的難度也不高,大家聊的很好,就像朋友閒聊一樣。所以,這趟杭州之行,讓我覺得很完美,即來杭州旅了一次遊,又和一些朋友聊了聊技術。
      本來我計劃當天晚上就回去,Biti面試完,被告知阿里巴巴B2B的技術部老大Andy想見見我,如果我時間上沒有問題,HR會退掉當天的訂好的機票再重新訂,當晚住宿的酒店也已經安排好了。
當時很是受寵若驚,馬上告訴HR沒有問題。
      第二天其實還是有點緊張的,不知道Andy會問我什麼問題。見到Andy後才感覺,Andy人也很隨合。Andy問了兩個問題給我留下很深的印象,一是建立一個資料庫層和應用層之間的統一中間層
,對下可以支援各種資料庫是否有必要。還有一個,是如何拆分一個大資料庫為多個資料庫。
      第一個問題,我的回答的很中庸,一個可以忽略下層資料庫是什麼的中間層,對效能會有影響,對開發效率、程式碼重用率會有提升,搞一個是有必要的,對於特別要求效率地方,仍可以使用
老的方式,一般情況下,使用中間層就可以了。我估計這是Andy當時正在考慮的問題,但後來阿里巴巴並沒有大張旗鼓的搞這麼個東西,我想Andy最終還是認為搞這個東西意義不大。
      第二個問題,拆分資料庫的方法,我曾經主導過一個大庫的拆分,要求應用的每張表,都有主鍵。然後就像HASH分割槽一樣,以每個表的主鍵為準,將資料做個HASH運算,分佈到多個庫中,我
直接把我做過這個專案詳細說了一下。也是後來我才知道,原來阿里巴巴這邊剛剛做過一個大表的拆分,拆分方法和我說的類似。
      上午的面試很快就過去了,我專門讓HR幫我訂晚點的機票,這樣,下午有時間去西湖遊覽一下。
      這次杭州之行,給我的感覺是,杭州不錯,面試很愉快,但叫車很難。下午在西湖邊叫車,用了好久。後來才知道,在哪個時間點叫車,能打到已經是運氣了。
      兩個月後,我告別待了10個月的北京,來到杭州,入職阿里巴巴。
      
      中國的大型網際網路企業,有很多相似之處。比如說一樣有入職培訓,一樣每年有年會,一樣的有Outting,一樣的嘴上說一套、底下做一套。比如公司一直在講誠信,但在出了一些事情之後,
從公司發給我們員工的郵件來看,沒有看到誠信二字。但這很正常,在我們國家,到我這個年齡,如果還相信公司說的什麼或老闆說的什麼,哪腦袋就真有點問題了。
      阿里的入職培訓和其他公司一樣,講一講企業文化,再把人拉到戶外做做擴充運動,結束,沒有持續性。和我一起參加入職培訓的有幾十人,半年內有差不多三分一離開公司,一年內大概只
剩三分之一留在公司。我和另外兩個入職培訓時認識的朋友合租一套三室兩廳,一年後,他們都走了,只剩我自己獨住一大套房子。大家來阿里的目的很簡單,渡金。我的室友之一,半年後順利跳
到了teradata。另一個是做客服的,一年後跳到另一個規模略小的網際網路公司,做了客服經理。當然,我到阿里,最大的目的並不是渡金,而是學習。我的目標是成為Oracle大師,阿里孕育了哪麼
多Oracle大師,到了阿里,我就和目標接近了。
      但可能是我在面試時忽悠的有點過了頭,阿里給了我一個很高的級別:高階資料庫專家。這既讓我興奮,又讓我感到無比大的壓力。在我入職時的09年,整個集團的技術人員,達到這個級別
、和這個級別之上的,不過幾十人而已。在B2B,高階專家之上的,只有十幾個人。我們DBA團隊中,只有一個人比我級別高,就是Biti。這讓我的壓力,稍微小了點,有什麼大事,我前面至少還有
Biti在扛著。但是,一個月後,Biti就調到支付寶。我成了阿里巴巴B2B級別最高的DBA。一下子變成了“首席DBA”,我內心深入無比激動,但是,這也讓我無比害怕。
      來到阿里,我對自己的定位是學習、經歷,我的目標,是成為技術大師,我從不會改變這個目標。但公司對我的期望,顯然不是這樣的。但這沒有關係,這並不會防礙我學習。
      在阿里的日子過的很快,好像回到了上學時代。每天三點一線,上班、到食堂、下班。DBA團隊是我見過的最好的團隊,幾位領導對每個人都很負責,誠心實意的為每個人著想,努力為每個人
提供發展機會。大家之間沒有爭搶,沒有鉤心鬥角,只有努力的做好事情。很高興在這裡渡過了快樂的近三年時光。在此,對領導、對團隊中每個兄弟表示感謝。阿里的資料庫維護水平,自然是沒
得說的,用一句通俗的話來形容,我就像掉到了水中的海綿,如痴似渴的吸收著養份。
      我到公司時,MySQL剛剛在公司有第一例非常成功的案例。之後的幾年間,公司的MySQL團隊從無到有,迅速壯大,MySQL的應用也是遍地開花。再之後NoSQL如同悽美的曇花,匆匆一現,卻也
給公司內Oracle的應用帶來不小的震動。對於開發,Oracle有如過街之鼠,幾乎人人喊打。之後,一切又都歸於平靜和理性。NoSQL出局,MySQL重點發展,去Oracle已成必然。從11年開始,我也面
臨艱難轉型,根據公司情況,我決定轉型到GreePlum資料倉儲。但轉型是困難的,幾本大部頭的書,一看就困。Oracle是越學越精神,一看GreePlum就瞌睡。數次不眠之夜的深思,我決定放棄轉型
。我知道這對我來說意味著什麼,放棄轉型,也意味著要放棄這份工作。 雖然我很喜歡團隊的氛圍,我對團隊戀戀不捨,但我仍將堅持我的方向。11年夏天,我開始籌備我的下一份工作,並計劃在
12年春節的時候離開。


阿里巴巴二三事

      在阿里,我見識到了Biti留下來的管理制度與管理水平。我們的資料庫,很少出莫名其妙的問題。按照托爾斯泰的說法,好的資料庫個個相似,差的資料庫各有各的不同。好的資料庫,無外
乎效能尚可,有完善的備份恢復和高可用機制、並定期測試,很少奇奇怪怪的問題,絕大多數報錯、效能曲線的波動都可以找到原因,等等。差的資料庫總有千奇百怪的問題、林林總總的報錯、莫
明其妙的當機。
      其實,達到阿里資料庫的管理水平,DBA只做了一間事,就是更加關心自己負責的庫。
      每次效能曲線的波動,都要找到原因,甚至定位到SQL。對於新上線的SQL語句,進行嚴格的審查。對於大操作,格外小心。Statspack、AWR報告,要觀注、觀注、再觀注。基本上也就這些了
吧。我把這種管理模式,叫做精細化管理。
      說到這裡,我想起了一件事,姥姥家住在一條古老的小巷裡,在小巷南口,相隔不遠有兩家買鍋葵(一種麵餅)的,但一家門庭冷落,另一家則客流不斷。很多人寧願多花點時間排隊,也要
買另外一家店的鍋葵。有一次,我跟一位住在這塊的老表談起這事,為啥一家店生意清冷,另一家店生意興隆。我老表很鄭重的告訴我,“這就是用的功夫不一樣。”我霎時間明白了。
      當然,我見到過很多乙方公司的DBA,每個人要管幾十個庫,在這種情況下,根本無暇顧及什麼效能指標、AWR報告,只要資料庫不當、只要客戶不主動來找就行了。不出事情,哪有什麼功夫
去看AWR報告什麼的。至於乙方的這種管理方式,我先稱之為粗獷化管理。
      這種粗獷化管理試,也是國情所定,我們無法改變環境,但我們可以改變的,是我們自己。我有一個朋友,初中同學。初中時學習不好,技校畢業。畢業後在工程公司做技工,其實幹的活和
民工沒有差別。在體驗到現實的殘酷後,他沒有被生活磨平楞角,反而越戰越勇,真正的奮鬥起來。他的目標是考取註冊監理師認證,很自然的,這個目標成了很多人茶餘飯後的笑料。不是說這個
目標多不現實,而是,就算你考上了註冊監理師,又能怎樣呢?你怎麼才能找到第一份監理師的工作呢?就算有證書,誰肯要一個民工做監理師呢?
      面對嘲笑,我們唯一能做的事,就是努力堅持自己的方向,不要去做無謂的爭辨。在幹完一天煩重的工作後,他回去還要挑燈夜讀。幾年的堅持,他終於考上了註冊監理師。就在為第一份監
理師工作發愁時,機會不期然而至,工程公司的一個朋友將他推薦到另一個公司。雖然乾的活和民工沒區別,但他是技校畢業,算是技工,底層實踐經驗豐富,又有了註冊監理師證書,他成功的跳
到另一個工程公司,成為監理師。輕鬆完成了從民工到工程師這個華麗的脫變。而且,一切又都是如此的自然而然。兩年後,他又跳到北京一家更大規模的公司。公司將他派到新Jiang,在工地上,
他巧遇以前的同事,他們還在頂著風沙,在工地上辛苦的工作。目前,他正在自學英語,他的計劃是希望跳到外企。我相信他一定可以成功。
      自助者天必助之,古人的經驗之談,難道都是騙人的嗎。
      相信有些乙方的DBA也在痛苦中迷茫,如何在粗獷化管理中,實現自己職業生涯的突圍。我建議呢,可以選一兩個庫,以提升自己水平為目標,進行精細化管理。關注這一兩個庫的細節,你會
發現,水平可以更快的增加。
      在阿里,我的第一次事故,讓我記憶深刻。那是一次加節點操作,前期操作已經成功,最後一步在執行rootaddnode.sh指令碼時,中途出錯,導致OCR資訊被損壞,所有節點全HANG。進行OCR恢
復後,才恢復正常。原因非常奇怪,rootaddnode.sh要呼叫srvctl向OCR中寫入新節點資訊,而srvctl因為缺少個包,執行失敗異常退出了,OCR資訊也被寫壞了。
      在進行這次加節點操作前,我在虛擬機器中反反覆覆測試,做了大量的準備工作,但沒想到,最終還是出了大事故。
      從這件事後,我再做其他操作都更加仔細,特別是RAC。RAC下操作總會呼叫這個哪個一堆的指令碼,我會先把指令碼看一下,大概瞭解這些指令碼都乾點啥。就像加節點,我會先呼叫Srvctl config
命令,顯示一下配置資訊。如果可以顯示成功,再進行加節點操作。
      “不要在週五做重要的事情,這會讓你整個周未都沒有好心情”,這是這次加節點操作給我留下的另一個忠告。
      在阿里最深刻的,還是職場之道給我的震撼。在此,引用一位PUBER的發帖:
A同學,遇到問題,召集會議寫報告搞風險評估,鳳鳳火火,完事後到處彙報心得,各部門都知道了資料部的功勞。
B同學,遇到問題,默默一個人搞定。

這B同學確實厲害,很多問題都獨立搞定,A同學連oracle的pga是啥都不知道,但他就是跟公司的高手們關係好,會求助,會推動。
當你有一天聽到領導們背後議論A和B的時候,你會發現,他們一致都比較欣賞A。為什麼他們會欣賞A呢?不是B是高手麼?因為領導們已經長期不做技術了,觀察人更喜歡觀察人的溝通協調能力,像
B默默搞定問題,誰也不知道是咋回事,還以為這問題很簡單呢。結果呢?B鬱悶離職。。。職場故事無新鮮事,類似故事每天都在發生。
      以前一直以為是故事,直到見到一個活生生的、傳奇般的“A同學”。除了這位Puber提到的,我覺得“A同學”一般還要有一個特長,就是會起名字。一個普普通通的架構,起個好名字,簡值
是有化腐朽為神奇的作用啊。
      看一些中央領導的簡歷,升遷之迅速,往往讓我驚歎。很多人不惑之年,都做到了高階領導,擁有數套房子和無數個情人,成功進級高帥富他爹。我一直很奇怪,人家都是怎麼玩的。自從見
過“A同學”後,我瞭然了。“A同學們”的成功是很迅速的,他們身輕如燕,稍有青風拂過,便能乘風而起,一飛沖天。
      “A同學們”也要有一定的能力,這是基礎。但是,和他們的綜合實力相比,他們的能力可以忽略不記。
      他們可以把GDP搞的很高,但不會把國家搞的很強。
      如果一個集體、一個部門甚至一個國家,越來越弱,那一定是“A同學們”太多了。
      “A同學”後來跳到另一巨頭民企擔任很高的職位,依舊是風聲水起、威風八面,於是我就知道,哪家民企的發展是到頭了。如果以釋伽“成、住、壞”三階段發展論來講,個人認為哪家民企
的“成”階段已經過去,進入“住”階段,如果沒有“B同學”大量加入,數年之後,或許就是“壞”階段了。
      個人認為,單以職場發展來論,“A同學”值的效仿。現在的職場,好像春秋戰國,即使你所待的“國家”,已經進入“壞”的階段了,沒關係,換一個國家就是。就像春秋戰國時一位“士”
人的言論,是當大王、諸候好呢,還是做大臣好呢。當然還是大臣好。一個國亡了,王的結局只有死,但大臣呢,換個地方再做大臣就行了。“A同學們”,永遠會受到市場追捧的。他們就像漆黑中
的螢火蟲,那樣的鮮明,那樣的出眾,那樣的拉轟。
      但我向來沒有“A同學”的能耐,只能向“B同學”學習了。
      將來做企麼無所謂,有一點很關鍵,就是要認清自己的方向,這很重要。做管理?做技術?都行,這世界上有靠管理成功的,也有靠技術發家致富的。
      你的目標可以是成為管理者、領導,但不能是“成為好逸無勞又掙錢”的人。不要幻想著每天什麼活都不幹,上班喝喝茶、扯扯蛋,每月工資高的讓我們這些矮窮醜聽到都嚇的尿褲子。這樣
的境界,是要有上一代打下基礎才行。如果你進了ITPUB這個論壇,又看到我這篇文章,這足以證明你上一代沒什麼基礎,就不要再做夢了,趕快起來跟我一起用DTrace+GDB研究Oracle原理才是正事

      要想成為管理人員,或是領導,無外乎三種途徑:
1、在公司混久了,跟著上級、甚至公司創業者一起打天下,有資歷。走這條路,要看運氣,跟對了人就行。
2、潛心研究技術細節,深入鑽究技術,成為大牛,轉而成為領導。這就是學而優則仕了。
3、有關係,家人在有關部門任職。

      如果你發現自己沒有跟對人,也沒有關係,要想成為領導,哪就走第二條路吧。我知道很多優秀的領導,都是這樣走過來的。比如我們團隊的頭,還有Biti,都是如此。其實,就連我所提到
的“A同學”,現在的某網際網路巨頭企業中高階管理人員,也是如此走過來的。
      大多數離職的人對以前待過的公司都是頗有微詞的。也是啊,如果不是因為待著不爽,誰願意走呢。但我對阿里,感覺還是非常好的。因為阿里,我來到了杭州,在錢江之畔,生活了近3年時
光。在阿里,我終於實現了我的目標----讓技術更上一層樓。三年時光匆匆而過,正如一部電影所說,年華就是如此,當你不再擁有,你唯一可以做的,就是令自己不要忘記。
尾   聲



      站在遠處,最後看了一眼雨中阿里巴巴園區漂亮的大樓,我生命的這一階段已經過去。這是我生命中目前為止收穫最多的一個階段,感謝阿里、感謝我們的團隊。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29475508/viewspace-1256237/,如需轉載,請註明出處,否則將追究法律責任。

相關文章