當前位置:成語大全網 - 書法字典 - 2012年可以安裝哪個版本的oracle 11g rac?

2012年可以安裝哪個版本的oracle 11g rac?

皇家汽車俱樂部

在安裝了網格基礎設施之後,我們將註意力轉向了在集群上安裝Oracle軟件。我們可以看到Grid Infrasctructure提供了壹個運行RAC的框架,包括集群通信鏈接、節點分離、節點成員等服務。ASM是Oracle存儲數據庫的首選方式。RAC利用了這些概念,並擴展了所需的基本服務。

安裝選項

成功安裝網格基礎設施/集群件後,Oracle Universal Installer會檢測集群環境的建立,然後提供在整個集群或用戶指定的幾個節點上安裝RAC的選項。使用集群檢查工具cluvfy來檢查是否滿足安裝RDBMS的先決條件是壹個很好的實踐。和安裝集群壹樣,Oracle Universal Installer會先在第壹個節點上復制鏈接軟件,然後將Oracle主目錄推送到指定的其他節點上。與網格基礎設施不同的是,Oracle RDBMS可以安裝在* * *共享文件系統(比如OCFS2或者ACFS)上,在集群中添加新節點也簡化了,因為不需要在新節點上重新安裝軟件,打補丁也簡化了——只需要打壹個Oracle主目錄的補丁。但是補丁不能滾動安裝,所以宕機是不可避免的。

在安裝過程中,Oracle Universal Installer會提醒管理員安裝或升級數據庫,或者只安裝軟件。如果在安裝時發布了新版本,最好在創建數據庫之前安裝軟件、打補丁並升級。

單實例和RAC數據庫

RAC和單實例數據庫在許多重要方面都有所不同。

在RAC中,數據庫由共享存儲中多個服務器上的實例訪問。數據庫文件、在線重做文件、控制文件和服務器參數文件(spfile)必須共享。此外,還可以使用閃回日誌、歸檔重做日誌、數據泵轉儲文件和dataguard代理配置文件* * *,具體取決於您的配置(這是可選的,但強烈建議使用)。使用ASM時,您還可以在每個RAC節點中找到壹個本地pfile文件,該文件指向相應磁盤組中的spfile。另壹個本地存儲的文件是Oracle密碼文件。集群文件系統中的用戶通常將這些文件放在* * *共享位置,並通過符號鏈接指向$ORACLE_HOME/dbs數據庫文件。

數據庫文件包含數據庫中的所有數據,包括表、索引、數據字典和編譯的PL/SQL代碼等等。在RAC中,每個數據文件只有壹個副本,它位於共享存儲中,由所有實例訪問。默認情況下,Oracle不為數據文件提供鏡像,大多數用戶選擇在存儲級別進行冗余,以避免介質故障導致的數據丟失。當存儲陣列不具備此功能時,Oracle ASM可用於提供冗余。

控制文件

控制文件存儲有關數據庫物理結構的信息,包括它們的狀態。如果妳使用RMAN並且沒有專門的RMAN目錄數據庫,控制文件也可以存儲RMAN備份的信息。在單實例數據庫和RAC中,應該鏡像控制文件以防止損壞或存儲故障。當ASM和閃回恢復區同時使用時,多路復用將自動完成。默認情況下,Oracle多路傳輸db_create_file_dest和db_recovery_file_dest指定的磁盤組中的控制文件。在這種情況下,如果使用spfile,control_files參數將自動更新。請註意,控制文件將成為RAC中的壹個爭用點,因為它們會頻繁更新。所以不要做太多控制文件的鏡像拷貝,放在高速存儲上。

重做和歸檔

在RAC中,每個實例都有自己的在線日誌文件,稱為thread。可以在V$LOG和相關視圖中查看線程信息。

每個線程需要兩組重做日誌,如果沒有使用ASM和閃回恢復區,應該考慮手動多路復用組中的成員。Spfile負責實例和線程之間的映射(通過初始化參數thread)。在集群中添加新實例時,需要相應的重做線程,可以通過兩種方式完成:壹是執行SQL語句alter database add log file group x thread y;第二,在策略管理的數據庫中,它是自動創建的。然後由Oracle啟用。

