生活随笔
收集整理的這篇文章主要介紹了
深入了解Oracle ASM(一):基础概念
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ASM基礎(chǔ)概念 ?
任何轉(zhuǎn)載請(qǐng)注明源地址,否則追究法律責(zé)任!:http://www.askmaclean.com/archives/know-oracle-asm.html ? 相關(guān)文章鏈接: Asm Instance Parameter Best Practice 為什么RHEL 6上沒(méi)有ASMLIB? Unix上如何查看文件名開(kāi)頭為”+asm”的TRACE文件 asm_power_limit對(duì)IO的影響 針對(duì)11.2 RAC丟失OCR和Votedisk所在ASM Diskgroup的恢復(fù)手段 10g ASM lost disk log 11gR2 RAC ASM啟動(dòng)揭秘 在11gR2 RAC中修改ASM DISK Path磁盤(pán)路徑 在Linux 6上使用UDEV解決RAC ASM存儲(chǔ)設(shè)備名問(wèn)題 Script:找出ASM中的Spfile參數(shù)文件 如何診斷ASMLIB故障 Script:收集ASM診斷信息 Comparation between ASM note [ID 373242.1] and note [ID 452924.1] Why ASMLIB and why not? ASM file metadata operation等待事件 幾個(gè)關(guān)于oracle 11g ASM的問(wèn)題 利用UDEV服務(wù)解決RAC ASM存儲(chǔ)設(shè)備名 Discover Your Missed ASM Disks Oracle內(nèi)部視圖X$KFFXP Fixed X$ Tables in ASM 了解AMDU工具生成的MAP文件 使用AMDU工具從無(wú)法MOUNT的DISKGROUP中抽取數(shù)據(jù)文件 ? Automatic Storage Management是Oracle 在版本10g中率先(對(duì)比其他RDBMS)提出的數(shù)據(jù)庫(kù)存儲(chǔ)自動(dòng)解決方案,在版本11g中得到進(jìn)一步升華。ASM提供了數(shù)據(jù)庫(kù)管理所需要的一個(gè)簡(jiǎn)單、有效的存儲(chǔ)管理接口,該接口實(shí)現(xiàn)了跨服務(wù)器和存儲(chǔ)平臺(tái)。 ASM是文件系統(tǒng)filesystem和volume manager卷管理軟件的一體化,專門(mén)為Oracle的數(shù)據(jù)庫(kù)文件鎖設(shè)計(jì)的; ASM在保證如文件系統(tǒng)般管理簡(jiǎn)單的基礎(chǔ)上提供高性能的異步Async IO。ASM的引入提高了數(shù)據(jù)庫(kù)的可擴(kuò)展容量,同時(shí)節(jié)約了DBA的時(shí)間,使其能夠更敏捷、更高效地管理一個(gè)流動(dòng)性較大的數(shù)據(jù)庫(kù)環(huán)境。 ?
ASM的出現(xiàn)是為RDBMS管理文件存儲(chǔ) 注意ASM不會(huì)替代RDBMS去實(shí)施IO讀寫(xiě),很多對(duì)這一點(diǎn)存在誤解,認(rèn)為RDBMS發(fā)送IO request給ASM,ASM去做真正的IO操作,這是錯(cuò)誤的。 真正的IO還是由RDBMS進(jìn)程去實(shí)施,和不用ASM的裸設(shè)備一樣 因此ASM不是IO的中間層,也就不存在因?yàn)锳SM而出現(xiàn)所謂的IO瓶頸 對(duì)于ASM而言LUN DISK可以是裸設(shè)備也可以直接是塊設(shè)備(10.2.0.2以后) 適合存放在ASM中的文件類型包括:數(shù)據(jù)文件datafile、控制文件controlfile、重做日志redolog、歸檔日志archivelog、閃回日志flashback log、spfile、RMAN備份以及block tracking file、datapump文件 從11gR2開(kāi)始,ASM引入了ACFS特性可以存放任何類型的文件; 但是ACFS不支持存放數(shù)據(jù)文件 ?
ASM基礎(chǔ)概念: ASM的最小存儲(chǔ)單位是一個(gè)"allocation unit"(AU),通常為1MB,在Exadata上推薦為4MB ASM的核心是存儲(chǔ)文件 文件被劃分為多個(gè)文件片,稱之為"extent" 11g之前extent的大小總是為一個(gè)AU,11g之后一個(gè)extent可以是1 or 8 or 64個(gè)AU ASM使用file extent map維護(hù)文件extent的位置 ASM在LUN DISK的頭部header維護(hù)其元數(shù)據(jù),而非數(shù)據(jù)字典 同時(shí)RDBMS DB會(huì)在shared pool中緩存file extent map,當(dāng)server process處理IO時(shí)使用 因?yàn)锳SM instance使用類似于普通RDBMS的原理的instance/crash recovery,所以ASM instance奔潰后總是能復(fù)原的。 ASM存儲(chǔ)以diskgroups的概念呈現(xiàn): Diskgroup DG對(duì)RDBMS實(shí)例可見(jiàn),例如一個(gè)DATA DG,對(duì)于RDBMS來(lái)說(shuō)就是以'+DATA'表示的一個(gè)存儲(chǔ)點(diǎn), 可以在該DG上創(chuàng)建一個(gè)tablespace,例如: create tablespace ONASM datafile '+DATA' size 10M。 Diskgroup下面是一個(gè)或者多個(gè)failure group (FG) FG被定義為一組Disk Disk在這里可以是裸的物理卷、磁盤(pán)分區(qū)、代表某個(gè)磁盤(pán)陣列的LUN,亦或者是LVM或者NAS設(shè)備 多個(gè)FG中的disk不應(yīng)當(dāng)具備相同的單點(diǎn)故障,否則ASM的冗余無(wú)效 ?
ASM所提供的高可用性: ASM提供數(shù)據(jù)鏡像以便從磁盤(pán)失敗中恢復(fù) 用戶可以選擇EXTERNAL、NORMAL、HIGH三種冗余鏡像 EXTERNAL 即ASM本身不做鏡像,而依賴于底層存儲(chǔ)陣列資深實(shí)現(xiàn)鏡像;在External下任何的寫(xiě)錯(cuò)誤都會(huì)導(dǎo)致Disk Group被強(qiáng)制dismount。在此模式下所有的ASM DISK必須都存在健康,否則Disk Group將無(wú)法MOUNTNORMAL 即ASM將為每一個(gè)extent創(chuàng)建一個(gè)額外的拷貝以便實(shí)現(xiàn)冗余;默認(rèn)情況下所有的文件都會(huì)被鏡像,這樣每一個(gè)file extent都有2份拷貝。若寫(xiě)錯(cuò)誤發(fā)生在2個(gè)Disk上且這2個(gè)Disk是partners時(shí)將導(dǎo)致disk?Disk Group被強(qiáng)制dismount。若發(fā)生失敗的磁盤(pán)不是partners則不會(huì)引起數(shù)據(jù)丟失和不可用。HIGH 即ASM為每一個(gè)extent創(chuàng)建兩個(gè)額外的拷貝以便實(shí)現(xiàn)更高的冗余。2個(gè)互為partners的Disk的失敗不會(huì)引起數(shù)據(jù)丟失,當(dāng)然不能有更多的partners Disk失敗了。數(shù)據(jù)鏡像依賴于failure group和extent partnering實(shí)現(xiàn)。ASM在NORMAL 或 HIGH 冗余度下可以容許丟失一個(gè)failure group中所有的磁盤(pán)。 ?
Failure Group鏡像的使用 ASM的鏡像并不像RAID 1那樣 ASM的鏡像基于文件extent的粒度,extent分布在多個(gè)磁盤(pán)之間,稱為partner Partner disk會(huì)存放在一個(gè)或者多個(gè)分離的failure group上 ASM自動(dòng)選擇partner并限制其數(shù)量小于10個(gè) 若磁盤(pán)失敗,則ASM更新其extent map使今后的讀取操作指向剩余的健康partner 在11g中,若某個(gè)disk處于offline狀態(tài),則對(duì)于文件的變更會(huì)被追蹤記錄這樣當(dāng)disk被重現(xiàn)online時(shí)則這些變化得以重新應(yīng)用,前提是offline的時(shí)間不超過(guò)DISK_REPAIR_TIME所指定的時(shí)間(默認(rèn)為3.6個(gè)小時(shí)). 這種情況常發(fā)生在存儲(chǔ)控制器故障或者類似的短期磁盤(pán)故障: 這種對(duì)于文件變更的追蹤基于一個(gè)發(fā)生變化的file extent的位圖,該位圖告訴ASM哪些extents需要從健康的partner哪里拷貝至需要修復(fù)的disk,該特性稱之為fast mirror resync 在10g中沒(méi)有fast mirror resync特性,若disk出現(xiàn)offline則直接自動(dòng)被drop掉,不存在允許修復(fù)的周期 對(duì)于無(wú)法再online的disk,則必須被drop掉; 一個(gè)新的disk會(huì)被ASM選擇并通過(guò)rebalancing 操作拷貝數(shù)據(jù),這些工作是后臺(tái)自動(dòng)完成的。 ?
重新平衡Rebalancing Rebalancing是在磁盤(pán)之間移動(dòng)文件extent以實(shí)現(xiàn)diskgroup上的IO負(fù)載均衡的過(guò)程 Rebalancing在后臺(tái)異步發(fā)生,是可監(jiān)控的 在集群環(huán)境中,一個(gè)diskgroup的重平衡只能在一個(gè)ASM instance上發(fā)生,不能通過(guò)集群多節(jié)點(diǎn)同時(shí)處理以加速 當(dāng)disk被加入或移除時(shí),ASM會(huì)自動(dòng)在后臺(tái)開(kāi)始數(shù)據(jù)重新平衡工作 重平衡的速度和力度可以通過(guò)asm_power_limit參數(shù)控制 asm_power_limit參數(shù)默認(rèn)為1,其范圍為0~11(從11.2.0.2開(kāi)始是0-1024),該參數(shù)控制實(shí)施重平衡后臺(tái)進(jìn)程的數(shù)量;Level 0表示不實(shí)施重新平衡 在重新平衡過(guò)程中IO性能(主要是吞吐量和響應(yīng)時(shí)間)可能受到影響,其影響程度取決于存儲(chǔ)本身的能力和重新平衡的力度,默認(rèn)的asm_powner_limit=1不會(huì)造成過(guò)度的影響 ?
性能方面 ASM會(huì)通過(guò)在DG中條帶化文件extent分布以最大化可用的IO帶寬 有2種可用條帶化寬度:coarse粗糙條帶化大小為1個(gè)AU,fine精細(xì)條帶化為128K 即便是fine精細(xì)條帶化仍采用普通大小的file extent,但是條帶化以更小的片形式循環(huán)式地分布在多個(gè)extent上 ASM默認(rèn)不讓RDBMS去讀備用的鏡像拷貝extent,即使這樣請(qǐng)放心IO還是均衡的 默認(rèn)情況下RDBMS總是去讀取主primary extent,從11.1開(kāi)始可以通過(guò)PREFERRED_READ_FAILURE_GROUP參數(shù)設(shè)置讓本地節(jié)點(diǎn)優(yōu)先讀取某個(gè)failure group中的extent; 該特性主要為extended distance RAC設(shè)計(jì),不建議在常規(guī)ASM中使用 ?
?其他知識(shí) 并非RAC才能使用ASM,單節(jié)點(diǎn)同樣可以從ASM哪里獲得好處 節(jié)點(diǎn)上的一個(gè)ASM instance實(shí)例可以為多個(gè)RDBMS DB實(shí)例服務(wù) RAC環(huán)境中的ASM必須也是集群化的,以便能夠協(xié)調(diào)更新元數(shù)據(jù) 從11.2開(kāi)始,ASM從RDBMS HOME分離出來(lái),而和clusterware一起安裝在GRID HOME下。 ? ?
Disk Group: Disk Group"磁盤(pán)組" 是ASM管理的邏輯概念對(duì)象,一個(gè)Disk Group由多個(gè)ASM disk組成。每一個(gè)Disk Group都是子描述的,如同一個(gè)標(biāo)準(zhǔn)的文件系統(tǒng)一樣。所有關(guān)于該Diskgroup 空間使用信息的元數(shù)據(jù)均完整地包含在這個(gè)磁盤(pán)組中。 若ASM可以找到所有屬于該ASM diskgroup的DISK則他不需要任何其他額外的元數(shù)據(jù)。 文件空間從Disk Group中分配。任何一個(gè)ASM文件總是完整地包含在一個(gè)單獨(dú)的Disk Group中。但是,一個(gè)Disk Group可能包含了屬于多個(gè)數(shù)據(jù)庫(kù)的文件,一個(gè)單獨(dú)的數(shù)據(jù)庫(kù)的文件也可以存放在多個(gè)不同的Disk Group中。 在大多數(shù)實(shí)際的部署中,不會(huì)創(chuàng)建太多數(shù)量的Disk Groups,一般在3~4個(gè)。 Disk Group提供三種不同的redundancy冗余度,詳見(jiàn)上文。 ?
ASM Disk ? 一個(gè)ASM Disk是組成Disk Group的基本的持久的存儲(chǔ)。 當(dāng)一個(gè)ASM Disk加入到Disk Group中時(shí),它要么采用管理員指定的ASM Disk Name要么采用系統(tǒng)自動(dòng)分配的Disk Name。 這不同于OS 給用于訪問(wèn)該設(shè)備的"藝名"。 ?在一個(gè)Cluster集群中, 同一個(gè)Disk 可能在不同的節(jié)點(diǎn)上顯示不同的Device Name設(shè)備名,例如在 Node1上的 /dev/sdc ,對(duì)應(yīng)于Node2上的/dev/sdd。 ASM Disk必須在所有使用該Disk Group的實(shí)例上可用直接磁盤(pán)I/O訪問(wèn)。 實(shí)際上對(duì)于RDBMS Oracle而言訪問(wèn)ASM disk和訪問(wèn)普通的文件并沒(méi)有什么不同,除非使用了ASMLIB(ASMLIB不是ASM必須的,再次強(qiáng)調(diào)!)。常規(guī)情況下ASM Disk是OS上可見(jiàn)的LUN的partition,該分區(qū)覆蓋了所有不被操作系統(tǒng)所保留的磁盤(pán)的空間。 大多數(shù)操作系統(tǒng)需要保留LUN的第一個(gè)block作為分區(qū)表(partition table); 由于ASM總是會(huì)寫(xiě)ASM Disk的第一個(gè)塊,所以要保證ASM不會(huì)去覆蓋前幾個(gè)block上的分區(qū)表(partition table),例如在Solaris上分區(qū)時(shí)不要把前幾個(gè)柱面劃給partition。LUN可以是簡(jiǎn)單的物理JBOD,或者是由高級(jí)存儲(chǔ)陣列管理的虛擬LUN。既可以是直連的設(shè)備也可以是SAN。ASM Disk可以是任何被開(kāi)發(fā)系統(tǒng)調(diào)用所訪問(wèn)的東西,除了本地文件系統(tǒng)。 甚至于NFS上的文件都可以被當(dāng)做一個(gè)ASM Disk來(lái)用,這樣便于喜歡NAS的用戶使用ASM,當(dāng)然比起NFS來(lái)我更建議干脆用ISCSI。 ? 注意雖然可以使用普通logical Volume Manager LVM管理的logical volume作為ASM Disk,但是這并不是推薦組合,除非你想不到其他更好的辦法。 即便你一定要這樣用,但是注意也不要在LVM級(jí)別做鏡像和條帶化。 ASM將任何文件以AU大小均勻分布在Disk Group的所有Disk上。每一個(gè)ASM Disk均被維護(hù)以保持同樣的使用比率。這保證同一個(gè)Disk Group中的所有Disk的IO負(fù)載基本一致。由于ASM在一個(gè)Disk Group中的磁盤(pán)上的負(fù)載均衡,所以為同一個(gè)物理磁盤(pán)的不同區(qū)域劃分為2個(gè)ASM Disk不會(huì)對(duì)性能有所影響;而同一個(gè)物理磁盤(pán)上劃分2個(gè)不同分區(qū)置于不同的2個(gè)Disk Group則有效。 當(dāng)ASM Disk Group啟用冗余時(shí)單個(gè)ASM Disk僅是一個(gè)失敗單元。對(duì)于該ASM Disk的寫(xiě)失敗在10g會(huì)自動(dòng)從該Disk Group drop掉該Disk,前提是該Disk的丟失被容許。 ?
Allocation Unit 每一個(gè)ASM Disk都被劃分為許多個(gè)AU allocation units(單個(gè)AU 的大小在 1MB ~64MB,注意總是2的次方MB)。而且AU allocation unit也是Disk Group的基本分配單元。一個(gè)ASM Disk上的可用空間總是整數(shù)倍個(gè)AU。在每一個(gè)ASM Disk的頭部均有一個(gè)表,該表的每一條記錄代表該ASM Disk上的一個(gè)AU。文件的extent指針(pointer)給出了ASM Disk Number磁盤(pán)號(hào)和AU號(hào),這就描述了該extent的物理位置。由于所有的空間操作都以AU為單位,所以不存在所謂ASM碎片這樣的概念和問(wèn)題。 一個(gè)AU(1M~64M)足夠小,以便一個(gè)文件總是要包含很多個(gè)AU,這樣就可以分布在很多磁盤(pán)上,也不會(huì)造成熱點(diǎn)。一個(gè)AU又足夠大以便能夠在一個(gè)IO操作中訪問(wèn)它,以獲得更加的吞吐量,也能提供高效的順序訪問(wèn)。訪問(wèn)一個(gè)AU的時(shí)間將更多的消耗在磁盤(pán)傳輸速率上而非花在尋找AU頭上。對(duì)于Disk Group的重新平衡也是對(duì)每一個(gè)AU逐次做的。 ? ? ? ? ?
了解ASM后臺(tái)進(jìn)程的作用: ?
GMON : ASM Diskgroup監(jiān)控進(jìn)程
ASMB : ASM后臺(tái)網(wǎng)絡(luò)進(jìn)程
RBAL : ASM reblance master process 重新平衡主進(jìn)程
ARBx : ??reblance slave process實(shí)際實(shí)施reblance的后臺(tái)進(jìn)程
MARK : AU resync AU重新同步的指揮家進(jìn)程 ?
了解ASM前臺(tái)進(jìn)程的作用: ? ASM的client(主要是RDBMS DB和CRSD))在連接ASM實(shí)例時(shí)會(huì)產(chǎn)生前臺(tái)進(jìn)程,前天進(jìn)程的名字一般為oracle+ASM_<process>_<product> (例如: oracle+ASM_DBW0_DB1)。 ? OCR 特有的前臺(tái)進(jìn)程foreground: oracle+ASM1_ocr ? ?
?ASM相關(guān)的V$和X$視圖 ?
視圖名 X$基表名 描述 V$ASM_DISKGROUP X$KFGRP 實(shí)施磁盤(pán)發(fā)現(xiàn)disk discovery和列出磁盤(pán)組 V$ASM_DISKGROUP_STAT X$KFGRP_STAT 顯示disk group狀態(tài) V$ASM_DISK X$KFDSK, X$KFKID 實(shí)施磁盤(pán)發(fā)現(xiàn)disk discovery和列出磁盤(pán)以及這些磁盤(pán)的使用度量信息 V$ASM_DISK_STAT X$KFDSK_STAT,X$KFKID 列出磁盤(pán)和其使用度量信息 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重平衡操作 N/A X$KFKLIB 可用的ASMLIB路徑 N/A X$KFDPARTNER 列出Disk-partners關(guān)系 N/A X$KFFXP 所有ASM文件的extent map N/A X$KFDAT 所有ASM Disk的extent列表 N/A X$KFBH 描述ASM cache N/A 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ì)信息 N/A X$KFDFS(new in 11g) N/A X$KFDDD(new in 11g) N/A X$KFGBRB(new in 11g) N/A X$KFMDGRP(new in 11g) N/A X$KFCLLE(new in 11g) N/A X$KFVOL(new in 11g) N/A X$KFVOLSTAT(new in 11g) N/A X$KFVOFS(new in 11g) N/A X$KFVOFSV(new in 11g)
? X$KFFXP包含了文件、extent和AU之間的映射關(guān)系。 從該X$視圖可以追蹤給定文件的extent的條帶化和鏡像情況。注意對(duì)于primary au和mirror au讀操作的負(fù)載是均衡的, 而寫(xiě)操作要求同時(shí)寫(xiě)2者到磁盤(pán)。以下是X$KFFXP視圖列的含義 ? ?
X$KFFXP Column Name Description ADDR x$ table address/identifier INDX row unique identifier INST_ID instance number (RAC) NUMBER_KFFXP ASM file number. Join with v$asm_file and v$asm_alias COMPOUND_KFFXP File identifier. Join with compound_index in v$asm_file INCARN_KFFXP File incarnation id. Join with incarnation in v$asm_file PXN_KFFXP Progressive file extent number XNUM_KFFXP ASM file extent number (mirrored extent pairs have the same extent value) GROUP_KFFXP ASM disk group number. Join with v$asm_disk and v$asm_diskgroup DISK_KFFXP Disk number where the extent is allocated. Join with v$asm_disk AU_KFFXP Relative position of the allocation unit from the beginning of the disk. The allocation unit size (1 MB) in v$asm_diskgroup LXN_KFFXP 0->primary extent, ->mirror extent, 2->2nd mirror copy (high redundancy and metadata) FLAGS_KFFXP N.K. CHK_KFFXP N.K.
? ? X$KFDAT該X$視圖包含了所有allocation unit AU的細(xì)節(jié),不管是FREE的還是USED。 ?
X$KFDAT Column Name Description ADDR x$ table address/identifier INDX row unique identifier INST_ID instance number (RAC) GROUP_KFDAT diskgroup number, join with v$asm_diskgroup NUMBER_KFDAT disk number, join with v$asm_disk COMPOUND_KFDAT disk compund_index, join with v$asm_disk AUNUM_KFDAT Disk allocation unit (relative position from the beginning of the disk), join with x$kffxp.au_kffxp V_KFDAT V=this Allocation Unit is used; F=AU is free FNUM_KFDAT file number, join with v$asm_file I_KFDAT N/K XNUM_KFDAT Progressive file extent number join with x$kffxp.pxn_kffxp RAW_KFDAT raw format encoding of the disk,and file extent information
? ? X$KFDPARTNER 這個(gè)X$視圖包含了 disk-partner(1-N)的映射關(guān)系,在一個(gè)給定ASM Diskgroup,若2個(gè)Disk存有同一個(gè)extent的鏡像拷貝,則將2個(gè)disk視作partners。因此partners必須屬于同一個(gè)diskgroup下的不同的failgroup。 ?
X$KFDPARTNER Column Name Description ADDR x$ table address/identifier INDX row unique identifier INST_ID instance number (RAC) GRP diskgroup number, join with v$asm_diskgroup DISK disk number, join with v$asm_disk COMPOUND disk identifier. Join with compound_index in v$asm_disk NUMBER_KFDPARTNER partner disk number, i.e. disk-to-partner (1-N) relationship MIRROR_KFDPARNER if=1 in a healthy normal redundancy config PARITY_KFDPARNER if=1 in a healthy normal redundancy config ACTIVE_KFDPARNER if=1 in a healthy normal redundancy config
?
研究ASM必要的技巧 ? 1)找出ASM的鏡像mirror extent,在例子中是ASM的spfile ? ? [grid@localhost ~]$ sqlplus / as sysasmSQL*Plus: Release 11.2.0.3.0 Production on Wed Feb 13 11:13:39 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Automatic Storage Management optionINSTANCE_NAME
----------------
+ASMSQL>
SQL> show parameter spfileNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +SYSTEMDG/asm/asmparameterfile/registry.253.805993079select GROUP_KFFXP, DISK_KFFXP, AU_KFFXPfrom x$kffxpwhere number_kffxp =(select file_numberfrom v$asm_aliaswhere name = 'REGISTRY.253.805993079');GROUP_KFFXP DISK_KFFXP AU_KFFXP
----------- ---------- ----------3 2 383 1 393 0 44也可以這樣定位select GROUP_KFDAT, NUMBER_KFDAT, AUNUM_KFDATfrom x$kfdatwhere fnum_kfdat = (select file_numberfrom v$asm_aliaswhere name = 'REGISTRY.253.805993079')GROUP_KFDAT NUMBER_KFDAT AUNUM_KFDAT
----------- ------------ -----------3 0 443 1 393 2 38==> 找到該 DISK對(duì)應(yīng)的路徑
SQL> select path,DISK_NUMBER from v$asm_disk where GROUP_NUMBER=3 and disk_number in (0,1,2);PATH DISK_NUMBER
-------------------- -----------
/dev/asm-diski 2
/dev/asm-diskh 1
/dev/asm-diskg 0SQL> create pfile='/home/grid/pfile' from spfile;File created.SQL> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Automatic Storage Management option[grid@localhost ~]$ cat pfile
+ASM.asm_diskgroups='EXTDG','NORDG'#Manual Mount
*.asm_diskstring='/dev/asm*'
*.asm_power_limit=1
*.diagnostic_dest='/g01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.local_listener='LISTENER_+ASM'
*.remote_login_passwordfile='EXCLUSIVE'通過(guò)dd讀取該AU [grid@localhost ~]$ dd if=/dev/asm-diski of=/tmp/spfile.dmp skip=38 bs=1024k count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00328614 seconds, 319 MB/s[grid@localhost ~]$ strings /tmp/spfile.dmp
+ASM.asm_diskgroups='EXTDG','NORDG'#Manual Mount
*.asm_diskstring='/dev/asm*'
*.asm_power_limit=1
*.diagnostic_dest='/g01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.local_listener='LISTENER_+ASM'
*.remote_login_passwordfile='EXCLUSIVE'[grid@localhost ~]$ dd if=/dev/asm-diskh of=/tmp/spfile1.dmp skip=39 bs=1024k count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0325114 seconds, 32.3 MB/s[grid@localhost ~]$ strings /tmp/spfile1.dmp
+ASM.asm_diskgroups='EXTDG','NORDG'#Manual Mount
*.asm_diskstring='/dev/asm*'
*.asm_power_limit=1
*.diagnostic_dest='/g01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.local_listener='LISTENER_+ASM'
*.remote_login_passwordfile='EXCLUSIVE' [grid@localhost ~]$ dd if=/dev/asm-diskg of=/tmp/spfile2.dmp skip=44 bs=1024k count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0298287 seconds, 35.2 MB/s[grid@localhost ~]$ strings /tmp/spfile2.dmp
+ASM.asm_diskgroups='EXTDG','NORDG'#Manual Mount
*.asm_diskstring='/dev/asm*'
*.asm_power_limit=1
*.diagnostic_dest='/g01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.local_listener='LISTENER_+ASM'
*.remote_login_passwordfile='EXCLUSIVE' ? ? 2) 顯示asm disk failure group和 disk partners的映射關(guān)系: ? 1* select DISK_NUMBER,FAILGROUP,path from v$asm_disk where group_number=3
SQL> /DISK_NUMBER FAILGROUP PATH
----------- ------------------------------ --------------------3 SYSTEMDG_0003 /dev/asm-diskj2 SYSTEMDG_0002 /dev/asm-diski1 SYSTEMDG_0001 /dev/asm-diskh0 SYSTEMDG_0000 /dev/asm-diskgSQL> select disk,NUMBER_KFDPARTNER,DISKFGNUM from X$KFDPARTNER where grp=3;DISK NUMBER_KFDPARTNER DISKFGNUM
---------- ----------------- ----------0 1 10 2 10 3 11 0 21 2 21 3 22 0 32 1 32 3 33 0 43 1 43 2 412 rows selected. ? ?
ASM常見(jiàn)問(wèn)題, FAQ: ?
Q:ASM做 rebalance和 mirror 的基本顆粒是什么? A: ASM做mirror 鏡像的基本顆粒是file的extent,默認(rèn)情況下一個(gè)extent等于一個(gè)AU,11g之后一個(gè)extent可以是1 or 8 or 64個(gè)AU ASM做rebalance重新平衡的基本顆粒也是extent,雖然重新平衡是對(duì)每一個(gè)AU逐次做的。 ? ?
Q:ASMLIB和ASM的關(guān)系是什么? A:ASMLIB是一種種基于Linux module,專門(mén)為Oracle Automatic Storage Management特性設(shè)計(jì)的內(nèi)核支持庫(kù)(kernel support library)。 簡(jiǎn)單來(lái)說(shuō)ASMLIB是一種Linux下的程序包,它不屬于Oracle ASM kernel。 通過(guò)ASMLIb可以做到設(shè)備名綁定,便于ASM使用的目的; 但是Linux上能實(shí)現(xiàn)設(shè)備名綁定并便于ASM使用的服務(wù)有很多,例如udev、mpath等; 所以ASMLIB并不是ASM必須的組件; 國(guó)內(nèi)的中文文章對(duì)于該概念的描述大多不清晰,造成了ASMLIB=ASM或者ASM必須用ASMLIB的誤解,這是以訛傳訛。 ASMLIB的缺點(diǎn)見(jiàn)拙作《Why ASMLIB and why not?》一文 ?
Q: ASM是否是raid 10或者raid 01? A:ASM的mirror是基于file extent的,而不是像raid那樣基于disk或者block。 所以ASM既不同于Raid 10,也不是Raid 01。 如果硬要說(shuō)相似點(diǎn)的話,因?yàn)锳SM是先mirror鏡像后stripe條帶化,所以在這個(gè)特征上更像Raid 10。 但是注意,再次強(qiáng)調(diào),ASM既不是RAID 10也不是RAID 01, 重復(fù)一千遍。。。。。。。。。。。。。 ? ?
TO BE Continued................... 8-)
總結(jié)
以上是生活随笔 為你收集整理的深入了解Oracle ASM(一):基础概念 的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。