摘 要:本文首先介紹了什么是ASM,然后分析了ASM的優(yōu)點,最后重點闡述了Oracle11g中ASM的新特性。這可以為使用Oracle11g或即將升級到Oracle11g的數(shù)據(jù)庫管理員在數(shù)據(jù)存儲管理工作方面提供參考。
關(guān)鍵詞:Oracle 11g;ASM;實例
中圖分類號:TM925.12
1 什么是ASM
ASM是Automatic Storage Management的簡寫,即自動存儲管理,是Oracle 主推的一種面向Oracle的存儲解決方案。Oracle數(shù)據(jù)庫從10g版本開始推出此項功能,以實現(xiàn)自動管理磁盤組,并提供數(shù)據(jù)冗余和自動實現(xiàn)I/O優(yōu)化及負(fù)載均衡。用于替代操作系統(tǒng)所提供的邏輯卷管理(LVM),它既支持單實例環(huán)境,也支持RAC集群環(huán)境。
2 ASM對于管理員的好處
隨著企業(yè)數(shù)據(jù)量的增速越來越快,數(shù)據(jù)規(guī)模越來越大,對于大型數(shù)據(jù)庫的數(shù)據(jù)庫管理員(DBA)來說,不得不面對數(shù)以百計的數(shù)據(jù)文件的管理問題,這對于傳統(tǒng)的存儲管理方式則要求數(shù)據(jù)庫管理員在掌握Linux操作系統(tǒng)LVM方面的相關(guān)知識,做好磁盤規(guī)劃的基礎(chǔ)上,必須進(jìn)行邏輯卷條帶化等方面的相關(guān)操作,而使用ASM可以免除DBA在非ASM存儲環(huán)境中許多必不可少的任務(wù),其中包括:(1)ASM采用條帶化和鏡像所有內(nèi)容的策略,通過自動重新平衡操作,使得DBA不再需要為平衡磁盤使用以及消除磁盤熱點而進(jìn)行I/O性能優(yōu)化;(2)不再需要更改數(shù)據(jù)文件的位置來滿足性能要求和空間約束條件;(3)對于文件名管理,不再需要定義和強(qiáng)制執(zhí)行文件命名策略;(4)不再需要管理邏輯卷、文件系統(tǒng)、集群文件系統(tǒng)和裸設(shè)備等存儲元素。
3 ASM的構(gòu)成
ASM和RDBMS相似,ASM由兩部分組成:ASM磁盤組(文件)和ASM實例。ASM磁盤組用于存放Oracle數(shù)據(jù)庫文件,包括:控制文件、數(shù)據(jù)文件和聯(lián)機(jī)重做日志文件等。而ASM實例負(fù)責(zé)ASM磁盤組資源的管理。
3.1 ASM磁盤組
磁盤組。(DISKGROUP)是ASM管理的最大邏輯空間單元,它由一組磁盤設(shè)備組成,一個ASM磁盤被分成多個分配單元(AU)。一個文件邏輯上由多個區(qū)組成(extent),而一個extent又由一組AU構(gòu)成。注意:由于文件可以打散放在多個磁盤上,因此磁盤和文件是多對多的關(guān)系。一個AU由許多邏輯連續(xù)的數(shù)據(jù)塊組成,但一個數(shù)據(jù)塊只放在一個AU中,一個AU則由多個塊組成,AU是ASM空間分配的最小單位。在Oracle11中它的大小并不固定,extent的分配也會隨著數(shù)據(jù)文件的規(guī)模變大而變大。邏輯關(guān)系如圖1所示。
3.2 ASM實例
數(shù)據(jù)庫實例在訪問、讀寫ASM文件通過ASM實例進(jìn)行,由ASM實例來管理訪問、讀寫ASM文件的元數(shù)據(jù)。ASM實例由SGA和后臺進(jìn)程組成。ASM的體系結(jié)構(gòu)如圖2所示。
4 racle11g中ASM的新特性
4.1 快速重新同步
當(dāng)磁盤路徑發(fā)生短暫故障時,ASM磁盤組的冗余性恢復(fù)是一個十分耗時的過程,尤其是當(dāng)恢復(fù)操作需要重新布局整個DISKGROUP的情況下。ASM的快速磁盤重新同步,這個新特性將使一塊壞磁盤重新同步的過程大大縮短,壞磁盤更換后,ASM能夠快速同步ASM磁盤extent的變化。
ASM快速重新同步認(rèn)為任何使磁盤組不可用都是暫時的,可以恢復(fù)的。當(dāng)磁盤路徑失效時,缺省的情況下,ASM會立刻移出該脫機(jī)磁盤。導(dǎo)致磁盤路徑失效的原因有很多,如磁盤電源問題、主機(jī)適配器問題、磁盤控制器問題、接口線問題。在脫機(jī)期間,ASM會記錄脫機(jī)磁盤發(fā)生的所有的變化,當(dāng)磁盤被修復(fù)后再次聯(lián)機(jī)時,脫機(jī)期間有更改的extent能夠被快速的重新同步到剛才失效的磁盤中。通過DISK_REPAIR_TIME屬性可以指定失效磁盤在重新聯(lián)機(jī)前不發(fā)生重新整理磁盤組操作的時間長度。如果沒有設(shè)定DISK_REPAIR_TIME屬性,其缺省值為3.6,缺省單位為小時。注意,這個缺省值適用于設(shè)定磁盤為脫機(jī)模式時使用不帶DROP AFTER子句的操作語句的情況。在大部分情況,DISK_REPAIR_TIME 3.6小時的缺省值對于完成磁盤修復(fù)重新聯(lián)機(jī)操作都應(yīng)該是足夠的。
4.2 ASM滾動升級
在ORACLE11g及之后的版本,ASM的集群可以置為\"滾動升級\"模式。處于“滾動升級”模式的集群中的每個結(jié)點能夠獨立的升級或打補(bǔ)丁,而不會影響到數(shù)據(jù)庫的使用,這能使數(shù)據(jù)庫的正常運(yùn)行時間大大提升。需要注意的是只有ORACLE11g及以后的版本才有這個功能,不能企圖用這種功能把ORACLE10g的數(shù)據(jù)庫升級到11g。把ASM集群置為滾動升級模式的語句如下:
ALTER SYSTEM START ROLLING MIGRATION TO 11.2.0.0.0;
注意,在進(jìn)行滾動升級前,環(huán)境要做一定的準(zhǔn)備。例如,若使用了Clusterware,做滾動升級前,Clusterware也一定要完整的升級到一個滿足要求的版本。而且Clusterware做升級時也同樣應(yīng)該使用滾動的方式。
4.3 磁盤組兼容性方面新的屬性
為使用ASM的一些新功能,需要設(shè)置兩個磁盤組兼容性的屬性:COMPATIBLE.RDBMS和COMPATIBLE.ASM。這兩個屬性分別用于指定據(jù)庫和ASM各自使用磁盤組所需的最低版本。這兩個屬性的默認(rèn)值都是10.1,如果要利用11g的新特性就必須推進(jìn)它們。
這兩個兼容性屬性的設(shè)置決定了系統(tǒng)可使用的最低的ASM和Oracle數(shù)據(jù)庫軟件版本。例如,如果COMPATIBLE.ASM的值是11.1,COMPATIBLE.RDBMS值是10.1,那么ASM軟件版本必須至少是11.1,Oracle數(shù)據(jù)庫客戶軟件版本必須是至少10.1。
可以使用CREATE DISKGROUP語句在創(chuàng)建磁盤組時設(shè)置磁盤組的兼容屬性。也可以使用ALTER DISKGROUP SQL語句改變現(xiàn)有磁盤組的兼容性設(shè)置。用CREATE DISKGROUP SQL語句創(chuàng)造磁盤組時,也可以不指定磁盤組兼容性,那么磁盤組的缺省兼容性將由ASM的軟件版本決定。需要注意的是磁盤組兼容性只能設(shè)置更高版本,而不能回到一個更低的兼容性設(shè)置。
參考文獻(xiàn):
[1]Oracle公司.Oracle Database 11g:數(shù)據(jù)庫管理學(xué)生指南(第1冊)[J].電子技術(shù)應(yīng)用,2010(08):203-222.
作者簡介;郭艾華(1979-),男,安徽亳州人,講師,數(shù)據(jù)庫系統(tǒng)工程師,教師,碩士,長期從事軟件技術(shù)專業(yè)的教學(xué)與研究,對編程技術(shù)、數(shù)據(jù)庫系統(tǒng)理論及工程技術(shù)有較深的了解。
作者單位:淮安信息職業(yè)技術(shù)學(xué)院,江蘇淮安 223003