Oracle 11g R2 ASM:瞭解 Oracle ASM 基本概念

來源:互聯網
上載者:User
  • About Oracle ASM Instances

  • About Oracle ASM Disk Groups

  • About Mirroring and Failure Groups

  • About Oracle ASM Disks

  • About Oracle ASM Files


About Oracle ASM Instances

Oracle ASM 執行個體基於和 Oracle Database 執行個體相同的技術構建。Oracle ASM instance 具有類似於 Oracle 資料庫執行個體的 System Global Area (SGA) 和後台進程。但是,Oracle ASM 執行的任務比資料庫執行個體要少, Oracle ASM SGA 要比資料庫執行個體的 SGA 小很多。此外,Oracle ASM 對伺服器的效能影響非常小。Oracle ASM 執行個體負責
mount 磁碟組,使 Oracle ASM 檔案對資料庫執行個體可用;Oracle ASM 執行個體不會 mount 資料庫。

Oracle ASM 安裝在 Oracle Grid Infrastructure home 中,而 Oracle Database 則安裝在單獨的 Oracle home 中。Oracle ASM 和資料庫執行個體都需要共用訪問磁碟組中的磁碟。 Oracle ASM 執行個體負責管理磁碟組的中繼資料,為資料庫執行個體提供檔案的布局資訊。

Oracle ASM 使用 Oracle ASM 中繼資料來控制磁碟組。Oracle ASM 中繼資料位於磁碟組中,包含如下資訊:

  • 磁碟和所屬磁碟組的對應關係

  • 磁碟組上可用空間大小

  • 磁碟組上檔案的檔案名稱

  • 磁碟組資料檔案的 extent 的位置

  • 記錄有關自動更改中繼資料塊的資訊的 redo log

  • Oracle ADVM 卷資訊

Oracle ASM 可以通過 Oracle Clusterware 軟體實現叢集化;每個叢集節點一個 Oracle ASM 執行個體。如果同一個節點上存在多個同步的資料庫執行個體,則這些資料庫執行個體共用該節點上的一個 Oracle ASM 執行個體。

如果一個節點上的 Oracle ASM 執行個體失敗,則該節點上的所有資料庫執行個體也會失敗。與檔案系統磁碟機不一樣,一個 Oracle ASM 執行個體失敗不需要重啟作業系統。在 Oracle RAC 環境中,倖存節點上的 Oracle ASM 執行個體和資料庫執行個體會自動從失敗節點上的 Oracle ASM 執行個體進行恢複。

圖 1-1 顯示的是一個單節點 Oracle ASM 執行個體服務於多個資料庫執行個體的配置。Oracle ASM 執行個體負責管理中繼資料,並未 Oracle ASM 檔案提供空間分配。當資料庫執行個體建立或開啟一個 Oracle ASM 檔案時,資料庫執行個體首先會向 Oracle ASM 執行個體發出相應請求。然後,Oracle ASM 會作出響應,為資料庫執行個體提供檔案的 extent 位元影像資訊。

在圖 1-1 中有兩個磁碟組:一個磁碟組有4塊盤,另一個有2塊盤。資料庫對這兩個磁碟組都可以訪問。圖 1-1 顯示只需一個 Oracle ASM 執行個體便可為多個資料庫執行個體提供服務的配置。

Figure 1-1 Oracle ASM for Single-Instance Oracle Databases

圖 1-2 顯示的是 Oracle RAC 環境中的一個 Oracle ASM 叢集,其中 Oracle ASM 提供了一個叢集化的儲存池。每個節點一個 Oracle ASM 執行個體,叢集中的多個 Oracle RAC 資料庫或單一實例資料庫提供服務。所有資料庫都整合起來,共用兩個 Oracle ASM 磁碟組。

Figure 1-2 Oracle ASM Cluster Configuration with Oracle RAC

