塗抹ORACLE--第1章ORACLE傳奇(3)

zecaro發表於2010-12-19
1.5 革新   雖然網路計算機最終流產,但Ellison還是敏銳地發現了Internet的巨大魅力和前景:“Oracle將只會做一件事情,我們管理海量的資料並透過網路提供這些資料”。   1999年2月,Oracle正式釋出了Oracle 8i的第一個版本8.1.5,i代表Internet,這一版本中新增了大量為支援Internet而設定的特性,比如iFS、SQLj、WebDB、interMedia等特性,以及與Oracle的Java開發工具Jdeveloper的整合應用等。同時,本地也完整整合了一個Java執行時環境(Java也是微軟的對頭,Ellison在打擊微軟方面可謂不遺餘力),內部又引入了對Java儲存過程的支援,作為對PL/SQL標準過程的補充;在資料庫管理方面引入了Log Miner特性(一種可用來讀取Redolog的工具,Oracle後續版本中提供的一些高階特性,如邏輯Standby、Streams等也都是藉助類似方式實現);分割槽功能也有所增強,如提供了對Hash分割槽和複合分割槽的支援,以及一些分割槽的管理操作;傳輸表空間的特性也是從這一版本開始提供;同時本地管理表空間也首次出現於這一版本,但表空間在建立時預設仍然是字典管理方式(如果你對此存在疑問,彆著急,相關內容將會在第五部分詳細介紹);其操作的易用性較之前版本有非常明顯的提升,主要體現在Oracle EM使用上;高階複製的特性已經非常完善;Standby的特性也基本成熟,備庫已經支援自動應用,並且在暫停應用時能夠以只讀模式開啟,當作查詢伺服器來分擔主庫壓力。   8i的最終版本是2000年8月釋出的8.1.7,不僅對整個資料庫行業影響巨大,使用者使用後反響也強烈,我記得在2006年某知名Oracle資料庫論壇上做過一次使用中的資料庫版本調查,當時仍有不少使用者在使用Oracle 8.1.7(也許,現在仍然有吧)。8i對Oracle公司的影響同樣不可磨滅,在.com浪潮中,Oracle是站在風口浪尖的弄潮兒。   2001年6月,Oracle正式釋出了第9版,這一版同樣延續了8i時針對網際網路應用的特性,因此版本號後面也跟了一個i,常稱作9i。從第7版開始,Oracle不僅在內部管理上步入正軌,而且產品質量也漸入佳境,頗有一版更比一版好的態勢。在三思看來,9i同樣應被看作是具有劃時代意義的版本,因為之前版本中提供的很多重要特性均是在這一版本中被轉正,比如OPS正式更名為RAC,Standby被更名為Data Guard,LMT(Local-Managed Tablespace,本地管理表空間)試用多年,也終於在這一版本中被改為建立表空間時的預設屬性,還有很多其他細微但非常實用的修改,簡直數不勝數,如SPFILE——伺服器端的初始化引數的引入(改動雖小,影響甚大,當然都是積極層面的影響),系統管理的UNDO表空間(System Managed Undo Tablespace)的引入(有效提升系統效能,極大限度避免ORA-1555),記憶體管理方面引入了PGA_AGGREGATE_TARGET引數,用來自動分配PGA記憶體,有效提升效能。Flashback Query也在這一版本中首次出現,透過該特效能夠查詢UNDO表空間中尚未被覆蓋的UNDO資料,也可以作為資料恢復的一種補充手段(關於Flashback特性的應用詳見本書第三部分)。   2002年5月,在升級到9i R2後又提供了一種新的資料複製特性:流(Streams),期望是用來替換之前的高階複製,同時Data Guard也提供了一種新的Standby方式,邏輯Standby(關於Data Guard特性的應用詳見本書第三部分)。 1.6 前進   2004年2月,Oracle公司正式釋出了第10版,從這一版中,Oracle資料庫有了一個新的字尾:g,即grid(網格),這是自Oracle 8i中增強網際網路功能後的又一次重大更名。10g主打網格計算,跟8i、9i時的面向Internet增加相應特性一樣,這只是Oracle 計劃未來面向的領域而已,說得更直白些,它只是為這些應用打下良好的基礎,用不用在你,如果你仍將其當作一個標準的資料庫軟體使用,那麼i呀g呀對你都沒有什麼影響。10g中網格計算相當於將整個資訊化的各個物理和邏輯的組成部分(如儲存、資料庫、應用程式等)定義成虛擬化的服務,由Grid Control(Oracle公司提供的控制軟體)統一控制。Ellison野心極大,單單佔有資料庫領域是不夠地,透過Grid Control就可以控制整個企業的資訊化裝置。   我們不管Larry Ellison商業策略上的考量究竟怎樣,僅從資料庫層面來講,10g確實進行了太多實用的革新,比如在記憶體管理方面,我們知道9i時引入PGA_AGGREGATE_TARGET,用來自動分配PGA記憶體,在10g中引入了一個SGA_TARGET,用來自動分配SGA記憶體,而到了11g,Oracle又提供了一個新的引數MEMORY_TARGET,能夠完全自動地管理整個資料庫記憶體。沒有應用過早期版本的使用者可能感受不會那麼深刻,為了加深大家的印象,在這裡三思僅從易用性的角度給大家作個比較,8i及8i之前的版本,有十多個與記憶體空間分配相關的引數需要設定(如果設定不當,對效能影響極大,甚至做某些工作的時候,DBA必須重新設定某些初始化引數),9i時減少到5個記憶體相關引數;10g只需要設定2個;到了11g,只需要設定1個,就是MEMORY_TARGET,對於其他引數,在預設情況下Oracle都會在執行過程中自動進行調整。所以,僅從這個發展過程上也能看出,Oracle每一個新的版本,都會在易用性上做出很大改進,DBA終於能夠閒下來了啊(好事?壞事?)。   看看Oracle公司官網的這篇文章吧“Oracle 資料庫 10g:為 DBA 提供的最重要的 20 個特性”()。   10g真的好,誰用誰知道。特別說明一下,本書所做示例如非特別註明,預設均是在10g R2版本進行。   2007年7月,Oracle公司正式釋出了11g,我個人認為這一版在整個Oracle資料庫版本歷史中足以與1992年釋出的Oracle 7媲美,這一版提供了很多激動人心的特性。比如RAT(Real Application Testing)終於步入實用階段,該特性允許你將生產環境中資料庫的真實負載記錄下來,拿到測試庫中重演(最佳搭配自然是Standby資料庫),這將有助於測試某些應用程式修改後對資料庫的真實影響;結果集快取(Result Cache)則能更有效地利用記憶體,其實質相當於將查詢的結果集儲存於記憶體中,當再有新的相同查詢需求時,就不需要再解析、執行、讀取I/O等操作,直接就可以從記憶體中獲得查詢結果,大大提高查詢效率(如果應用得好的話);以及高階壓縮(Advanced Compression)等。   同時,原來的一些特性在功能上也增強不少,比如分割槽方面,自5.0以來無數使用者盼星星盼月亮一樣期待的interval分割槽終於推出(Oracle將根據設定的條件自動新增新分割槽,再也不需要DBA自己寫指令碼來管理分割槽了);Data Guard方面,物理Standby終於能夠在只讀開啟模式時應用REDO資料,實用性和可用性均大增;記憶體管理方面,新提供的MEMORY_TARGET引數能夠更有效地管理Oracle記憶體空間,其他還包括壓縮特性的增強,SQL、PL/SQL方面新增加了資料型別和更強大的編譯方法等。   另外,如果你足夠敏感,這條資訊也許能給你一些其他方面的啟示,11g的首發平臺是Linux,打破了一直以來首發平臺都是Solaris的傳統,從某種層面上,也表明了伺服器領域主流作業系統的變遷。你想說什麼時候首發平臺會是Windows?貌似短期內都不太可能啊:)   另外,在本書寫作過程中,Sun公司已被Oracle公司收購,Solaris現在是Oracle公司自己的產品了。   說到這裡,三思也想引申一下關於資料庫新版本及是否升級的問題。資訊爆炸的時代,軟體更新頻繁,新版本不一定是好版本(比如11g釋出了不到三個月就推出了Release1),當然新版本也不一定是不好的版本(比如Oracle 7,釋出之後好評如潮,使用者哭著喊著要升級,也可能是Oracle 6太差,兩相對比太強烈)。   但這些都不重要,DBA需要關注的重點是,要升級的版本是否是適合你的版本。如果要歸結成一句話,我認為“穩定是第一位”。新版本固然提供了很多新的功能,但是有一點大家一定要明白,是軟體就會有Bug,越新的特性,Bug也越多,尤其像11g,安裝包就已經達到1.7G的龐然大物,有Bug不稀奇,沒Bug才稀奇。所以,做第一個吃螃蟹的人,貿然嚐鮮也許能得著甜頭,但更大的可能是給自己埋了無數的雷啊。我認為,9i曾流行,10g正當時,而11g屬於未來。   OK,我的話說完了,但Oracle的故事還遠沒有結束…… ================================================= 全書目錄:http://space.itpub.net/7607759/viewspace-622699 樣書預覽:http://space.itpub.net/7607759/viewspace-622515 馬上購買:
連結:http://space.itpub.net/7607759/viewspace-623430

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

相關文章