lgwr守護程序將重做緩沖區刷新到重做日誌中。在線重做日誌需要存儲在高速存儲中,否則可能會成為爭用點,尤其是在提交頻率較高的系統中。通常對不合理設計應用的優化是降低提交的頻率,至少把重做日誌和控制文件移到高速存儲上來減少壹些性能瓶頸。在日誌切換頻繁的系統中,增加每個線程的重做日誌組的數量會很有幫助,這可以給歸檔進程更多的時間來歸檔重做日誌。當歸檔過程需要將歸檔的重做傳輸到備用數據庫時,這種方法也很有用。但是,大多數系統現在使用日誌網絡服務(LNSn)進程將重做異步傳輸到備用數據庫的遠程文件服務器(RFS)進程。在Oracle 10.2和11.1中,每個目的地都有壹個LNS進程。在Oracle 11.2中,LNSn進程被NSSn和NSAn後臺進程所取代。NSSn進程用於同步傳輸重做,NSAn用於異步傳輸重做。重做日誌大小設置的原則是日誌切換不會太頻繁(AWR和statspack可以幫助定義壹個合適的大小)。Oracle 11.2還允許管理員選擇重做日誌的塊大小。現代存儲單元使用4kb扇區大小,而不是最初的512b。

當RAC中的壹個實例出現故障時,所有線程將被合並以幫助建立恢復集,並且服務器監視器進程將執行前滾或回滾操作。

lgwr進程填充重做日誌後,其中壹個歸檔進程會將文件復制到指定的目錄。

閃回恢復區是在Oracle 10.1中引入的,這似乎是歸檔日誌的最佳存儲位置。如果不使用閃回恢復區,建議將歸檔日誌放在* * *文件系統中,以便每個節點都可以訪問它們。與單實例數據庫不同,RAC需要所有線程的歸檔日誌。當壹個實例執行介質恢復時,您可以從它的alter log中看到,Oracle使用每個線程的所有日誌文件。

還原表空間

與重做線程類似,集群數據庫的每個實例都由自己的還原表空間組成。實例和還原表空間之間的壹對壹映射關系在spfile中配置。但是,這種映射並不意味著還原表空間長期綁定到該實例,所有其他實例也可以訪問還原表空間來創建塊的預讀壹致映像。

向集群添加實例時,需要添加壹個新的還原表空間,並將其映射到實例,就像重做日誌壹樣。在策略管理的數據庫中,Oracle可以自己完成這項工作。

雖然仍然可以使用手動撤銷管理,但是強烈建議使用自動撤銷管理(AUM)。

RAC數據庫的存儲選項

管理員可以從以下選項中進行選擇:

ASM這是Oracle的首選存儲選項,也是RAC Standard Edition支持的唯壹配置OCFS2。

不建議使用原始設備,不僅因為它們被新的linux內核所拋棄,還因為它們不支持Oracle 11.2中的網絡文件系統(NFS)。

red hat全局文件系統僅在Red Hat和Oracle Enterprise Linux中受支持,可用於閃回恢復區和數據庫文件中的RAC實例。

RAC數據庫包含兩個或更多實例。通常,每個實例位於不同的節點上,由壹些共享內存結構和後臺進程組成。

每個實例都有自己的SGA,它是在實例啟動時分配的。Oracle在10g中引入了自動內存管理(ASMM ),在11g中引入了自動內存管理(AMM)。然而,AMM與linux的大頁面不兼容,這對具有大內存的系統來說是個問題。

Oracle需要同步訪問本地內存和整個集群。所有實例都可以訪問其他實例的SGA。

在RAC中,Oracle內核對* * *共享內存的保護措施與單實例中的相同,也使用了閂鎖和鎖。閂鎖是壹種低級輕量級串行設備。請求閂鎖的進程不會排隊,如果該進程無法獲得閂鎖,它將進入自旋狀態。Spin意味著這個進程將進入壹個緊循環,以防止它被操作系統的調度程序從CPU中移除。如果壹個進程長時間沒有獲得閂鎖,它將進入睡眠狀態,並在壹段時間間隔後再次嘗試應用。閂鎖是實例級的,沒有集群範圍的閂鎖。