如  圖 1-3 所示,一個叢集化儲存池可以被多個單一實例 Oracle 資料庫所共用。在這種情況下,多個資料庫共用共用的磁碟組。共用 Oracle ASM 儲存池可以通過 Oracle Clusterware 實現。需要注意的是,在這類環境中不需要獲得 Oracle RAC license。

無論您是否要在節點上安裝 Oracle RAC,要在多個節點上共用磁碟組,必須在要共用的所有節點上安裝 Oracle Clusterware。單獨節點上的 Oracle ASM 執行個體不需要成為 Oracle ASM 叢集的一部分。但是,如果該 Oracle ASM 執行個體不屬於某個 Oracle ASM 叢集,則節點之間就無法彼此進行通訊。不屬於一個 Oracle ASM 叢集的多個節點無法共用 Oracle ASM 磁碟組。

Figure 1-3 Oracle ASM Cluster with Single-Instance Oracle Databases



About Oracle ASM Disk Groups

磁碟組由多塊磁碟組成,是 Oracle ASM 管理的基本對象。每個磁碟組包含磁碟組中用於空間管理的中繼資料。磁碟組組件包括磁碟、檔案和配置單位。

Oracle ASM 檔案是在磁碟組中進行分配的,所有 Oracle ASM 檔案都完全包含在單個磁碟組內。一個磁碟組可以包含屬於多個資料庫的檔案,一個資料庫可以使用來自多個磁碟組的溫家安。對於大多數安裝配置來說,一般只需要2到3個磁碟就足矣。


About Mirroring and Failure Groups

鏡像技術可以通過在多塊磁碟中儲存資料副本保護資料完整性。在建立磁碟組時,需要按照如下三種冗餘層級指定 Oracle ASM 磁碟組的類型:

  • Normal:2-way mirroring

  • High:3-way mirroring

  • External: 不使用 Oracle ASM 鏡像技術,使用 RAID 等硬體冗餘技術

冗餘層級控制能夠承受多大程度的磁碟故障而不用 dismount 磁碟組或遺失資料。磁碟群組類型決定了 Oracle 在磁碟組中建立檔案的鏡像層級。

Oracle ASM 鏡像比傳統的 RAID 鏡像要靈活許多。對於指定未 Normal 冗餘層級的磁碟組,可以為每個 Oracle ASM 檔案指定冗餘層級。例如,兩個共用同一磁碟組的檔案,可以為其中一個檔案建立鏡像,另一個不建立鏡像。

當 Oracle ASM 為鏡像檔案分配一個 extent 時,Oracle ASM 會分配一個 primary copy 和一個 mirror copy。 Oracle ASM 會選擇與 primary copy 所在磁碟組同步的 failure group (故障組)來儲存 mirror copy。故障組用於存放資料的鏡像副本,以實現每個副本存放在不同故障組中的磁碟上,這樣當一個故障組中的所有磁碟發生故障時,也不會導致資料丟失。

在建立 Oracle ASM 磁碟組時,可以為磁碟組定義故障組。磁碟組建立後,就無法再修改該磁碟組的冗餘層級。如果忽略故障組指定,則 Oracle ASM 會將每個磁碟放進自己的故障組中(包含 Oracle Exadata cell 上的磁碟的磁碟組除外)。Normal 冗餘磁碟組需要至少兩塊故障組。High 冗餘磁碟組需要至少三塊磁碟組。External 冗餘的磁碟組不需要使用故障組。


About Oracle ASM Disks

Oracle ASM 磁碟是用於配置 Oracle ASM 磁碟組的存放裝置。Oracle ASM 磁碟樣本包括:

  • 存放裝置陣列上的磁碟或分區

  • 一整塊磁碟或磁碟上的分區

  • 邏輯卷

  • NFS (Network-attached files)

