oracle asm指的是“自動存儲管理”,是一種卷管理器,可自動管理磁盤組并提供有效的數(shù)據(jù)冗余功能;它是做為單獨的Oracle實例實施和部署。asm的優(yōu)勢:1、配置簡單、可最大化推動數(shù)據(jù)庫合并的存儲資源利用;2、支持BIGFILE文件等。
本教程操作環(huán)境:Windows7系統(tǒng)、Oracle 10g版、Dell G3電腦。
一、ASM是什么
ASM(Automatic Storage Management,自動存儲管理)是Oracle10g R2中為了簡化Oracle數(shù)據(jù)庫的管理而推出來的一項新功能,這是Oracle自己提供的卷管理器,主要用于替代操作系統(tǒng)所提供的LVM,它不僅支持單實例,同時對RAC的支持也是非常好。
ASM可以自動管理磁盤組并提供有效的數(shù)據(jù)冗余功能。使用ASM(自動存儲管理)后,數(shù)據(jù)庫管理員不再需要對 ORACLE中成千上萬的數(shù)據(jù)文件進(jìn)行管理和分類,從而簡化了DBA的工作量,可以使得工作效率大大提高。
使用 ASM,可以將存儲作為少量被稱作 ASM 磁盤組的存儲池進(jìn)行管理。數(shù)據(jù)庫相關(guān)文件分配給 ASM 磁盤組,ASM 管理布局和數(shù)據(jù)組織,確保實現(xiàn)卓越性能并防止出現(xiàn)存儲硬件故障。使用 ASM 磁盤組可以輕松、便捷地整合存儲,并簡化以前需要 DBA 和系統(tǒng)管理員執(zhí)行的管理任務(wù)。ASM 為 ASM Cluster File System (ACFS) 提供底層存儲管理,后者可以集中存儲數(shù)據(jù)庫外的數(shù)據(jù)。
ASM提供了與平臺無關(guān)的文件系統(tǒng)、邏輯卷管理以及軟RAID服務(wù)。ASM可以支持條帶化和磁盤鏡像,從而實現(xiàn)了在數(shù)據(jù)庫被加載的情況下添加或移除磁盤以及自動平衡I/O以刪除“熱點”。它還支持直接和異步的I/O并使用Oracle9i中引入的Oracle數(shù)據(jù)管理器 API(簡化的I/O系統(tǒng)調(diào)用接口)。
ASM是做為單獨的Oracle實例實施和部署,并且它只需要有參數(shù)文件,不需要其它的任何物理文件,就可以啟動ASM實例,只有它在運行的時候,才能被其它數(shù)據(jù)訪問。在Linux平臺上,只有運行了OCSSD服務(wù)(Oracle安裝程序默認(rèn)安裝)了才能和訪問ASM。
二、使用ASM的好處
優(yōu)點:
(1)將I/O平均分部到所有可用磁盤驅(qū)動器上以防止產(chǎn)生熱點,并且最大化性能。在ASM中是DiskGroup概念與LVM卷組管理中VG的概念類似,也是將多塊物理磁盤總成一個磁盤組,一個磁盤組中的數(shù)據(jù)是均勻分布在各個物理磁盤上的。手工添加和刪除物理磁盤時,數(shù)據(jù)會自動均衡(ReBalance);
(2) 配置更簡單,并且最大化推動數(shù)據(jù)庫合并的存儲資源利用;數(shù)據(jù)文件都存儲在DiskGroup中(簡稱DG),管理相對簡單。
(3) 內(nèi)在支持大文件,支持BIGFILE文件。
(4) 在增量增加或刪除存儲容量后執(zhí)行自動聯(lián)系重分配,即自動ReBalance;
(5) 維護(hù)數(shù)據(jù)的冗余副本以提高可用性;
(6) 支持10g、11g的數(shù)據(jù)存儲及RAC的共享存儲管理,相對來說11g的ASM更穩(wěn)定,10g中有些BUG。
(7) 支持第三方的多路徑軟件;如powerpath(aix)、mutlipath(linux)
(8) 使用OMF(Oracle Managed Files)方式來管理文件。
缺點:
(1) 數(shù)據(jù)庫中新增一個ASM實例,維護(hù)上需要對ASM進(jìn)行管理,增加了維護(hù)成本;
(2) ASM相對來說是個黑匣子,如果出問題,恢復(fù)起來也是個難點。
三、ASM冗余方式
ASM使用獨特的鏡像算法:不鏡像磁盤,而是鏡像盤區(qū)。作為結(jié)果,為了在產(chǎn)生故障時提供連續(xù)的保護(hù),只需要磁盤組中的空間容量,而不需要預(yù)備一個熱備(hot spare)磁盤。不建議用戶創(chuàng)建不同尺寸的故障組,因為這將會導(dǎo)致在分配輔助盤區(qū)時產(chǎn)生問題。ASM將文件的主盤區(qū)分配給磁盤組中的一個磁盤時,它會將該盤區(qū)的鏡像副本分配給磁盤組中的另一個磁盤。給定磁盤上的主盤區(qū)將在磁盤組中的某個伙伴磁盤上具有各自的鏡像盤區(qū)。ASM確保主盤區(qū)和其鏡像副本不會駐留在相同的故障組中。磁盤組的冗余可以有如下的形式:雙向鏡像文件(至少需要兩個故障組)的普通冗余(默認(rèn)冗余)和使用三向鏡像(至少需要3個故障組)提供較高保護(hù)程度的高冗余。一旦創(chuàng)建磁盤組,就不可以改變它的冗余級別。為了改變磁盤組的冗余,必須創(chuàng)建具有適當(dāng)冗余的另一個磁盤組,然后必須使用RMAN還原或DBMS_FILE_TRANSFER將數(shù)據(jù)文件移動到這個新創(chuàng)建的磁盤組。
三種不同的冗余方式如下:
(1)外部冗余(external redundancy)–常用
表示Oracle不幫你管理鏡像,功能由外部存儲系統(tǒng)實現(xiàn),比如通過RAID技術(shù);有效磁盤空間是所有磁盤設(shè)備空間的大小之和。
(2)默認(rèn)冗余(normal redundancy)
表示Oracle提供2份鏡像來保護(hù)數(shù)據(jù),有效磁盤空間是所有磁盤設(shè)備大小之和的1/2 (使用最多)
(3)高度冗余(high redundancy)
表示Oracle提供3份鏡像來保護(hù)數(shù)據(jù),以提高性能和數(shù)據(jù)的安全,最少需要三塊磁盤(三個failure group);有效磁盤空間是所有磁盤設(shè)備大小之和的1/3,雖然冗余級別高了,但是硬件的代價也最高。
四、ASM進(jìn)程
ASM實例除了傳統(tǒng)的DBWR,LGWR,CKPT,SMON,PMON等進(jìn)程還包含如下四個新后臺進(jìn)程:
(1) RBAL:負(fù)責(zé)協(xié)調(diào)磁盤組的重新平衡活動(負(fù)責(zé)磁盤組均衡)
(2) ARB0-ARBn:在同一時刻可以存在許多此類進(jìn)程,它們分別名為ARB0、ARB1,以此類推,執(zhí)行實際的重新平衡分配單元移動進(jìn)程。
(3) GMON:用于ASM磁盤組監(jiān)控
(4) O0nn 01-10:這組進(jìn)程建立到ASM實例的連接,某些長時間操作比如創(chuàng)建數(shù)據(jù)文件,RDBMS會通過這些進(jìn)程向ASM發(fā)送信息
ASMB與ASM 實例的前臺進(jìn)程連接,周期性的檢查兩個instance的健康狀況。每個數(shù)據(jù)庫實例同時只能與一個ASM實例連接,因此數(shù)據(jù)庫只會有一個ASMB后臺進(jìn)程。如一個節(jié)點上有多個數(shù)據(jù)庫實例,它們只能共享一個ASM實例。
RBAL用來進(jìn)行全局調(diào)用,以打開某個磁盤組內(nèi)的磁盤。ASMB進(jìn)程與該節(jié)點的CSS守護(hù)進(jìn)程進(jìn)行通信,并接收來自ASM實例的文件區(qū)間映射信息。ASMB還負(fù)責(zé)為ASM實例提供I/O統(tǒng)計數(shù)據(jù)
CSS集群同步服務(wù)。要使用ASM,必須確保已經(jīng)運行了CSS集群同步服務(wù),CSS負(fù)責(zé)ASM實例和數(shù)據(jù)庫實例之間的同步。
注意:
ASM實例必須要先于數(shù)據(jù)庫實例啟動,和數(shù)據(jù)庫實例同步運行,遲于數(shù)據(jù)庫實例關(guān)閉。ASM 實例和數(shù)據(jù)庫實例的關(guān)系可以是1:1,也可以是1:n。如果是1:n,最好為ASM 安裝單獨的ASM_HOME。
五、ASM支持文件類型
ASM支持datafile,logfiles,control files,archivelogs,RMAN backup sets等自動的數(shù)據(jù)庫文件管理。
一般來說,一個采用ASM單實例數(shù)據(jù)庫由兩個DG組成。一個是datadg,另外一個是fradg。Datadg主要是存放數(shù)據(jù)文件,而fradg(flash recovery area)存放archivelog文件,control文件和備份文件等。
六、ASM實例和數(shù)據(jù)庫實例對應(yīng)關(guān)系
七、Cluster ASM 架構(gòu)
八、相關(guān)視圖
視圖名 |
X$基表名 |
描述 |
V$ASM_DISKGROUP |
X$KFGRP |
實施磁盤發(fā)現(xiàn)disk discovery和列出磁盤組 |
V$ASM_DISKGROUP_STAT |
X$KFGRP_STAT |
顯示disk group狀態(tài) |
V$ASM_DISK |
X$KFDSK, X$KFKID |
實施磁盤發(fā)現(xiàn)disk discovery和列出磁盤以及這些磁盤的使用度量信息 |
V$ASM_DISK_STAT |
X$KFDSK_STAT,X$KFKID |
列出磁盤和其使用度量信息 |
V$ASM_FILE |
X$KFFIL |
列出ASM文件也包括了元數(shù)據(jù)信息 |
V$ASM_ALIAS |
X$KFALS |
列出了ASM的別名,文件和目錄 |
V$ASM_TEMPLATE |
X$KFTMTA |
列出可用的模板和其屬性 |
V$ASM_CLIENT |
X$KFNCL |
列出鏈接到ASM的DB實例 |
V$ASM_OPERATION |
X$KFGMG |
列出rebalancing重平衡操作 |
|
X$KFKLIB |
可用的ASMLIB路徑 |
|
X$KFDPARTNER |
列出Disk-partners關(guān)系 |
|
X$KFFXP |
所有ASM文件的extent map |
|
X$KFDAT |
所有ASM Disk的extent列表 |
|
X$KFBH |
描述ASM cache |
|
X$KFCCE |
ASM block的鏈表 |
V$ASM_ATTRIBUTE(new in 11g) |
X$KFENV(new in 11g) |
Asm屬性,該X$基表還顯示一些隱藏屬性 |
V$ASM_DISK_IOSTAT(new in 11g) |
X$KFNSDSKIOST(new in 11g) |
I/O統(tǒng)計信息 |
|
X$KFDFS(new in 11g) |
|
|
X$KFDDD(new in 11g) |
|
|
X$KFGBRB(new in 11g) |
|
|
X$KFMDGRP(new in 11g) |
|
|
X$KFCLLE(new in 11g) |
|
|
X$KFVOL(new in 11g) |
|
|
X$KFVOLSTAT(new in 11g) |
|
|
X$KFVOFS(new in 11g) |
|
|
X$KFVOFSV(new in 11g) |
|
推薦教程:《Oracle教程》