另壹方面,請求鎖的時間比請求閂鎖的時間更長,這就更復雜了。鎖可以是* * *獨占的,也可以是獨占的。請求鎖的過程在先進先出(FIFO)機制中等待,鎖的訪問由隊列控制,這在集群的範圍內。

緩存壹致性的要求意味著RAC中的鎖和閂鎖比單個實例更復雜。與在單實例中壹樣,對數據庫和緩沖區緩存中的隊列的訪問必須在本地實例中進行管理,但是對遠程實例的訪問也需要進行管理。因此,Oracle使用全球資源目錄(GRD)和壹些額外的後臺進程。

(Oracle將V$ view和實例標識結合起來形成GV$ view,壹個GV$ view包含集群中所有實例的動態性能視圖)全局資源目錄(GRD)

RAC中使用了壹些額外的後臺進程來同步緩存——請記住,RAC使用緩存融合結構來模擬跨集群中所有節點的全局SGA。對緩沖區緩存中的塊的訪問需要在讀壹致性和寫訪問之間進行協調,而* * *享受資源的隊列現在也在全局集群上。全局緩存服務GCS用於訪問公共* * *緩沖區緩存,全局入隊服務GES用於管理集群中的隊列。

GCS和GES對應用程序是透明的。內部使用的原始結構是前面提到的GRD,由全球控制系統和GES進程維護。GRD分布在集群的所有節點上,是SGA的壹部分,這就是為什麽在相同的情況下,RAC數據庫的SGA比單個實例數據庫的大。資源管理由GCS和GES協商。特定的資源完全由壹個實例管理,該實例就是資源主機。但是,它不是固定的。Oracle 9.2以後,實現了動態資源管理(DRM)。在9.2之前,僅當實例失敗且GRD系統重建時,才會重新管理資源。在新版本中,如果Oracle檢測到在給定的時間間隔內非資源主控的實例過於頻繁地訪問特定資源,將會發生資源主控。在這種情況下,資源將被重新托管到其他節點,即另壹個頻繁訪問資源的節點將成為資源主節點。很多用戶反饋了壹些動態復刻的問題,發生太頻繁會造成壹些不必要的開銷。在這種情況下,可以禁用DRM。

