ORACLE ASM 基礎篇

dayong2015發表於2014-09-18
文章參考:http://tech.it168.com/db/2007-08-15/200708150006259.shtml
1.ASM 介紹

ASM(Automated Storage Management)自動儲存管理,它是自ORACLE10g推出的新功能。這是Oracle提供的一個卷管理器,用於替代操作作業系統所提供的LVM,它不僅支援單例項配置,也支援RAC這樣的多例項配置。將給Oracle資料庫管理員帶來極大的方便,ASM可以自動管理磁碟組,並提供資料冗餘和最佳化。特別是對於企業極的大型資料庫管理員來說,可以使管理員可以從管理成百上千個資料檔案這些瑣碎的日常事務中解脫開來,以便處理其它更為重要的事務上去。
在Oracle 10g版本之前,管理一個大型資料庫成百上千個的資料檔案對資料庫管理員來說是一個既無技術含量又十分枯燥的工作,這要求資料庫管理員要熟悉一些系統的LVM的相關知識,做好磁碟規化,LV的條帶等相關的系統方面的相關操作。而使用自動儲存管理將大大減輕這方面的工作量,資料庫管理員只需要管理少數幾個磁碟組即可。一個磁碟組是ASM管理的一個邏輯單元,由一組磁碟裝置組成。我們可以定義一個磁碟組作為資料庫的預設磁碟組,Oracle會自動管理儲存,包括建立、刪除資料檔案等。Oracle會自動將這些檔案與一個合適的資料庫物件做關聯,這樣我們在管理這些物件時只需要提供物件的名稱,而無需像以前那樣提供詳細的檔名。 
ASM提供了很多有用的儲存技術,如RAID和LVM(邏輯卷管理)等。像這些技術一樣,ASM允許你在一組獨立的磁碟上建立一個單獨的磁碟組。這樣就實現了單個磁碟組的I/O均衡。同時ASM還實現了條帶化(Striping)和磁碟映象(Mirroring)以提高I/O的效能和資料可靠性。與RAID或LVM不同的是,ASM是在檔案級實現的條帶化和映象,這樣的實現方式給使用者帶了很大選擇自由度,我們可以在同一個磁碟組中對不同的檔案配置不同的儲存屬性,實現不同的儲存方式。
2. ASM 的特點
1)自動調整I/O負載
ASM可以在所有可用的磁碟中自動調整I/O負載,不但避免了人工調整I/O的難度,而且也最佳化了效能,同時,利用ASM可以線上增加資料庫的大小,而無需關閉資料庫。
2)條帶化儲存
ASM將檔案分為多個分配單元(Allocation Units, AU)進行儲存,並在所有磁碟間平均分配每個檔案的AU。
3)線上自動負載均衡
當共享儲存裝置有變化時,ASM中的資料會自動均勻分配到現有儲存裝置中。同時,還可以調節資料的負載均衡速度。
4)自動管理資料庫檔案
在ASM儲存管理中,Oracle資料檔案是ASM自動管理的。ASM建立的任何檔案一旦不再需要,就會被自動刪除。但是,ASM不管理二進位制檔案、跟蹤檔案、預警日誌和口令檔案。
5)資料冗餘
ASM透過磁碟組映象可以實現資料冗餘,不需要第三方工具。
6)支援各種Oracle資料檔案
ASM儲存支援Oracle資料檔案、日誌檔案、控制檔案、歸檔日誌、RMAN備份集等。
3.ASM的組成
ASM組成包括:disk groups, disks, failure groups, files, and templates.
ASM透過建立磁碟組用來存放資料庫檔案,ORACLE支援SQL宣告來建立和管理磁碟組、內容和源資料;當ASM例項啟動的時候,會自動查詢可用的ASM Disks ;failure groups 決定ASM使用哪個disks來儲存冗餘對映資料;files寫在ASM磁碟上,被稱為ASM files;Templates用來收集檔案屬性資訊,並且在建立ASM 磁碟組的時候被用來設定每個資料庫檔案型別的對映和條帶化。
4.ASM 例項和資料庫對應關係