在向磁碟組中添加磁碟時,可以手動分配 Oracle ASM 磁碟名稱,也可以讓 Oracle ASM 自動分配 Oracle ASM 磁碟名稱。此名稱與作業系統使用的路徑名稱不同。在一個叢集中,一塊磁碟在不同節點上可能會被分配不同的作業系統裝置名稱,但是該磁碟在所有節點上都具有相同的 Oracle ASM 磁碟名稱。在叢集中,Oracle ASM 磁碟必須可以從共用該磁碟組的所有執行個體進行訪問。

Oracle ASM 會將檔案均衡地分布在磁碟組中的所有磁碟上。這種分配方式按照相同的容量層級維護每塊磁碟,確保磁碟組中的所有磁碟都具有相同的 I/O 負載。由於 Oracle ASM 將負載平衡分散於磁碟組中的所有磁碟上,不同的 Oracle ASM 磁碟不必共用同一物理磁碟機。

Allocation Units

每塊 Oracle ASM 磁碟被分為若干個配置單位 (AU)。配置單位是磁碟組空間分配的基本單位。一個檔案 extent 由一個或多個配置單位組成。Oracle ASM 檔案由一個或多個檔案 extent 組成。

在建立磁碟組時,可以使用  AU_SIZE 磁碟組屬性指定 Oracle ASM 配置單位的大小。該值可以設定為 1、2、4、8、16、32 或 64 MB,具體情況視特定磁碟組的相容性層級而定。對於資料倉儲類型的應用,存在大量的 sequential reads,較大的 AU 大小,通常可以提供更佳的效能優勢。

About Oracle ASM Files

儲存在 Oracle ASM 磁碟組中的檔案稱為 Oracle ASM 檔案。每個 Oracle ASM 檔案包含在單個 Oracle ASM 磁碟組中。Oracle Database 以檔案形式與 Oracle ASM 進行互動。這與 Oracle Database 使用任意檔案系統上的檔案類似。Oracle ASM 磁碟組中可以存放以下類型的檔案:

  • 控制檔案

  • 資料檔案、臨時資料檔案和資料檔案副本

  • SPFILE

  • Online redo log、 archive log 和 Flashback log

  • RMAN 備份

  • 災難恢複配置

  • Change tracking bitmap

  • Data Pump dumpset

Oracle ASM 會在建立檔案和資料表空間時自動產生 Oracle ASM 檔案名稱。 Oracle ASM 檔案名稱以加號 (+) 開頭,後跟磁碟組名稱。可以為 Oracle ASM 檔案指定方便使用的別名,為別名建立層次目錄結構。

Oracle ASM 檔案包含如下組件:

  • Extents

  • Oracle ASM Striping

  • File Templates

Extents

Oracle ASM 檔案的內容是以一組或一系列儲存在磁碟組內各個磁碟上的  extent 的形式存放在磁碟組中。 每個 extent 位於一個單獨的磁碟。Extent 又由一個或多個 allocation unit (AU) 組成。為了適應檔案大小的不斷增加,Oracle ASM 使用可變大小的 extent。

對於大型資料庫而言,可變大小的 extent 可以支援更大的 Oracle ASM 資料檔案,減少 SGA 記憶體的請求次數,提高檔案建立和開啟的效能。初始化 extent 的大小等於磁碟組配置單位的大小,按照預定的係數 4 或 16 不斷地增加。當特定的磁碟組相容性屬性設定為 11.1 以上時,此特性會自動建立資料檔案,並儲值資料檔案的大小。

Extent 大小按照如下方式變化:

  • 在前 20000 extent 集  (0 - 19999) 內,extent 的大小始終等於磁碟組的 1*AU。

  • 在下一個  20000 extent 集 (20000 - 39999)內,extent 的大小等於 4*AU。

  • 在 40000+以上的 extent 集, extent 的大小等於 16*AU。

