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