從上圖右側ASM的物理構成可以看出,在頂層是ASM磁碟組,ASM例項和資料庫例項可以直接訪問這些磁碟組;然後是ASM檔案,每個檔案只能包含在一個磁碟組中,不過,一個磁碟組中可以包含屬於多個資料庫的多個ASM檔案,並且單個資料庫可以使用來自多個磁碟組的儲存空間;第三部分是ASM磁碟,多個ASM磁碟組成了ASM磁碟組,但每個ASM磁碟只能屬於一個磁碟組;接著是AU(分配單元),AU是ASM磁碟組分配的最小連續磁碟空間,ASM磁碟按照AU進行分割槽,每個AU的大小為1MB;這個結構的底層是ORACLE資料塊,由於AU是ASM分配的最小連續磁碟空間,因此,ASM是不允許跨分配單元拆分一個ORACLE資料塊的。
要使用ASM,需要在啟動資料庫例項之前,先啟動一個名為"+ASM"的例項,ASM例項不會裝載資料庫,啟動它的目的是為了管理磁碟組和保護其中的資料。同時,ASM例項還可以向資料庫例項傳遞有關檔案佈局的資訊。透過這種方式,資料庫例項就可以直接訪問磁碟組中儲存的檔案。
5.Cluster ASM 架構:

ASM例項與資料庫例項進行通訊的橋樑是ASMB程式,此程式執行在每個資料庫例項上,是兩個例項間資訊交換的通道。ASMB程式先利用磁碟組名稱透過CSS獲得管理該磁碟組的ASM例項連線串,然後建立一個到ASM的持久連線,這樣兩個例項之間就可以透過這條連線定期交換資訊,同時這也是一種心跳監控機制。
6.ASM程式
ASM例項除了傳統的DBWR,LGWR,CKPT,SMON,PMON等程式還包含如下四個新後臺程式:
* RBAL:負責協調磁碟組的重新平衡活動(負責磁碟組均衡)
* ARB0-ARBn:在同一時刻可以存在許多此類程式,它們分別名為ARB0、ARB1,以此類推,執行實際的重新平衡分配單元移動程式。
* GMON:用於ASM磁碟組監控
* O0nn 01-10:這組程式建立到ASM例項的連線,某些長時間操作比如建立資料檔案,RDBMS會透過這些程式向ASM傳送資訊
ASMB與ASM 例項的前臺程式連線,週期性的檢查兩個instance的健康狀況。每個資料庫例項同時只能與一個ASM例項連線,因此資料庫只會有一個ASMB後臺程式。如一個節點上有多個資料庫例項,它們只能共享一個ASM例項。
RBAL用來進行全域性呼叫,以開啟某個磁碟組內的磁碟。ASMB程式與該節點的CSS守護程式進行通訊,並接收來自ASM例項的檔案區間對映資訊。ASMB還負責為ASM例項提供I/O統計資料
CSS叢集同步服務。要使用ASM,必須確保已經執行了CSS叢集同步服務,CSS負責ASM例項和資料庫例項之間的同步。
批註:ASM例項必須要先於資料庫例項啟動,和資料庫例項同步執行,遲於資料庫例項關閉。ASM 例項和資料庫例項的關係可以是1:1,也可以是1:n。如果是1:n,最好為ASM 安裝單獨的ASM_HOME。
7.ASM 冗餘策略
ASM使用獨特的映象演算法:不映象磁碟,而是映象盤區。作為結果,為了在產生故障時提供連續的保護,只需要磁碟組中的空間容量,而不需要預備一個熱備(hot spare)磁碟。不建議使用者建立不同尺寸的故障組,因為這將會導致在分配輔助盤區時產生問題。ASM將檔案的主盤區分配給磁碟組中的一個磁碟時,它會將該盤區的映象副本分配給磁碟組中的另一個磁碟。給定磁碟上的主盤區將在磁碟組中的某個夥伴磁碟上具有各自的映象盤區。ASM確保主盤區和其映象副本不會駐留在相同的故障組中。磁碟組的冗餘可以有如下的形式:雙向映象檔案(至少需要兩個故障組)的普通冗餘(預設冗餘)和使用三向映象(至少需要3個故障組)提供較高保護程度的高冗餘。一旦建立磁碟組,就不可以改變它的冗餘級別。為了改變磁碟組的冗餘,必須建立具有適當冗餘的另一個磁碟組,然後必須使用RMAN還原或DBMS_FILE_TRANSFER將資料檔案移動到這個新建立的磁碟組。
三種不同的冗餘方式如下:
*  外部冗餘(external redundancy):表示Oracle不幫你管理映象,功能由外部儲存系統實現,比如透過RAID技術;有效磁碟空間是所有磁碟裝置空間的大小之和;(一般生產環境下常是用這種冗餘策略)
*  預設冗餘(normal redundancy)表示Oracle提供2份映象來保護資料,有效磁碟空間是所有磁碟裝置大小之和的1/2 ;
* 高度冗餘(high redundancy)表示Oracle提供3份映象來保護資料,以提高效能和資料的安全,最少需要三塊磁碟(三個failure group);有效磁碟空間是所有磁碟裝置大小之和的1/3,雖然冗餘級別高了,但是硬體的代價也最高。
8.在ORACLE 11g中ASM都有哪些新特徵:
1)快速重新同步(ASM Fast Mirror Resync)
短暫的磁碟路徑發生問題時,恢復ASM磁碟組(DISK GROUP)的允餘性是很費時間的,特別是這種恢復操作需要重新佈局整個磁碟組的情況下。ASM快速磁碟重新同步這個新特徵能顯著減少重新同步一塊壞磁碟時這種情況的時間,當你更換了壞磁碟,ASM能夠快速的同步ASM磁碟的extent。 
任何使磁碟組臨時不可用的問題被認為是暫時的失效,這是ASM快速重新同步新特徵可以恢復的。磁碟路徑失效,例如介面線問題,主機介面卡問題,磁碟控制器問題,或者是磁碟電源問題這些都能引起瞬時失效。預設的情況下,當一塊磁碟離線時,ASM會立刻移出該磁碟。ASM快速再同步功能夠記錄離線磁碟在離線期間該磁碟上區的所有的變化,當磁碟被修復或再次聯機時,這期間更改的extent能夠被快速的重新同步到剛才失效的這些磁碟中。 
你可以設定DISK_REPAIR_TIME這個屬性使失效磁碟在被修復和再次聯機這段時間內重新整理這樣的操作不發生。這個時間可以以分鐘(m或M)或者小時(h或H)為單位,如果你不指定時間單位,預設的時間單位為小時。如果DISK_REPAIR_TIME這個屬性沒有設定,其預設值為3.6小時。需要注意的是,這個預設值適用於磁碟被設定為離線模式而操作語句沒有DROP AFTER子句這樣的情況。大部分來說環境,3.6個小時這個DISK_REPAIR_TIME預設屬性數值應該都是合適的。  
批註1:使用這項新功能,ASM磁碟組的相容性需要設定至11.1或更高。例: 
CREATE DISKGROUP asmdskgrp1 DISK '/dev/raw/*' 
SET ATTRIBUTE 'compatible.rdbms' = '11.1', 'compatible.asm' = '11.1'; 
只有當包含離線磁碟的磁碟組再次被掛上,消逝時間(自磁碟被設定成離線模式後)都是增加的,V$ASM_DISK的REPAIR_TIME這列顯示的是離線磁碟在被刪除之前所剩餘的時間(單位:秒),當指定的時間到達後,ASM刪除磁碟,可以用帶有DROP AFTER的ALTER DISKGROUP DISK OFFLINE語句來覆蓋這個屬性。 
批註2:DROP AFTER也是11g的新特徵。 
如果一條ALTER DISKGROUP SET ATTRIBUTE DISK_REPAIR_TIME操作的磁碟組含有離線的磁碟,這個屬性只對當前那些非離線模式的磁碟是生效的。 
當一塊離線磁碟被第二次執行離線操作,消逝時間會被重置並重新開始計算。如果另一個時間這塊磁碟又被執行了DROP AFTER操作,上一個值會被覆蓋並且新值生效。不能用ALTER DISKGROUP DROP DISK語句刪除處於離線狀態的磁碟,這樣操作時會報錯。如果在某時情況,例如磁碟不能夠被修復,需要在DISK_REPAIR_TIME到達前把磁碟刪除時,可以再次執行帶有DROP AFTER子句的OFFLINE語句,DROP AFTER指定0H或0M,表示立刻刪除。 
你可以用ALTER DISKGROUP來設定磁碟組的DISK_REPAIR_TIME屬性,可以是分鐘,也可以是小時,例如4.5小時或270分鐘,例如: 
ALTER DISKGROUP dg01 SET ATTRIBUTE 'disk_repair_time' = '4.5h' 
ALTER DISKGROUP dg01 SET ATTRIBUTE 'disk_repair_time' = '270m' 
在你修復磁碟後,執行ALTER DISKGROUP DISK ONLINE這條SQL語句可以使磁碟組恢復到聯機狀態,新的讀寫操作都可以正常進行了,這條語句也觸發把磁碟維修期間內更改的extent從磁碟組冗餘的資料重新同步到剛才失效的這些磁碟中。
2)ASM滾動升級 
在ORACLE11g及之後的版本,你可以把ASM的叢集置為"滾動升級"模式,充許不同版本的ASM結點共同工作。滾動升級"模式中的每個結點能夠獨立的升級或打補丁,而不會影響到資料庫的使用,因些其很大的提升資料庫的正常執行時間。需要注意的是你只可以對ORACLE11g及之後的版本進行"滾動升級",換句話說,你不能用這種功能把ORACLE10g的資料庫升級到11G的。 
在進行滾動升級前,你的環境也一定要做一定的準備的。舉例來說,如果你使用了ORACLE Clusterware軟體,在你開如做滾動升級前,Clusterware也一定要完整的升級到下一個滿足要求的版本。當然,做Clusterware升級時也應當用滾動的方式,更大的確保高穩定性和最大的正常執行時間。 
在對一個結點的ASM軟體打補丁或進行升級之前,必須把ASM叢集置為滾動升級模式,這允許開始升級和操作你的環境在多個軟體版本的模式,語句如下
ALTER SYSTEM START ROLLING MIGRATION TO number; 
批註:number是由版本號、發行號、更新號、埠發行號和埠更新號這幾部分組成的,中間以逗號分開,例如11.2.0.0.0。 
例項在執行這條語句時會檢查你指定的number與當前已安裝的軟體版本是不是相容。當升級開始後,ASM例項只有如下的一些操作才是充許的: 
* 磁碟組掛載和解除安裝 
* 資料庫檔案開啟,關閉,重新設定尺寸和刪除 
* 限制訪問ORACLE自帶的檢視和包,所有的全域性檢視都是失效的 
在滾動升級開始後,可以任意一個宕掉ASM例項來進行軟體升級,升級完的ASM例項在啟動後會自動重新加入ASM叢集。當叢集中的所有例項都完成升級到最新的軟體版本後,你就可以結束滾動升級模式了。 
如果一塊磁碟在ASM例項進行滾動升級時是離線的,那麼直到升級結速這塊磁碟都會保持離線的狀態,而且直到ASM叢集回到正常模式觸發刪除磁碟的記時器也是停止的。 
如果升級過級出現問題,可以用同樣的過程回滾結點的軟體到之前的版本。叢集的任一地方有資料重整操作,升級會失敗,所以必須等資料重整操作完成才可以開始滾動升級。另外,只要叢集中有一個結點是活動的,滾動升級狀態是保留的。 
如果一個叢集正在進行滾動升級時一個新的ASM例項加進來,新的例項會被告知叢集正處在滾動升級模式,你可以用如下的SQL語句查詢ASM叢集環境的狀態: SELECT SYS_CONTEXT('sys_cluster_properties', 'cluster_state') FROM DUAL; 
如果ASM叢集所有的例項都停了,那麼當任何一個ASM例項重新啟動,這個例項都會脫離滾動升級模式。如要例項都重新啟動後  還要進行升級,必須重新開始滾動升級操作。 
當滾動升級完成後,執行如下的SQL: 
ALTER SYSTEM STOP ROLLING MIGRATION; 
發出這條語句後,ORACLE做了如下的一些操作: 
* 校驗ASM叢集的所有成員的軟體版本是不是相同,如果一個或幾個例項執行在不同的軟體版本,這條語句會報錯,叢集繼續處在滾動升級模式. 
* 使叢集的所有例項都脫離滾動升級模式,叢集開始全功能工作 
* 如果設定ASM_POWER_LIMIT引數允許資料重整理,因滾動升級而被阻塞的資料重整理操作會重新開始。
3)為ASM管理員新增了SYSASM許可權和OSASM作業系統使用者組 
在ORACLE10g這個版本,ORACLE沒有為ASM管理員定製相應的角色,ASM管理員以SYSDBA角色進行管理工作,在實際工作中ASM管理員與資料庫管理員可能是不同的兩個或幾個人完成的,相對來說許可權界定不清晰.11g這一新特徵引入SYSASM這一新許可權目的就是為了清晰ASM管理員與資料庫管理員的介面,防止越權操作的發生,使ASM管理員更好的進行ASM管理工作. 
這一新特徵同時在作業系統中也為ASM新增了OSASM使用者組,OSASM這個組是專門為ASM設計的,可以透過作業系統授權,被授權的這個組成員本地連線具有SYSASM許可權,能夠以SYSASM角色進行全許可權的ASM管理工作。最初,只有ASM的安裝使用者是這個組的成員,在後繼的工作,你可以新增新的使用者到OSASM這個使用者組,使新使用者有ASM管理的全部許可權。 
需要注意的是,在ORACLE11g Release1的這個版本,系統OSDBA組的成員,連入資料庫據有SYSDBA的許可權,這樣的使用者仍然可以連線並管理ASM的例項,但相信在後續的版本中有SYSDBA許可權的使用者不會被授權有ASM例項的管理許可權。 
4)ASM 可擴充套件性和效能的增強 
ASM檔案區管理在11g都有改進,體現在效能的提升和顯著的減少用於儲存檔案區的SGA記憶體方面。當ASM的檔案在大小上增加時,每一個區的大小也會自動的增加,因此,會有需要很少的指向區指標描述檔案。當訪問20GB至128TB大小的ASM檔案時11g的這個新特徵會提升效能。當然,這樣的檔案通常是非常大的資料庫(VLDBs)所用的。 
除此之外,當你建立新的磁碟組時,你現在有多個分配單位大小選項,例如1, 2, 4, 8,16, 32, 和64(MB)。依據資料庫的負載和儲存系統的型別,選擇大的分配單位可能會獲得明顯的效能提升。 
磁碟組儲存的ASM檔案的內容是由N個資料區組成的,資料區儲存在獨立的磁碟上。區包含一個或多個分配單位(AU).為適應逐漸增大的大檔案,ASM使用變化大小的區。 
變化大小的區能夠支援更大的ASM檔案,減少大資料庫對SGA記憶體的使用,並且提升檔案建立和開啟操作的效能。一個ASM檔案開始的一個區是由一個分配單位組成的。當檔案大小增加時,如果大小超出預先定義的值,新的區大小也會增加到8分配單位,然後新的區大小增加到64個分配單位。對於新建立的檔案,這一特徵自動生效的。 
分配單位的大小為多少在磁碟組建立的時侯確定,可以為1,2,4,8,16,32及64MB,當ASM檔案的大小範圍在1到20,000個區這個量級時,每個區的大小與分配單位的大小相等;ASM當檔案大小超出20,000個區,到20,001到40,000個區這個範圍,新的區的大小分自動增至8個分配單位大小;再有當ASM當檔案大小超出40,000個區,,新的區的大小分自動增至64個分配單位大小。
下圖表示的是含自塊磁碟的磁碟組,檔案由每個區1AU增至8AU的變化狀況,在這個配置中,ASM沒有做檔案映象的。