圖 1-4 顯示的是 Oracle ASM 檔案 extent 與配置單位之間的關係。前 8 個 extent (0 to 7) 分佈於 4 個 Oracle ASM 磁碟,大小等於 1*AU。在前一個 20000 extent 集之後,下一個 20000 extent 集 (20000 - 39999) 內,extent 的大小變為 4*AU。This is shown as bold rectangles extent 20000 ~ 20007
的大小變為了 4*AU,用粗體矩形標籤註明。

Figure 1-4 Oracle ASM File Allocation in a Disk Group

Oracle ASM Striping

Oracle ASM 條帶化主要有以下兩個目的:

  • 將負載平衡分散在磁碟組中的所有磁碟上

  • 減少 I/O 延遲

ASM 條帶化分為粗粒度條帶化和細粒度條帶化。粗粒度的條帶化為磁碟組提供負載平衡,而細粒度條帶化則可以通過廣泛地分散負載減少特定檔案類型的 I/O 延遲。

為了對資料進行條帶化,Oracle ASM 將檔案條帶化儲存,將檔案中的資料均勻分佈於磁碟組中的所有磁碟上。在任何配置中,細粒度條帶的大小始終等於 128 KB;這可以為小型的 I/O 操作提供較低的  I/O 延遲。粗粒度條帶的大小始終等於 AU size (非 資料 extent 的大小)。

圖 1-5 和圖 1-6 展示了 Oracle ASM 檔案條帶化。在 2 個圖中,AU 大小都為 1 M (AU_SIZE = 1M) ,磁碟組為 8 塊磁碟構成。執行個體版本為 Oracle ASM 11g Release 2 (11.2),磁碟組的 ASM 和 RDBMS 相容性屬性設定為 11.2,圖中顯示了在前20000個extent之後,extent
的大小發生了變化。對於前 
20,000 個 extent,extent 的大小為 1 M 等於 1*AU。對於下一個 20,000 extent 集,extent 的大小為 4 M,等於 4*AU。

在圖 1-5 中,檔案以 128 K 小塊(以 A……X 為標籤)的形式進行條帶化,每個 128 K 小塊都儲存在一個 extent 中,從磁碟 1中的第一個 extent 開始,依次是磁碟 2 中的第一個 extent,然後以迴圈方式依次分佈於所有磁碟,直到整個檔案都被條帶化。如本例中所示,條帶化的小塊首先填滿每個磁碟的第一個 extent,然後再填每個磁碟的第二個 extent,直至整個檔案全被條帶化。

Figure 1-5 Oracle ASM Fine-Grained Striping

在圖 1-6 中,檔案以 1 M 小塊(以 A……X 為標籤)為單位進行條帶化,其中每個 1 M 小塊唯一地儲存在一個 extent 中,從磁碟 1 的第一個 extent 開始,依次是磁碟 2 的第一個 extent, 然後以迴圈方式依次分佈於所有磁碟,直到整個檔案都被條帶化。 對於前 20,000 個 extent,extent 的大小等於 1*AU (1M),條帶的大小等於 extent 大小和配置單位的大小。對於可變的 extent,一個
extent 由多個配置單位組成,檔案條帶位於 extent 的 AU 內。在條帶化延伸至下一個 extent 之前,條帶化的小塊都位於所有磁碟的第一個 extent 的配置單位內。

Figure 1-6 Oracle ASM Coarse-Grained Striping

File Templates

模板是用於在建立 Oracle ASM 檔案時指定磁碟地區、檔案鏡像以及條帶化屬性的一系列屬性值。在建立一個檔案時,可以包含一個模板名稱,按照各個檔案而不是檔案類型分配所需的屬性。

預設的模板是用於所有 Oracle 檔案類型,可以定製模板來滿足特定的需求。所有磁碟組對於每種檔案類型都有一個預設的模板。


轉載請註明作者出處及原文連結,否則將追究法律責任:

作者:xiangsir

原文連結:http://blog.csdn.net/xiangsir/article/details/10249637

QQ:444367417

MSN:xiangsir@hotmail.com




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.