Oracle 傳奇
與其他知名軟件公司創(chuàng)業(yè)者多是技術(shù)精湛的開發(fā)高手不同,Oracle創(chuàng)始人Larry Ellison并非在技術(shù)上有什么獨(dú)特創(chuàng)新或者過人之處,這和微軟的Bill Gates、Google的Larry Page,國內(nèi)知名公司如百度的李彥宏、網(wǎng)易的丁磊有差異,但這并不影響Oracle成為一家偉大的公司,甚至一度是大型數(shù)據(jù)庫的代名詞。
1.起源如今Oracle數(shù)據(jù)庫占據(jù)著整個(gè)數(shù)據(jù)庫軟件領(lǐng)域近一半的市場份額,在大型數(shù)據(jù)庫領(lǐng)域更是影響力巨大。關(guān)于Oracle數(shù)據(jù)庫的故事要從1970年的6月,IBM公司Edgar F. Codd發(fā)表的那篇論文“大型共享數(shù)據(jù)庫的關(guān)系模型”(A Relational Model of Data for Large Shared Data Banks)談起,正是這篇論文拉開了關(guān)系型數(shù)據(jù)庫的大幕。當(dāng)時(shí)在行業(yè)中受歡迎的還是層次型數(shù)據(jù)庫軟件,并且最著名也最典型的層次型數(shù)據(jù)庫系統(tǒng)就是IBM公司的Information Management System(IMS),有意思的是,當(dāng)時(shí)IBM并沒有預(yù)見到職員Edgar F. Codd發(fā)表論文后會帶來一股新的潮流,這股潮流雖然不會將其徹底葬送,但是卻直接導(dǎo)致其數(shù)據(jù)庫領(lǐng)域第一的寶座不保。 話說1977年6月,Larry Ellison跟合伙人Bob Miner和Edward Oates(這兩個(gè)人也是Larry一生中最重要的合作伙伴,其中Bob Miner還曾是Larry的老領(lǐng)導(dǎo),這位仁兄絕對是位技術(shù)天才)一起在美國硅谷創(chuàng)建了一家計(jì)算機(jī)公司——Software Development Laboratories(SDL)。公司創(chuàng)立之初,Bob Miner任總裁(還是Larry Ellison的領(lǐng)導(dǎo),雖然Larry持有新公司60%的股份),Edward Oates任副總裁,時(shí)年已經(jīng)32歲的Larry依然默默無名(讀了三所大學(xué)都沒能畢業(yè)),只是一個(gè)普通的軟件工程師,并且因?yàn)槭芟抻诤贤瑔栴}還在另一家公司上班。 不過,沒過多久他們就招來了第一名員工Bruce Scott,這可是一個(gè)重量級人物,擁有著紀(jì)念意義的名字,所以必須在這里提及。接觸過Oracle數(shù)據(jù)庫的朋友是否還記得Oracle數(shù)據(jù)庫中的一個(gè)默認(rèn)用戶SCOTT,沒錯(cuò),就是這個(gè)Bruce Scott,而SCOTT用戶的密碼tiger,是當(dāng)時(shí)Scott養(yǎng)的一只貓的名字。你看看,誰說程序員不懂得生活。Scott那真是相當(dāng)有藝術(shù)、有品味、有激情、有愛心哪,用本山大叔的話講,那是相當(dāng)有才。 創(chuàng)建初期,他們主要與其他公司合作進(jìn)行開發(fā)(按照今天的流行詞匯,叫外包),哥幾個(gè)在三十年前就預(yù)見到這行不好干,費(fèi)時(shí)費(fèi)力還不一定掙得著錢。他們覺著最省事的方式就是只開發(fā)一套程序,然后在市場上反復(fù)賣、反復(fù)數(shù)錢就行了,因此他們決定從事通用軟件的開發(fā)。不過,此時(shí)他們還沒有想好具體做哪方面軟件,直到他們看到了Edgar F. Codd的那篇論文,以及其他幾篇與關(guān)系型數(shù)據(jù)庫相關(guān)的文章。 當(dāng)然,在后來所有描述Oracle公司發(fā)展歷史的文章中,關(guān)于這個(gè)決定的描述,都一致認(rèn)為當(dāng)時(shí)Ellison預(yù)見到了數(shù)據(jù)庫軟件的巨大潛力(是否真是如此?我不知道,但是我認(rèn)為這就是趕上了機(jī)遇),于是,他們將開發(fā)的方向定為可用于商業(yè)應(yīng)用的“關(guān)系型數(shù)據(jù)庫管理軟件”(簡稱RDBMS,一定要記住這個(gè)詞,至今Oracle已經(jīng)升級到了11g,但是其程序目錄中仍然有一個(gè)rdbms目錄)。 此時(shí),另外幾個(gè)傳奇公司,微軟已于兩年前,即1975年成立,Bill Gates,這位Larry Ellison視為最強(qiáng)對手的技術(shù)天才(與Larry Ellison不同喲,Bill Gates可是個(gè)真正的技術(shù)高手)還憋在自己家的車庫中琢磨著寫MS-DOS1.0。而蘋果也于一年前,即1976年成立,Steve Jobs跟他的合作伙伴Steven Wozniak也還在自己家的車庫中研制蘋果I號。 這三個(gè)如今在業(yè)內(nèi)影響力巨大的公司,雖然產(chǎn)品、理念、文化幾乎完全不同,但卻有著近乎同樣的成功模式,創(chuàng)立者中都有一個(gè)技術(shù)天才和一個(gè)偏執(zhí)狂一樣的人物,比如微軟的Bill Gates有Paul Allen,蘋果的Steve Jobs有Steven Wozniak(也是個(gè)當(dāng)之無愧的技術(shù)奇才),而Larry Ellison有Bob Miner。 再回到SDL,1979年,其更名為Relational Software INC.,簡稱RSI,畢竟一個(gè)公司起名叫什么實(shí)驗(yàn)室還是不太合適,甭管它究竟實(shí)驗(yàn)什么。為了突出自己的產(chǎn)品,RSI在1983年又再次將公司改名為Oracle(Oracle System Corporation),既是公司名也是產(chǎn)品名,這個(gè)名字源自于他們曾為中情局做過的一個(gè)項(xiàng)目的名稱,也是他們于1979年推出的第一版產(chǎn)品的名字,字典中對該詞的解釋有“神喻”的含義(看過黑客帝國?對,象征意義都是一樣的,說明老外起名也要講究吉利,得天時(shí)之類寓意)。 如今的Oracle用戶眾多,影響力巨大,但在當(dāng)時(shí)不過是個(gè)不知名的小企業(yè)和不知名的數(shù)據(jù)庫軟件,1979年RSI發(fā)布了可用于DEC公司的PDP-11計(jì)算機(jī)上的商用Oracle產(chǎn)品,雖然推出的產(chǎn)品是第一個(gè)版本,但基于市場策略和商業(yè)銷售方面的考慮,RSI公司宣稱這是該產(chǎn)品的第二版,但實(shí)際上就是第一版,不過這也正是Larry Ellison高明的地方,直接將新推出的產(chǎn)品定義為第二版,打消了用戶認(rèn)為第一版不夠成熟的顧慮。事實(shí)證明,這一策略確實(shí)有效(對比看看,現(xiàn)在是2009年,如果說當(dāng)前發(fā)布的初始軟件版本仍然從1.0開始,并且這還是業(yè)內(nèi)潮流的話——Beta版咱們就不說它,不得不說,1979年時(shí)的Larry Ellison在產(chǎn)品營銷上起碼領(lǐng)先國內(nèi)30年)。不過這個(gè)版本基本上就是個(gè)玩具,除了做些簡單的關(guān)系查詢外,什么也做不了。 Oracle數(shù)據(jù)庫最初的兩個(gè)用戶是美國中央情報(bào)局和海軍情報(bào)所,在那個(gè)時(shí)代不同機(jī)構(gòu)往往同時(shí)用多種計(jì)算機(jī),而且也沒有軟件可移值性之類的概念,20世紀(jì)70年代末期和80年代早期的軟件,一般都設(shè)計(jì)成在單一操作系統(tǒng)上運(yùn)行,因此很快就遇到新的需求:Oracle能不能在不同的操作系統(tǒng)上運(yùn)行?用戶提出的需求,迫使Ellison和Miner作出了重要的決定:Oracle第三版全部用C語言開發(fā)。這在當(dāng)時(shí)是有風(fēng)險(xiǎn)的,C語言也是剛剛推出,但最終他們獲得了成功,因?yàn)樗袡C(jī)器都能支持C語言,而且C編譯器便宜且有效,還擁有很好的移植性,因此Oracle又擁有了一項(xiàng)關(guān)鍵特性,即“可移植性”。 此后,Larry Ellison便向客戶宣稱Oracle能運(yùn)行在所有的機(jī)器上,雖然這到現(xiàn)在都不可能實(shí)現(xiàn)(Oracle公司目前宣稱的是能夠在100多種不同的計(jì)算機(jī)上運(yùn)行,沒說所有的喲),但必須承認(rèn),這也是非常聰明的市場策略,那個(gè)年月還沒有PC這個(gè)概念,各種大型計(jì)算機(jī)和操作系統(tǒng)都不一樣,因此大的機(jī)構(gòu)通常更愿意購買一種能通用的數(shù)據(jù)庫(如果有的話)。此時(shí)的Larry Ellison絕對算得上大話王,這哥們完全將市場放在第一位,堅(jiān)信較早占領(lǐng)大塊的市場份額才是最重要的,因此雖然早期版本的Oracle幾乎無法正常工作,到處是Bug,程序錯(cuò)誤很多,用戶也抱怨不斷,但有意思的是Oracle公司的早期用戶似乎不在意損失金錢和數(shù)據(jù)(FBI都沒意見),Larry Ellison也只管持續(xù)不斷吹噓,同他們描述產(chǎn)品將能達(dá)到的美好功能(雖然現(xiàn)在沒有)。如果Larry Ellison擁有匹諾曹血統(tǒng)的話,美國就不用研制航天飛機(jī)、宇宙飛船、運(yùn)載火箭了,想去月球的話順著他的鼻子向上爬就行了。幾年后,Ellison總結(jié)了公司早期對待客戶的態(tài)度:“喏!這是我們的軟件,拿去用吧!敢不敢?” 2.發(fā)展Oracle的第三個(gè)版本(實(shí)際是第二版,后面再說到版本號就不再強(qiáng)調(diào),大家知道是怎么回事兒就行了)在1983年3月推出,除了增加了可移值性的特性外,在軟件方面最重要的改進(jìn)是引入事務(wù)的概念,即SQL要么成功、要么失敗,取決于事務(wù)是否提交;同時(shí)還引入了另一關(guān)鍵特性——寫不阻塞讀(通過回滾段中的數(shù)據(jù)實(shí)現(xiàn)查詢和回滾事務(wù),避免了讀鎖定),對于大訪問量、高并發(fā)的應(yīng)用,這點(diǎn)非常重要。因?yàn)檫@一特性,想要在Oracle中實(shí)現(xiàn)讀鎖是非常麻煩的(即使你主動(dòng)希望實(shí)現(xiàn)這一功能,不過,應(yīng)該不會有這樣BT需求吧)。 時(shí)隔一年多,Oracle于1984年10月推出了第4版。在這一版本,穩(wěn)定性有不小的提升,用Miner的話說就是達(dá)到了“工業(yè)強(qiáng)度”,Miner的話還是靠譜的,起碼比Ellison靠譜,不過盡管如此,還不足以達(dá)到令人滿意的地步。這一版最重大的改進(jìn)是增加了讀一致性(Read Consistency)的特性(即一個(gè)會話修改數(shù)據(jù)時(shí),只要不提交,其他的會話就看不到這項(xiàng)修改,要記住這個(gè)概念,這是Oracle極重要的特性之一)。雖然說產(chǎn)品始終不夠健壯,但銷售人員表現(xiàn)出色,這一年Oracle公司總收入達(dá)到1270萬美元,其中表現(xiàn)最出色的自然是Larry Ellison(確實(shí)能吹),比如有一次Ellison聽說其當(dāng)時(shí)最大的競爭對手Ingres發(fā)明了一種新技術(shù)——分布式查詢,沒過幾天Oracle就刊登廣告發(fā)布了SQL之星:第一個(gè)分布式查詢數(shù)據(jù)庫(其實(shí)并沒有這樣的產(chǎn)品)。 Ellison就是這樣,想象著產(chǎn)品應(yīng)該怎么樣,然后再去實(shí)現(xiàn),因此在宣傳Oracle的時(shí)候總是夸大其詞(貌似至今未改),但他就是能把軟件賣出去,而且還賣得不錯(cuò),這點(diǎn)實(shí)在讓人驚奇。中國有句古話說的是“男怕入錯(cuò)行”,Larry Ellison大師親身向我們證實(shí)了這句中國古老諺語的正確性,比起之前干軟件開發(fā)時(shí)的慘淡,他做銷售可謂風(fēng)生水起。 1985年4月,Oracle發(fā)布了第5版,據(jù)稱這也是首批支持Client/Server模式運(yùn)行的RDBMS產(chǎn)品,而且一年后發(fā)布的5.1升級版,終于新增了分布式查詢功能(還算不錯(cuò),最終還是實(shí)現(xiàn)了的,雖然晚了兩年),即一次查詢、訪問存儲于多個(gè)位置上的數(shù)據(jù)。當(dāng)時(shí)Oracle主要競爭對手是Ingres數(shù)據(jù)庫,由Berkeley大學(xué)的Michael Stonebraker教授負(fù)責(zé)設(shè)計(jì),當(dāng)時(shí)Ingres數(shù)據(jù)庫的市場份額增長速度甚至比Oracle還要快。幸運(yùn)的是,關(guān)鍵時(shí)刻又是IBM伸手拉了Ellison一把,這回也不是主動(dòng)的。 鑒于Ingres的高速發(fā)展,IBM擔(dān)心其把所使用的查詢方式QUEL變成標(biāo)準(zhǔn),會對自己的SQL形成重大威脅。Ingres使用的QUEL(Query Language,查詢語言)查詢方式和IBM的SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)大不相同。QUEL由Stonebraker教授發(fā)明,在某些地方甚至優(yōu)于SQL。IBM多番思量后,決定把SQL提交給數(shù)據(jù)庫標(biāo)準(zhǔn)委員會。這就讓Oracle找到了機(jī)會,因?yàn)镾tonebraker教授并不打算把QUEL提交給數(shù)據(jù)庫標(biāo)準(zhǔn)委員會(教授多是學(xué)院派,壓根就不認(rèn)同這種標(biāo)準(zhǔn)化的行為,反而覺著這種方式將會扼殺新技術(shù)的發(fā)展)。于是,Ellison借助這個(gè)天賜良機(jī),大力宣揚(yáng)Oracle與IBM的兼容性。 同時(shí),Ingres還犯下了一個(gè)致命的錯(cuò)誤,很晚才開發(fā)PC上運(yùn)行的版本,而Ellison和Bill Gates一樣都看到了PC市場的巨大潛力,因此Oracle在4.0時(shí)就有了PC上運(yùn)行的版本(雖然實(shí)際上沒啥用),這讓Ellison再一次掌握了宣傳利器:Oracle能夠運(yùn)行在PC上,Ingres卻不能(弱化對手優(yōu)勢,化解自己弱勢是他們最拿手的本領(lǐng)),再加上Oracle公司銷售上的強(qiáng)勢,以及Ingres過分關(guān)注技術(shù)而不關(guān)心市場的學(xué)術(shù)化運(yùn)作方式,最終,SQL在1986年正式成為了工業(yè)標(biāo)準(zhǔn)。而Ingres……你聽說過這家公司嗎? 1986年3月12日,是Oracle公司歷史上不可忘卻的一天,其股票以每股15美元上市,當(dāng)日收盤價(jià)為20.75美元,公司市值達(dá)到2.7億美元。24小時(shí)之后,即3月13日,微軟以每股21美元的價(jià)格上市,收盤時(shí)則上漲到28美元,公司市值達(dá)到7億美元,是Oracle的近3倍。Oracle的上市給Ellison帶來了9300萬美元的身家,但第二天微軟上市后,Bill Gates擁有的股票市值超過了3億美元,Oracle和Ellison在短暫的閃亮登場后,就開始長久地籠罩在微軟和Bill Gates的陰影之下,從這一天(這可能也是Ellison敵視微軟的開始)起,這兩家同樣極其成功的公司就難分難解地聯(lián)系在一起。、 3.挫折1988年7月Oracle公司推出了6.0版本,這一版中最重要的改進(jìn)是引入了行級鎖(Row-Level Locking,之前最小粒度也是表級鎖),與延遲寫入(Deferred Writes)功能,同時(shí),這一版還開始提供PL/SQL(程式化的編程語言,比如寫的過程、函數(shù)等都是通過PL/SQL實(shí)現(xiàn)。注意這個(gè)版本只是開始提供PL/SQL語言的支持,但還沒有包、函數(shù)、過程、觸發(fā)器等特性),并開始提供對聯(lián)機(jī)熱備份的支持,這樣數(shù)據(jù)庫執(zhí)行備份時(shí)就不再需要停機(jī)。綜合來看,Oracle可說是當(dāng)時(shí)最強(qiáng)大的數(shù)據(jù)庫軟件,不過,由于6.0版本這個(gè)先天不足的早產(chǎn)兒出生,Oracle遭遇了歷史最為黑暗的一段發(fā)展時(shí)期。 在這里,我們不得不再次感嘆Larry Ellison非凡的口才,新版本推出后很多用戶都是迫不及待地開始使用。但是,由于Oracle內(nèi)部測試流程極其簡單,新版本上市前沒有充分地測試,事實(shí)上這個(gè)工作反而是由用戶幫著完成(使用過程中被動(dòng)測試),因此,一旦面世,問題瞬間就像山洪般暴發(fā)了。這段灰暗的歲月,一直到6.0.27版本發(fā)布,產(chǎn)品質(zhì)量趨于穩(wěn)定后才告結(jié)束(從版本號上看,已經(jīng)至少經(jīng)歷了27次修改)。有意思的是,這期間用戶流失很少,因?yàn)榇蠖鄶?shù)人不想重寫相關(guān)應(yīng)用程序,而且對于大型數(shù)據(jù)庫而言,更換數(shù)據(jù)庫軟件費(fèi)用極其高昂,因此只能依賴Oracle(目前也還是這樣,上了賊船,再想下來可就難了)。還有一點(diǎn)要注意,Oracle 6.2版首先在DEC VAX平臺上引入了Oracle Parallel Server(OPS)的選項(xiàng),即RAC的前身(另外,Oracle公司從未正式對外發(fā)行6.1版)。 軟件本身質(zhì)量問題只是一方面,更嚴(yán)重的問題是Oracle公司內(nèi)部管理混亂。從1977年創(chuàng)立到1990年,Oracle銷售額幾乎都保持了每年1倍以上的增長,但公司的財(cái)務(wù)和銷售管理十分混亂,銷售人員為了完成任務(wù)得到提成,大量簽訂無法收款的合同,甚至有人弄虛作假,合同執(zhí)行情況也無人過問,以至于現(xiàn)金流量是負(fù)值。Larry Ellison高薪聘請高級管理人員整頓公司時(shí)發(fā)現(xiàn),1990年第三財(cái)政季度有1500萬美元的銷售合同無法執(zhí)行。這樣一來,季度銷售額雖達(dá)到創(chuàng)記錄的2.36億美元,但利潤只增長了1%,距離預(yù)期相差甚遠(yuǎn)。消息公布第二天,Oracle的股票從25.38元跌到了17.5元,損失了30%的市值。 為了度過危機(jī),Oracle解雇了10%的員工。但隨后的兩個(gè)季度情況變得更糟,Oracle股票價(jià)值一落千丈,10月底的收盤價(jià)僅為5.38美元,公司的前景暗淡甚至面臨破產(chǎn)。在最艱難的時(shí)期,Ellison幾乎放棄不變賣股票的信心,事實(shí)上他一度是靠貸款維持自己的奢侈生活(要知道,春天的時(shí)候,Ellison擁有的股票價(jià)值還近10億美元,但入了冬之后市值就只剩下1.6億美元)。當(dāng)然,Ellison最終還是沒有賣掉自己手里的股票,這也足以證明他確實(shí)熱愛自己的公司并一直懷有信心。 1991年,Oracle中國公司正式成立,公司名稱為“北京甲骨文軟件系統(tǒng)有限公司”。從這天開始,如果你碰到某人自我介紹說“我是甲骨文的”,千萬別以為是某研究機(jī)構(gòu)出來的,或者是碰到了現(xiàn)實(shí)版的穿越時(shí)空的人物,對方有可能只是某家數(shù)據(jù)庫軟件公司的外企機(jī)構(gòu)職員。 4.興旺1992年6月,Oracle終于發(fā)布了第7版,這是一個(gè)功能完備的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),讓Ellison有了真正的王牌(好幾年前,Ellison就已經(jīng)在宣揚(yáng)此版本中的一些特性)。更為聰明的是,第7版在上市前多方面聽取了用戶意見,并重點(diǎn)進(jìn)行了大量而細(xì)致的測試,避免了重蹈上一版本的覆轍。此外,這一版及后續(xù)升級的小版本中增加了很多對后來版本影響巨大的特性,下面列舉幾個(gè)三思認(rèn)為較重大的修改:
接下來,Oracle 7.1在1994年5月推出,主要增加下列重要特性:
1995年5月推出Oracle 7.2,主要增加下列重要特性:
1996年2月再次推出Oracle 7.3,主要增加下列重要特性:
在Oracle整個(gè)歷史中,第7版擁有非常重要的意義。從上述增加的重要特性中也可看出,N多現(xiàn)在非常知名的高級特性,其前身均是從這個(gè)版本開始嘗試提供。而Oracle公司內(nèi)部經(jīng)過這幾年管理上的加強(qiáng),也逐漸步入健康發(fā)展的軌道。 到1996年年底,Oracle公司的年銷售額已經(jīng)達(dá)到了42億美元,但是Larry Ellison并不滿足,同樣是靠軟件吃飯的公司,眼瞅著幾乎同時(shí)起步的Bill Gates雄據(jù)全球首富寶座,而Oracle公司反而在經(jīng)歷了最初的輝煌之后漸漸沉默(甚至幾乎徹底完蛋)。你讓我不爽,我就折騰你!Ellison在打擊對手方面可謂絕頂高手,在1995年巴黎舉行的歐洲信息技術(shù)論壇會議上,Larry Ellison介紹了網(wǎng)絡(luò)計(jì)算機(jī)(Network Computer,NC)的概念:配置簡單,充分利用網(wǎng)絡(luò)資源的低價(jià)電腦,沒有軟盤和硬盤,因此不需要操作系統(tǒng),其重點(diǎn)在于不需要微軟的操作系統(tǒng),只要打開電源用瀏覽器連網(wǎng),就可以獲得信息。不過Bill Gates在隨后的發(fā)言中表示,他認(rèn)為Ellison提出的網(wǎng)絡(luò)計(jì)算機(jī)沒有任何價(jià)值,只是大型機(jī)啞終端的翻版。 這一天的勝利最終仍然屬于Ellison,作為一個(gè)如此拉風(fēng)的男人,無論走到哪里都是眾人矚目的焦點(diǎn),就好像黑夜中的螢火蟲那樣炫目!關(guān)于網(wǎng)絡(luò)計(jì)算機(jī)的報(bào)道出現(xiàn)在所有報(bào)刊的主要版面上,Oracle公司借助這一事件,不但吸引了足夠多的人的眼球,也展示了其網(wǎng)絡(luò)的巨大信心。大眾對于網(wǎng)絡(luò)計(jì)算機(jī)的評價(jià)不一,大型公司和機(jī)構(gòu)對網(wǎng)絡(luò)計(jì)算機(jī)有所認(rèn)同,起碼其管理成本應(yīng)該能降低不少;但反對者也不是沒有,微軟就更是表現(xiàn)得不屑一顧(老板都發(fā)話了,底下的人也得趕緊出聲響應(yīng)?。④涁?fù)責(zé)技術(shù)的副總裁就表示:“人們想要電腦提供越多的功能,而不是越少。網(wǎng)絡(luò)計(jì)算機(jī)根本不值一提”。 沒過多久Oracle就聯(lián)合IBM、Sun、Apple和Netscape制定了網(wǎng)絡(luò)計(jì)算機(jī)的標(biāo)準(zhǔn)。微軟一看情形不對,也迅速發(fā)表了一個(gè)名為SIPC(Simply Interactive Personal Computer)的標(biāo)準(zhǔn)進(jìn)行反擊。SIPC基本上和網(wǎng)絡(luò)計(jì)算機(jī)一樣,只有一點(diǎn)不同:它需要用Windows操作系統(tǒng)。而事實(shí)上,直到現(xiàn)在,也沒有一臺真正的網(wǎng)絡(luò)計(jì)算機(jī)面世,隨著AMD和英特爾的競爭,個(gè)人計(jì)算機(jī)價(jià)格不斷下降已經(jīng)成為電腦行業(yè)趨勢(千萬不能忽視摩爾定律),網(wǎng)絡(luò)計(jì)算機(jī)已經(jīng)失去了能提供足夠養(yǎng)分的土壤。 1997年6月,Oracle推出了第8版,從這一版本開始引入Object Relational Database(ORDBMS)的概念,即所謂的面向?qū)ο蟮年P(guān)系型數(shù)據(jù)庫管理系統(tǒng)。在功能方面也增強(qiáng)不少,比如引入對索引組織表的支持(Index Organized Tables),備份恢復(fù)特性的功能也有所提升,開始支持表空間時(shí)間點(diǎn)恢復(fù),增量備份等功能,RMAN也是從這一版本開始提供(關(guān)于備份恢復(fù)的內(nèi)容我們將在第三部分詳細(xì)介紹)。同時(shí),這一版本開始具有同時(shí)處理大量用戶和海量數(shù)據(jù)的特性,也為支持Internet、網(wǎng)格計(jì)算(后來的i和g)等奠定了基礎(chǔ)。如果與7.0之前的版本相比,這個(gè)版本也稱的上是一款非常不錯(cuò)的產(chǎn)品,可惜它被夾在經(jīng)典的第7版和更加經(jīng)典的Oracle 8i之間,其光芒必然要被掩蓋,只有當(dāng)你我回顧歷史的時(shí)候才能夠記起,在8i之前,也曾有過一個(gè)版本號叫做8的Oracle產(chǎn)品! 5.革新雖然網(wǎng)絡(luò)計(jì)算機(jī)最終流產(chǎn),但Ellison還是敏銳地發(fā)現(xiàn)了Internet的巨大魅力和前景:“Oracle將只會做一件事情,我們管理海量的數(shù)據(jù)并通過網(wǎng)絡(luò)提供這些數(shù)據(jù)”。 1999年2月,Oracle正式發(fā)布了Oracle 8i的第一個(gè)版本8.1.5,i代表Internet,這一版本中添加了大量為支持Internet而設(shè)置的特性,比如iFS、SQLj、WebDB、interMedia等特性,以及與Oracle的Java開發(fā)工具Jdeveloper的集成應(yīng)用等。同時(shí),本地也完整集成了一個(gè)Java運(yùn)行時(shí)環(huán)境(Java也是微軟的對頭,Ellison在打擊微軟方面可謂不遺余力),內(nèi)部又引入了對Java存儲過程的支持,作為對PL/SQL標(biāo)準(zhǔn)過程的補(bǔ)充;在數(shù)據(jù)庫管理方面引入了Log Miner特性(一種可用來讀取Redolog的工具,Oracle后續(xù)版本中提供的一些高級特性,如邏輯Standby、Streams等也都是借助類似方式實(shí)現(xiàn));分區(qū)功能也有所增強(qiáng),如提供了對Hash分區(qū)和復(fù)合分區(qū)的支持,以及一些分區(qū)的管理操作;傳輸表空間的特性也是從這一版本開始提供;同時(shí)本地管理表空間也首次出現(xiàn)于這一版本,但表空間在創(chuàng)建時(shí)默認(rèn)仍然是字典管理方式(如果你對此存在疑問,別著急,相關(guān)內(nèi)容將會在第五部分詳細(xì)介紹);其操作的易用性較之前版本有非常明顯的提升,主要體現(xiàn)在Oracle EM使用上;高級復(fù)制的特性已經(jīng)非常完善;Standby的特性也基本成熟,備庫已經(jīng)支持自動(dòng)應(yīng)用,并且在暫停應(yīng)用時(shí)能夠以只讀模式打開,當(dāng)作查詢服務(wù)器來分擔(dān)主庫壓力。
8i的最終版本是2000年8月發(fā)布的8.1.7,不僅對整個(gè)數(shù)據(jù)庫行業(yè)影響巨大,用戶使用后反響也強(qiáng)烈,我記得在2006年某知名Oracle數(shù)據(jù)庫論壇上做過一次使用中的數(shù)據(jù)庫版本調(diào)查,當(dāng)時(shí)仍有不少用戶在使用Oracle 8.1.7(也許,現(xiàn)在仍然有吧)。8i對Oracle公司的影響同樣不可磨滅,在.com浪潮中,Oracle是站在風(fēng)口浪尖的弄潮兒。
2001年6月,Oracle正式發(fā)布了第9版,這一版同樣延續(xù)了8i時(shí)針對互聯(lián)網(wǎng)應(yīng)用的特性,因此版本號后面也跟了一個(gè)i,常稱作9i。從第7版開始,Oracle不僅在內(nèi)部管理上步入正軌,而且產(chǎn)品質(zhì)量也漸入佳境,頗有一版更比一版好的態(tài)勢。在三思看來,9i同樣應(yīng)被看作是具有劃時(shí)代意義的版本,因?yàn)橹鞍姹局刑峁┑暮芏嘀匾匦跃窃谶@一版本中被轉(zhuǎn)正,比如OPS正式更名為RAC,Standby被更名為Data Guard,LMT(Local-Managed Tablespace,本地管理表空間)試用多年,也終于在這一版本中被改為創(chuàng)建表空間時(shí)的默認(rèn)屬性,還有很多其他細(xì)微但非常實(shí)用的修改,簡直數(shù)不勝數(shù),如SPFILE——服務(wù)器端的初始化參數(shù)的引入(改動(dòng)雖小,影響甚大,當(dāng)然都是積極層面的影響),系統(tǒng)管理的UNDO表空間(System Managed Undo Tablespace)的引入(有效提升系統(tǒng)性能,極大限度避免ORA-1555),內(nèi)存管理方面引入了PGA_AGGREGATE_TARGET參數(shù),用來自動(dòng)分配PGA內(nèi)存,有效提升性能。Flashback Query也在這一版本中首次出現(xiàn),通過該特性能夠查詢UNDO表空間中尚未被覆蓋的UNDO數(shù)據(jù),也可以作為數(shù)據(jù)恢復(fù)的一種補(bǔ)充手段(關(guān)于Flashback特性的應(yīng)用詳見本書第三部分)。
2002年5月,在升級到9i R2后又提供了一種新的數(shù)據(jù)復(fù)制特性:流(Streams),期望是用來替換之前的高級復(fù)制,同時(shí)Data Guard也提供了一種新的Standby方式,邏輯Standby(關(guān)于Data Guard特性的應(yīng)用詳見本書第三部分)。
雖然網(wǎng)絡(luò)計(jì)算機(jī)最終流產(chǎn),但Ellison還是敏銳地發(fā)現(xiàn)了Internet的巨大魅力和前景:“Oracle將只會做一件事情,我們管理海量的數(shù)據(jù)并通過網(wǎng)絡(luò)提供這些數(shù)據(jù)”。 8i的最終版本是2000年8月發(fā)布的8.1.7,不僅對整個(gè)數(shù)據(jù)庫行業(yè)影響巨大,用戶使用后反響也強(qiáng)烈,我記得在2006年某知名Oracle數(shù)據(jù)庫論壇上做過一次使用中的數(shù)據(jù)庫版本調(diào)查,當(dāng)時(shí)仍有不少用戶在使用Oracle 8.1.7(也許,現(xiàn)在仍然有吧)。8i對Oracle公司的影響同樣不可磨滅,在.com浪潮中,Oracle是站在風(fēng)口浪尖的弄潮兒。 2002年5月,在升級到9i R2后又提供了一種新的數(shù)據(jù)復(fù)制特性:流(Streams),期望是用來替換之前的高級復(fù)制,同時(shí)Data Guard也提供了一種新的Standby方式,邏輯Standby(關(guān)于Data Guard特性的應(yīng)用詳見本書第三部分)。 6.前進(jìn)2004年2月,Oracle公司正式發(fā)布了第10版,從這一版中,Oracle數(shù)據(jù)庫有了一個(gè)新的后綴:g,即grid(網(wǎng)格),這是自O(shè)racle 8i中增強(qiáng)互聯(lián)網(wǎng)功能后的又一次重大更名。10g主打網(wǎng)格計(jì)算,跟8i、9i時(shí)的面向Internet增加相應(yīng)特性一樣,這只是Oracle 計(jì)劃未來面向的領(lǐng)域而已,說得更直白些,它只是為這些應(yīng)用打下良好的基礎(chǔ),用不用在你,如果你仍將其當(dāng)作一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)庫軟件使用,那么i呀g呀對你都沒有什么影響。10g中網(wǎng)格計(jì)算相當(dāng)于將整個(gè)信息化的各個(gè)物理和邏輯的組成部分(如存儲、數(shù)據(jù)庫、應(yīng)用程序等)定義成虛擬化的服務(wù),由Grid Control(Oracle公司提供的控制軟件)統(tǒng)一控制。Ellison野心極大,單單占有數(shù)據(jù)庫領(lǐng)域是不夠地,通過Grid Control就可以控制整個(gè)企業(yè)的信息化設(shè)備。 我們不管Larry Ellison商業(yè)策略上的考量究竟怎樣,僅從數(shù)據(jù)庫層面來講,10g確實(shí)進(jìn)行了太多實(shí)用的革新,比如在內(nèi)存管理方面,我們知道9i時(shí)引入PGA_AGGREGATE_TARGET,用來自動(dòng)分配PGA內(nèi)存,在10g中引入了一個(gè)SGA_TARGET,用來自動(dòng)分配SGA內(nèi)存,而到了11g,Oracle又提供了一個(gè)新的參數(shù)MEMORY_TARGET,能夠完全自動(dòng)地管理整個(gè)數(shù)據(jù)庫內(nèi)存。沒有應(yīng)用過早期版本的用戶可能感受不會那么深刻,為了加深大家的印象,在這里三思僅從易用性的角度給大家作個(gè)比較,8i及8i之前的版本,有十多個(gè)與內(nèi)存空間分配相關(guān)的參數(shù)需要設(shè)置(如果設(shè)置不當(dāng),對性能影響極大,甚至做某些工作的時(shí)候,DBA必須重新設(shè)置某些初始化參數(shù)),9i時(shí)減少到5個(gè)內(nèi)存相關(guān)參數(shù);10g只需要設(shè)置2個(gè);到了11g,只需要設(shè)置1個(gè),就是MEMORY_TARGET,對于其他參數(shù),在默認(rèn)情況下Oracle都會在運(yùn)行過程中自動(dòng)進(jìn)行調(diào)整。所以,僅從這個(gè)發(fā)展過程上也能看出,Oracle每一個(gè)新的版本,都會在易用性上做出很大改進(jìn),DBA終于能夠閑下來了?。ê檬??壞事?)。 看看Oracle公司官網(wǎng)的這篇文章吧“Oracle 數(shù)據(jù)庫 10g:為 DBA 提供的最重要的 20 個(gè)特性 10g真的好,誰用誰知道。特別說明一下,本書所做示例如非特別注明,默認(rèn)均是在10g R2版本進(jìn)行。 2007年7月,Oracle公司正式發(fā)布了11g,我個(gè)人認(rèn)為這一版在整個(gè)Oracle數(shù)據(jù)庫版本歷史中足以與1992年發(fā)布的Oracle 7媲美,這一版提供了很多激動(dòng)人心的特性。比如RAT(Real Application Testing)終于步入實(shí)用階段,該特性允許你將生產(chǎn)環(huán)境中數(shù)據(jù)庫的真實(shí)負(fù)載記錄下來,拿到測試庫中重演(最佳搭配自然是Standby數(shù)據(jù)庫),這將有助于測試某些應(yīng)用程序修改后對數(shù)據(jù)庫的真實(shí)影響;結(jié)果集緩存(Result Cache)則能更有效地利用內(nèi)存,其實(shí)質(zhì)相當(dāng)于將查詢的結(jié)果集保存于內(nèi)存中,當(dāng)再有新的相同查詢需求時(shí),就不需要再解析、執(zhí)行、讀取I/O等操作,直接就可以從內(nèi)存中獲得查詢結(jié)果,大大提高查詢效率(如果應(yīng)用得好的話);以及高級壓縮(Advanced Compression)等。 同時(shí),原來的一些特性在功能上也增強(qiáng)不少,比如分區(qū)方面,自5.0以來無數(shù)用戶盼星星盼月亮一樣期待的interval分區(qū)終于推出(Oracle將根據(jù)設(shè)定的條件自動(dòng)添加新分區(qū),再也不需要DBA自己寫腳本來管理分區(qū)了);Data Guard方面,物理Standby終于能夠在只讀打開模式時(shí)應(yīng)用REDO數(shù)據(jù),實(shí)用性和可用性均大增;內(nèi)存管理方面,新提供的MEMORY_TARGET參數(shù)能夠更有效地管理Oracle內(nèi)存空間,其他還包括壓縮特性的增強(qiáng),SQL、PL/SQL方面新增加了數(shù)據(jù)類型和更強(qiáng)大的編譯方法等。 另外,如果你足夠敏感,這條信息也許能給你一些其他方面的啟示,11g的首發(fā)平臺是Linux,打破了一直以來首發(fā)平臺都是Solaris的傳統(tǒng),從某種層面上,也表明了服務(wù)器領(lǐng)域主流操作系統(tǒng)的變遷。你想說什么時(shí)候首發(fā)平臺會是Windows?貌似短期內(nèi)都不太可能啊:) 另外,在本書寫作過程中,Sun公司已被Oracle公司收購,Solaris現(xiàn)在是Oracle公司自己的產(chǎn)品了。 說到這里,三思也想引申一下關(guān)于數(shù)據(jù)庫新版本及是否升級的問題。信息爆炸的時(shí)代,軟件更新頻繁,新版本不一定是好版本(比如11g發(fā)布了不到三個(gè)月就推出了Release1),當(dāng)然新版本也不一定是不好的版本(比如Oracle 7,發(fā)布之后好評如潮,用戶哭著喊著要升級,也可能是Oracle 6太差,兩相對比太強(qiáng)烈)。 但這些都不重要,DBA需要關(guān)注的重點(diǎn)是,要升級的版本是否是適合你的版本。如果要?dú)w結(jié)成一句話,我認(rèn)為“穩(wěn)定是第一位”。新版本固然提供了很多新的功能,但是有一點(diǎn)大家一定要明白,是軟件就會有Bug,越新的特性,Bug也越多,尤其像11g,安裝包就已經(jīng)達(dá)到1.7G的龐然大物,有Bug不稀奇,沒Bug才稀奇。所以,做第一個(gè)吃螃蟹的人,貿(mào)然嘗鮮也許
OK,我的話說完了,但Oracle的故事還遠(yuǎn)沒有結(jié)束……。 |
|