2009年9月Oracle公司發(fā)布了期待已久的Oracle 11g R2,本系列文章將給讀者一一揭開新版本中的新特性,并會(huì)介紹企業(yè)如何利用這些新特性將現(xiàn)有的Oracle 9i,10g,11g R1升級(jí)到Oracle 11g R2.
經(jīng)歷了難以忍受的長(zhǎng)時(shí)間等待,Oracle公司突然在9月1發(fā)布了Oracle 11g R2,我不得不承認(rèn)Oracle的保密工作做得多么好,我相信Oracle公司選擇這個(gè)時(shí)候發(fā)布時(shí)為了刺激參加Oracle OpenWorld 2009大會(huì)的人興奮和期待。
經(jīng)過(guò)四處搜索Oracle 11g R2新特性文檔,并體驗(yàn)了新的OUI(Oracle通用安裝程序),創(chuàng)建了我的第一個(gè)單實(shí)例RAC后,我總結(jié)一下Oracle 11g R2中我最喜歡的五大新特性。在后面的文章中我將陸續(xù)介紹其它新特性,請(qǐng)鎖定本系列文章。
NO.1 隨處可見的集群
在以前的版本中,Oracle Clusterware必須要獨(dú)立地安裝在它自己的ORACLE HOME中,并且也只能在RAC環(huán)境下使用,這一切在Oracle 11g R2得到徹底顛覆,因?yàn)樵谶@個(gè)版本中支持安裝Oracle網(wǎng)格基礎(chǔ)架構(gòu),而且只需要一個(gè)獨(dú)立的ORACLE HOME,它包括了Oracle Clusterware和Oracle自動(dòng)存儲(chǔ)管理(ASM)。通過(guò)升級(jí)后的Oracle通用安裝程序安裝了網(wǎng)格基礎(chǔ)架構(gòu)后,你將會(huì)看到一個(gè)全新的功能和服務(wù)矩陣,我簡(jiǎn)單地列舉幾個(gè)吧:
單實(shí)例RAC(Oracle重啟):聽起來(lái)似乎自相矛盾,但Oracle 11g R2擴(kuò)展了Oracle Clusterware的功能,為任何單實(shí)例提供了高可用特性,本質(zhì)上是將數(shù)據(jù)庫(kù)變成了單實(shí)例RAC數(shù)據(jù)庫(kù)。Oracle 11g R2中的Oracle重啟特性幫助Oracle網(wǎng)格基礎(chǔ)架構(gòu)的高可用服務(wù)控制服務(wù)器重啟時(shí)哪一個(gè)監(jiān)聽器,ASM實(shí)例和數(shù)據(jù)庫(kù)應(yīng)該啟動(dòng),它完全取代了過(guò)去DBA們經(jīng)常用到的DBSTART腳本。同樣,當(dāng)單個(gè)數(shù)據(jù)庫(kù)實(shí)例崩潰或其它異常終止時(shí),Oracle重啟功能會(huì)自動(dòng)監(jiān)測(cè)失效的實(shí)例,并自動(dòng)重啟它,就好像是在一個(gè)真實(shí)的RAC環(huán)境中一樣。
SRVCTL升級(jí):如果你管理過(guò)舊版本的RAC環(huán)境,你可能已經(jīng)熟悉了RAC環(huán)境中的維護(hù)工具SRVCTL,在11g R2中,該工具被擴(kuò)展了,現(xiàn)在可以管理單實(shí)例RAC,以及監(jiān)聽器和ASM實(shí)例。
集群時(shí)間同步服務(wù):Oracle 11g R2現(xiàn)在需要在所有RAC節(jié)點(diǎn)上配置時(shí)間同步,如果你曾經(jīng)經(jīng)歷過(guò)某個(gè)節(jié)點(diǎn)被驅(qū)逐出RAC集群配置,你一定知道其難度有多大,特別是兩個(gè)服務(wù)器的時(shí)間不同步和日志文件的時(shí)間戳不同步時(shí),Oracle之前的版本借助系統(tǒng)提供的網(wǎng)絡(luò)時(shí)間協(xié)議(NTP)同步所有節(jié)點(diǎn)時(shí)間,但這需要連接到互聯(lián)網(wǎng)上的標(biāo)準(zhǔn)時(shí)間服務(wù)器,作為NTP的替代者,Oracle 11g R2提供了一個(gè)新的集群時(shí)間同步服務(wù),確保集群中的所有節(jié)點(diǎn)的時(shí)間都保持一致。
網(wǎng)格即插即用:在以前的版本中,配置RAC最復(fù)雜的部分是確定和設(shè)置所有節(jié)點(diǎn)都需要用到的公共ip地址,私有ip地址和虛擬ip地址。為了簡(jiǎn)化RAC的安裝,Oracle 11g R2提供了一個(gè)全新的網(wǎng)格名稱服務(wù)(GNS),它和域名服務(wù)器協(xié)作,處理每個(gè)網(wǎng)格組件的ip地址分配,當(dāng)集群環(huán)境跨越多個(gè)數(shù)據(jù)庫(kù)時(shí)這個(gè)新特性極其有用。
干凈地卸載RAC組件:如果你曾經(jīng)嘗試過(guò)刪除多個(gè)節(jié)點(diǎn)上的所有RAC痕跡,那一定會(huì)鐘情于這項(xiàng)新特性,在Oracle 11g R2中,所有安裝和配置助手,特別是Oracle通用安裝程序(OUI),數(shù)據(jù)庫(kù)配置助手(DBCA)和網(wǎng)絡(luò)配置助手(NETCA),都得到了增強(qiáng),當(dāng)需要卸載RAC組件時(shí),可以保證卸得干干凈凈。
NO.2 ASM加入了集群
Oracle 11g R2 ASM充滿了許多吸引人的新特性,對(duì)于初學(xué)者來(lái)說(shuō),ASM和Oracle 11g R2 Clusterware安裝在同一個(gè)Oracle Home下,因此消除了之前推薦的冗余Oracle Home安裝方法,并且ASM也從DBCA脫離出來(lái)了,有了專門的自動(dòng)存儲(chǔ)管理配置助手(ASMCA)。下面是我認(rèn)為最有趣的ASM新特性:
智能化數(shù)據(jù)布局:在之前的版本中,要配置ASM磁盤可能需要存儲(chǔ)管理員的參與,需要配置磁盤I/O子系統(tǒng),Oracle 11g R2提供了ASM分配單元,可以直接受益于磁盤外緣柱面,獲得更快的速度,可以將數(shù)據(jù)文件,重做日志文件和控制放在磁盤外緣獲得更好的性能。
EM支持工作臺(tái)擴(kuò)展:在這個(gè)版本中對(duì)Oracle 11g R1引入到企業(yè)管理控制臺(tái)中的自動(dòng)診斷倉(cāng)庫(kù)(ADR)進(jìn)行了擴(kuò)展,包括支持ASM診斷,將所有診斷信息打包直接發(fā)送給Oracle技術(shù)支持,以便獲得更快速的ASM性能問(wèn)題解決方案。
ASMCMD增強(qiáng):自動(dòng)存儲(chǔ)管理命令行實(shí)用工具(ASMCMD)也獲得了不少增強(qiáng),包括:
1)啟動(dòng)和停止ASM實(shí)例;
2)備份,恢復(fù)和維護(hù)ASM實(shí)例的服務(wù)器參數(shù)文件(spfile);
3)實(shí)用iostat監(jiān)控ASM磁盤組的性能;
4)維護(hù)新的ASM集群文件系統(tǒng)(ACFS)中的磁盤卷,目錄和文件存儲(chǔ),我的下一個(gè)話題就是它。
NO.3 ACFS – 一個(gè)強(qiáng)健的集群文件系統(tǒng)
Oracle之前也發(fā)布過(guò)集群文件系統(tǒng)(OCFS),之后又發(fā)布了增強(qiáng)版OCFS2,它讓Oracle RAC實(shí)例可以通過(guò)共享存儲(chǔ)讀寫數(shù)據(jù)庫(kù)文件,重做日志文件和控制文件。
此外,OCFS也允許RAC數(shù)據(jù)庫(kù)的Oracle集群注冊(cè)文件(OCR)和表決磁盤存儲(chǔ)在集群文件系統(tǒng)中,在Oracle 10g R2中,這個(gè)需求被取消了,OCR文件和表決磁盤可以存儲(chǔ)在裸設(shè)備或裸塊設(shè)備中,如果你曾經(jīng)在原始設(shè)備上丟失過(guò)這些文件的所有副本,你一定了解要恢復(fù)它們是多么繁瑣,因此,在Oracle 11g R2中,將不再支持將這些文件存儲(chǔ)在裸設(shè)備上。
為了提高這些關(guān)鍵文件的存活能力,Oracle 11g R2正式引入了一種新的集群文件系統(tǒng),稱之為ASM集群文件系統(tǒng)(ACFS),在RAC環(huán)境中,ACFS可以為OCR文件和表決磁盤提供更好的保護(hù),它允許創(chuàng)建五份OCR文件副本,之前的集群文件系統(tǒng)僅允許保存兩份OCR文件,一個(gè)主OCR,一個(gè)鏡像OCR,但ACFS不適合單獨(dú)的RAC環(huán)境,除此之外,幾乎所有與操作系統(tǒng)和數(shù)據(jù)相關(guān)的文件都可以從ACFS的安全性和文件共享特性受益。
動(dòng)態(tài)卷管理器:Oracle 11g R2提供了一個(gè)新的ASM動(dòng)態(tài)卷管理器(ADVM)來(lái)配置和維護(hù)存儲(chǔ)在ACFS文件系統(tǒng)中的文件,使用ADVM可以在ASM磁盤組內(nèi)構(gòu)建一個(gè)ADVM卷設(shè)備,管理存儲(chǔ)在ADVM卷設(shè)備中的文件,以及按需調(diào)整ADVM卷設(shè)備空間大小,最重要的是,因?yàn)锳DVM是構(gòu)建在ASM文件系統(tǒng)架構(gòu)之上的,可以保證存儲(chǔ)在這些卷中的文件受到良好的保護(hù),不會(huì)出現(xiàn)意外丟失,因?yàn)锳SM提供了類似RAID的磁盤陣列的功能。
文件訪問(wèn)控制:使用傳統(tǒng)的Windows風(fēng)格訪問(wèn)控制列表(ACL)或Unix/Linux下的用戶/組/其它訪問(wèn)權(quán)限風(fēng)格為ACFS目錄和文件授予讀,寫和執(zhí)行權(quán)限,可以通過(guò)圖形化的企業(yè)管理控制臺(tái)或命令行程序ASMCMD管理ACFS目錄和文件安全。
文件系統(tǒng)快照(FSS):Oracle 11g R2通過(guò)它的文件系統(tǒng)快照(FSS)功能可以對(duì)ACFS文件系統(tǒng)執(zhí)行快照,一個(gè)快照是所選ACFS文件系統(tǒng)的一個(gè)只讀副本,對(duì)相同的ACFS,它會(huì)自動(dòng)保留63個(gè)獨(dú)立的ACFS快照,當(dāng)某個(gè)ACFS文件被不經(jīng)意地更新,刪除或其它危險(xiǎn)操作時(shí),這個(gè)特性非常有用,利用11g R2企業(yè)管理控制臺(tái)或ACFS acfsutil命令行工具可以找出該文件合適的版本并執(zhí)行恢復(fù)。
NO.4 改善的軟件安裝和打補(bǔ)丁過(guò)程
我發(fā)現(xiàn)作為一名DBA壓力最大的活就是給Oracle數(shù)據(jù)庫(kù)打補(bǔ)丁了,如果補(bǔ)丁可能會(huì)引入對(duì)數(shù)據(jù)庫(kù)有害的行為,我不得不花費(fèi)大量的時(shí)間和精力來(lái)確定和審核,因此我對(duì)Oracle 11g R2中提供的新功能感到很歡喜。
集群驗(yàn)證實(shí)用程序集成:從Oracle 10g開始引入了集群驗(yàn)證實(shí)用程序(CVU),現(xiàn)在已經(jīng)完全集成到Oracle通用安裝程序(OUI)和其它配置助手(如DBCA,DBUA)中了。
零停機(jī)修補(bǔ)的集群:當(dāng)為Oracle集群打補(bǔ)丁時(shí),Oracle 11g R2在一個(gè)不合適的位置升級(jí)方式應(yīng)用補(bǔ)丁,這意味著會(huì)有兩個(gè)Oracle Home,其中一個(gè)專門用來(lái)存放補(bǔ)丁的,但一次只能激活一個(gè)Oracle Home,在Oracle 11g R2中不用再為升級(jí)全部關(guān)閉Oracle集群了,tb實(shí)現(xiàn)真正的零停機(jī)打補(bǔ)丁。
NO.5 DBMS_SCHEDULER升級(jí)
古老的DBMS_SCHEDULER包得到了徹底的更新,DBA經(jīng)常使用這個(gè)包來(lái)調(diào)度作業(yè)。
文件監(jiān)視器:以前的版本無(wú)法在批處理過(guò)程中檢測(cè)大多數(shù)觸發(fā)事件,如檢測(cè)一個(gè)文件抵達(dá)某個(gè)目錄,在Oracle 11g R2中,使用新的文件監(jiān)視器可以緩解這個(gè)問(wèn)題,一旦預(yù)期的文件抵達(dá)目錄,DBMS_SCHEDULER現(xiàn)在就可以檢測(cè)到了,并在新的對(duì)象類型SCHEDULER_FILEWATCHER_RESULT中注冊(cè)它的到來(lái),它通過(guò)新的CREATE_FILE_WATCHER存儲(chǔ)過(guò)程向DBMS_SCHEDULER發(fā)送一個(gè)信號(hào)觸發(fā)作業(yè)。
內(nèi)置的email通知:無(wú)論何時(shí),DBMS_SCHEDULER調(diào)度任務(wù)啟動(dòng)、失敗或完成時(shí),任務(wù)的狀態(tài)可以立即通過(guò)email發(fā)送出去,雖然在以前的版本中也能實(shí)現(xiàn)這個(gè)功能,但要么調(diào)用DBMS_MAIL存儲(chǔ)過(guò)程,要么調(diào)用DBMS_SMTP存儲(chǔ)過(guò)程,現(xiàn)在這個(gè)功能合并到DBMS_SCHEDULER中了。
遠(yuǎn)程作業(yè):DBMS_SCHEDULER現(xiàn)在允許DBA在遠(yuǎn)程數(shù)據(jù)庫(kù)上創(chuàng)建和調(diào)度作業(yè),現(xiàn)在我終于可以在生產(chǎn)庫(kù)PROD03上通過(guò)DBMS_SCHEDULER調(diào)用生產(chǎn)庫(kù)DBMS_SCHEDULER上的存儲(chǔ)過(guò)程執(zhí)行任務(wù)了,這意味著我現(xiàn)在可以在tb一臺(tái)數(shù)據(jù)庫(kù)上集中創(chuàng)建和維護(hù)調(diào)度任務(wù)了。
多作業(yè)目標(biāo):最后,現(xiàn)在可以在多個(gè)數(shù)據(jù)庫(kù)實(shí)例上同時(shí)調(diào)度DBMS_SCHEDULER任務(wù)了,在RAC環(huán)境中,這個(gè)特性非常有用,因?yàn)槲铱梢岳枚鄠€(gè)數(shù)據(jù)庫(kù)實(shí)例將長(zhǎng)時(shí)間運(yùn)行任務(wù)分成幾部分,分別在不同的數(shù)據(jù)庫(kù)實(shí)例上執(zhí)行更小的任務(wù)。