(GRD還記錄哪些資源由哪些實例管理。當壹個實例出現故障時,恢復會非常方便。下圖顯示了GCS如何與GES合作維護GRD。

全球緩存服務(GCS)

LMSn守護進程使用GCS來維護全局緩沖區緩存中的緩存壹致性,SGA可以存儲同壹個數據塊的多個副本(只有壹個當前版本)。GCS跟蹤數據塊的狀態和位置,並通過內部連接將數據塊傳輸到其他節點實例。

全球排隊服務(GES)

與GCS類似,GES在塊級別工作,管理集群中的全局隊列。根據經驗,如果操作不涉及控制/移動全局緩沖區高速緩存中的數據塊,則很可能由GES處理。全局隊列服務負責所有實例中的資源操作,例如訪問數據字典和庫緩存或事務的全局管理。它還可以檢測集群中的死鎖。當多個實例同時訪問資源時,它跟蹤Oracle隊列機制的狀態。全局隊列服務監控(LMON)和全局隊列服務後臺進程(LMD)構成了全局隊列服務的壹部分。鎖進程LCK0負責無緩存的訪問,比如庫和行緩存請求。

緩存融合(緩存融合)

緩存融合是實例間數據傳輸的最新發展。Oracle 8i中使用了阻塞ping機制。相反,Oracle使用高速內部連接來傳輸數據塊,以便在所有節點之間進行讀寫。

使用塊ping方法在實例之間傳輸數據塊的開銷非常大。建議您將工作負載與實例關聯起來,以最大限度地減少實例之間的數據塊傳輸。在Oracle Parallel Server中,當壹個實例請求修改壹個數據塊,並且該數據塊當前由其他實例持有時,它將向持有該數據塊的實例發送壹個信號,以將該數據塊寫入磁盤,然後發回壹個信號,表明該數據塊是可讀的。這種方式的通信量和對磁盤的讀寫操作量都不盡如人意。

緩存融合的塊轉移依賴於全局資源目錄,不需要超過3跳,這與安裝和節點數量有關。顯然,如果壹個集群只有兩個節點,就會有壹個雙向緩存傳輸。如果有2個以上的節點,則需要將跳數限制為3次。Oracle使用特殊的等待事件來衡量涉及緩存的通信,並根據實際情況決定進行雙向或三向緩存轉移。

當實例通過緩存融合請求數據塊時,它首先聯系資源的主節點,以確定資源的當前狀態。如果資源沒有被使用,它可以通過從本地磁盤讀取來獲取塊。如果資源正在被使用,資源主機會將資源傳遞給發出請求的實例。如果此資源立即收到來自1或更多實例的修改請求,它將被添加到GRD,並且資源的主服務器、請求者和持有者可以不同。在這種情況下,最多跳三次就能得到這個塊。

上面說的雙向三向塊轉移,和資源的管理模式有關。當資源的主人持有所請求的資源時,對數據塊的請求可以立即得到滿足,並且可以開始傳輸數據塊,這是雙向通信。在三個方向的情況下,請求方、主控方和持有方是不同的,所以資源主控方需要轉發這個請求,這就導致了新的跳轉。

從剛才的討論可以知道,塊和它們在全局緩沖區緩存中的映像之間的協調性是不可低估的。在RAC數據庫中,緩存融合往往代表著最大的收益和最高的成本。優點是緩存融合的運算量理論上成比例增加,而且可能達到近乎線性的可擴展性。但是,緩存融合帶來的額外工作負載可能在10%-20%的範圍內。

讀取壹致性

Oracle數據庫的壹個主要特點是可以同時提供不同視角的數據。這個特性叫做多版本閱讀壹致性。查詢是讀壹致的,寫不會阻塞讀,反之亦然。當然,多版本讀取壹致性對於RAC同樣有效,但是涉及到壹點其他工作。

系統變更號(SCN)是Oracle的內部時間戳,對於讀取壹致性非常重要。如果本地實例請求塊的讀壹致版本,它需要聯系該塊的資源主機,以確定該塊是否具有相同SCN的版本,或者遠程實例的緩沖區高速緩存中是否存在更新的版本。如果這個塊存在,資源主機將向相應的遠程實例發送壹個請求,將這個塊的讀壹致版本轉發給本地實例。如果遠程實例持有這個塊的請求時間SCN的版本,它將立即發送這個塊。如果遠程實例持有此塊的更新版本,它將創建此塊的副本(稱為預鏡像),對該副本應用回滾以使其返回到相應的SCN狀態,然後通過內部連接發送它。

系統變更號

SCN是Oracle數據庫生成和使用的內部時間戳。數據庫中的所有事件都標有SCN,事務也是如此。Oracle的讀取壹致性很大程度上取決於SCN和還原表空間中的信息。SCN需要在集群中同步。RAC中使用了兩種方案來使SCN在所有節點之間通用:提交時廣播和Lamport。

Broadcast-on-commit是10.2之後的默認方案,解決了Lamport方案的壹個問題:以前這個默認方案是Lamport,它承諾了更好的可擴展性,使SCN像其他集群通信壹樣傳播,但是在壹個節點中提交後並沒有立即發生。這在大多數情況下可以滿足要求,但是Lamport方案有壹個問題:有可能壹個節點的SCN相對於另壹個節點的SCN有延遲,尤其是在消息傳輸不活躍的時候。SCN中的這種延遲意味著在壹個節點上提交的事務從另壹個延遲的實例來看“看起來”有點太新。

另壹方面,提交時廣播方案需要更多的資源。LGWR進程在每次提交後更新全局SCN,並將其廣播給所有其他實例。在RAC11.1中,初始化參數max_commit_propagation_delay允許數據庫管理員修改默認設置,該參數在RAC 11.2中已被刪除。