5)新的ASM 命令列 (ASMCMD)命令和選項。 
ASMCMD有下列的四個新的命令: lsdsk、md_backup、md_restore 和remap。除此之外,你還能使用帶有新選項的ls和lsdg命令。下面描述一下這四個新的ASM命令: 
lsdsk -不論是否有一個ASM的實列正在執行,這個命令都能列出ASM磁碟的資訊。當系統管理員或儲存管理員想檢視一下ASM例項都用了哪些磁碟時這個命令是非常有用的。 
md_backup和md_restore- 這兩個命令使能能夠用相同的磁碟路徑、磁碟名、失敗組、屬性、模板及目錄結構別名來重新建立已經存在的磁碟組。你可以使用md_backup備份磁碟組的環境,在出現問題的時侯用mk_restore來恢復相應的磁碟組。 
Remap-你可以使用這個命令重對映或者回復normal及high redundancy模式ASM磁碟組中的壞塊,ASM讀取ASM映像好的複製中相應的塊,並且把這些塊重新寫回到磁碟組中一個替代的位置。 
6)磁碟組相容性方面新的屬性 
磁碟組相容性概要 
為使用一些ASM的新功能,你可以使用兩個磁碟組相容性方面的屬性,COMPATIBLE.RDBMS和COMPATIBLE.ASM。這些屬性指定據庫和ASM 各自使用磁碟組所需的最小的軟體版本。預設情況下,這兩個屬性都被設成10.1,如果你想利用新特徵必須推進這些屬性。 
相容性屬性設定成早先發行的版本可以使客戶端訪問高版本的磁碟組,例如,Oracle 10g的客戶端能夠訪問Oracle11g的ASM磁碟組。 
ASM 和Oracle 資料庫磁碟組相容性屬性設定決定了系統可使用的最小的ASM和Oracle資料庫軟體版本。例如, 如果ASM 相容性是11.1, 並且Oracle 資料庫相容性是10.1, 那麼ASM 軟體版本必須至少是11.1, 並且Oracle 資料庫客戶軟體版本必須是至少10.1 。二個屬性設定是compatible.asm 和compatible.rdbms。 
ASM 的軟體版本決定最近建立的磁碟組的預設相容性,當你以CREATE DISKGROUP SQL語句創造磁碟組時,可以忽略磁碟組相容性設定。另外,可以使用ALTER DISKGROUP SQL語句為現有的磁碟組改變相容性設定。磁碟組相容性設定只能逐漸升高,你無法恢復回一個更低的相容性設定。 
COMPATIBLE.ASM和COMPATIBLE.RDBMS 
相容性屬性設定是透過這兩個引數完成的。COMPATIBLE.ASM屬性決定任一個ASM 事例使用一個磁碟組的最小的軟體版本。這個設定並且決定資料磁碟上ASM原資料的資料結構的格式。檔案內容的格式由資料庫例項決定的。對於Oracle 11g版本中的ASM, 10.1 是其預設的設定值。為更好的完成磁碟組相容性設定,應設定之前COMPATIBLE.RDBMS前先設定COMPATIBLE.ASM屬性。 
資料庫使用的所有磁碟組的COMPATIBLE.RDBMS屬性值必須小於或等於資料庫的COMPATIBLE初始引數設定值,對於Oracle 11g版本中的ASM, 10.1也是COMPATIBLE.RDBMS屬性的預設值。舉例來說, 如果資料庫相容初始化引數被設定成11.1.0, 那麼COMPATIBLE.RDBMS 只能被設定成10.1 和11.1 之間的任一值。 
設定磁碟組相容性的方法 
可能透過CREATE DISKGROUP or ALTER DISKGROUP兩個語句設定磁碟組的相容屬性。 
使用 CREATE DISKGROUP建立磁碟組時指定相容屬性 
以下例子建立一個正常冗餘盤磁碟組asmdskgrp1,ASM 相容屬性設定成10.2 ,與資料庫相容性屬性取預設值(假定COMPATIBLE.RDBMS 預設小於或等於10.2): 
CREATE DISKGROUP asmdskgrp1 DISK '/dev/raw/*' 
SET ATTRIBUTE 'compatible.asm' = '10.2'; 
以下例子建立一個正常冗餘盤磁碟組asmdskgrp2,ASM 相容屬性設定成11.1 ,與資料庫相容屬性取預設值(假定COMPATIBLE.RDBMS 預設小於或等於11.1): 
CREATE DISKGROUP asmdskgrp2 DISK '/dev/raw/*' 
SET ATTRIBUTE 'compatible.asm' = '11.2'; 
以下例子建立一個正常冗餘盤磁碟組asmdskgrp3,ASM 相容屬性及與資料庫相容屬性都取11.1: 
CREATE DISKGROUP asmdskgrp3 DISK '/dev/raw/*' 
SET ATTRIBUTE 'compatible.rdbms' = '11.1', 'compatible.asm' = '11.1'; 
使用ALTER DISKGROUP SQL語句為現有的磁碟組改變相容屬性 
在磁碟組被創造了之後, 您能使用ALTER DISKGROUP SQL語句改變相容屬性。使用ALTER DISKGROUP SQL語句在提交變動之前,需確保Oracle能提升指定盤組的相容性。為使進行ALTER DISKGROUP提升盤組相容性而不減少資料庫和檔案系統功能,所有影響的資料庫和檔案系統都應當是線上的。 
舉例: 
ALTER DISKGROUP asmdskgrp4 SET ATTRIBUTE 'compatible.rdbms' = '11.1'; 
ALTER DISKGROUP asmdskgrp5 SET ATTRIBUTE 'compatible.asm' = '11.1';
7)ASM 優先映象讀取 
優先映象讀取新特徵概要 
在擴充套件叢集中,如果遠端結點的訪問是不均衡的,這一新特徵對於提升效能是很有用的。這導致更好的儲存利用率,降低網路負載。Oracle 10g中,ASM總讀一個映象區集的主要複製,我們知道這樣做的目的是為了分散IO,提升效能。而對於一個磁碟組的一塊盤,對於某一個結點來說可能是本地盤,也可能是遠端盤,如果從主複製讀取資料,這個主複製又是遠端盤,顯然沒有本地盤效率高。不過在Oracle10g中是不能完成設定從哪塊盤讀取資料的,在11g中引入了ASM_PREFERRED_READ_FAILURE_GROUPS這個引數,即我們所談的ASM優先映象讀取新特徵,可以完成這樣的功能,如下再詳細說一下這個新特徵。 
當您配置ASM失敗組,它使結點從最靠近它的區讀取資料,這也許是最高效的,既使那個區是一個次要的區。換句話說,當次要區離結點較近時,你可以配置ASM 讀從一個次要區讀,而不是從較遠的主區讀。使用優先讀取失敗組對於擴充套件群集來說是非常有用的。 
使用這個特徵, 在擴充套件的叢集相對這個結點的本地盤,Oracle推薦配置至少一個映象的區複製。然而在一個RAC資料庫中,為一個結點被設定優先讀取的失敗組對另外的一個結點而言也許就是選程的,這倒不用擔心,每個例項優先讀取失敗組的引數設定是可以分別指定的。 
批註:預設情況下, 當您創造一個磁碟組, 磁碟組的每塊盤屬於一個失敗組。Oracle不推薦你為使用磁碟組的每一個例項配置超過一個優先讀取失敗組。如果你為每一個例項配置超過一個優先讀取失敗組, Oracle alter日誌會寫入警告資訊。 
配置和管理優先讀取失敗組 
要配置這個新特徵,需要設定ASM_PREFERRED_READ_FAILURE_GROUPS這個引數,引數為失敗組的一個列表,這個引數通常是在叢集的ASM例項中被使用的,也是在叢集的ASM例項中 有效的,並且每個例項設定不同的值,其預設值為NULL。引數的格式如下: 
舉例:diskgroup_name1.failure_group_name1, ... 
其中diskgroup_name表示的是磁碟組的名字,failure_group_name表示的是失敗組的名字。如果設定引數指定的磁碟組中並不存在相應的失敗組,ASM將忽略相應的失敗組。你可以以逗號分隔為ASM_PREFERRED_READ_FAILURE_GROUPS引數設定多個值。 
舉例: 
ASM_PREFERRED_READ_FAILURE_GROUPS= = diskgroup_name.failure_group_name,diskgroup_name1.failure_group_name1... 
8)ASM 快速的再平衡 
重新平衡操作發生在當磁碟組是在限制模式下,它消也除了Oracle RAC 環境裡鎖和解鎖extent map資訊在ASM 事例之間的傳訊,因此提升了總體重新平衡的吞吐量。

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