真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

深入了解OracleASM(一):基礎(chǔ)概念

相關(guān)文章鏈接:

10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有富拉爾基免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

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ù)文件

Oracle 自動(dòng)存儲(chǔ)管理概述

自動(dòng)存儲(chǔ)管理 (ASM) 是 Oracle Database 的一個(gè)特性,它為數(shù)據(jù)庫(kù)管理員提供了一個(gè)在所有服務(wù)器和存儲(chǔ)平臺(tái)上均一致的簡(jiǎn)單存儲(chǔ)管理接口。作為專(zhuān)門(mén)為 Oracle 數(shù)據(jù)庫(kù)文件創(chuàng)建的垂直集成文件系統(tǒng)和卷管理器,ASM 提供了直接異步 I/O 的性能以及文件系統(tǒng)的易管理性。ASM 提供了可節(jié)省 DBA 時(shí)間的功能,以及管理動(dòng)態(tài)數(shù)據(jù)庫(kù)環(huán)境的靈活性,并且提高了效率。ASM 的主要優(yōu)點(diǎn)有:

  • 簡(jiǎn)化和自動(dòng)化了存儲(chǔ)管理
  • 提高了存儲(chǔ)利用率和敏捷性
  • 提供可預(yù)測(cè)的性能、可用性和可伸縮性


Oracle Cloud File System 概述

Oracle Cloud File System (CloudFS) 前所未有地簡(jiǎn)化了通用文件的存儲(chǔ)管理、供應(yīng)自動(dòng)化和存儲(chǔ)整合。CloudFS 是一個(gè)存儲(chǔ)云基礎(chǔ)架構(gòu),提供資源池、網(wǎng)絡(luò)可訪(fǎng)問(wèn)性、快速伸縮以及快速供應(yīng) — 這些都是云計(jì)算環(huán)境的關(guān)鍵要求。該產(chǎn)品包括:

  • Oracle ASM Dynamic Volume Manager (ADVM)

ADVM 提供了一個(gè)通用卷管理服務(wù)和一個(gè)標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)程序接口,便于系統(tǒng)管理員跨不同平臺(tái)進(jìn)行管理。ACFS 和第三方文件系統(tǒng)可以使用 ASM 動(dòng)態(tài)卷創(chuàng)建和管理可利用 ASM 特性的所有功能的文件系統(tǒng)。因此,無(wú)需停機(jī)即可輕松調(diào)整 ADVM 卷的大小以適應(yīng)文件系統(tǒng)的存儲(chǔ)需求。 

  • Oracle ASM Cluster File System (ACFS)

一個(gè)通用的與 POSIX、X/OPEN 和 Windows 兼容的文件系統(tǒng),專(zhuān)為單節(jié)點(diǎn)和單集群的配置而設(shè)計(jì)。使用操作系統(tǒng)自帶的命令、ASM asmcmd 和 Oracle Enterprise Manager 對(duì) ACFS 進(jìn)行管理。ACFS 支持高級(jí)數(shù)據(jù)服務(wù),如時(shí)間點(diǎn)復(fù)制快照、文件系統(tǒng)復(fù)制和標(biāo)簽,以及文件系統(tǒng)安全性和加密。

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卷管理軟件的一體化,專(zhuān)門(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而言L(fǎng)UN DISK可以是裸設(shè)備也可以直接是塊設(shè)備(10.2.0.2以后)
  • 適合存放在ASM中的文件類(lèi)型包括:數(shù)據(jù)文件datafile、控制文件controlfile、重做日志redolog、歸檔日志 archivelog、閃回日志flashback log、spfile、RMAN備份以及block tracking file、datapump文件
  • 從11gR2開(kāi)始,ASM引入了ACFS特性可以存放任何類(lèi)型的文件; 但是ACFS不支持存放數(shù)據(jù)文件

ASM基礎(chǔ)概念:

  • ASM的最小存儲(chǔ)單位是一個(gè)”allocation unit”(AU),通常為1MB,在Exadata上推薦為4MB
  • ASM的核心是存儲(chǔ)文件
  • 文件被劃分為多個(gè)文件片,稱(chēng)之為”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使用類(lèi)似于普通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ù)
  • 用戶(hù)可以選擇EXTERNAL、NORMAL、HIGH三種冗余鏡像
  • EXTERNAL即ASM本身不做鏡像,而依賴(lài)于底層存儲(chǔ)陣列資深實(shí)現(xiàn)鏡像;在External下任何的寫(xiě)錯(cuò)誤都會(huì)導(dǎo)致Disk Group被強(qiáng)制dismount。在此模式下所有的ASM DISK必須都存在健康,否則Disk Group將無(wú)法MOUNT
  • NORMAL即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ù)鏡像依賴(lài)于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)之間,稱(chēng)為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ǔ)控制器故障或者類(lèi)似的短期磁盤(pán)故障:
  • 這種對(duì)于文件變更的追蹤基于一個(gè)發(fā)生變化的file extent的位圖,該位圖告訴ASM哪些extents需要從健康的partner哪里拷貝至需要修復(fù)的disk,該特性稱(chēng)之為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 給用于訪(fǎng)問(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訪(fǎng)問(wèn)。

實(shí)際上對(duì)于RDBMS Oracle而言訪(fǎng)問(wèn)ASM disk和訪(fǎng)問(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)用所訪(fǎng)問(wèn)的東西,除了本地文件系統(tǒng)。 甚至于NFS上的文件都可以被當(dāng)做一個(gè)ASM Disk來(lái)用,這樣便于喜歡NAS的用戶(hù)使用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操作中訪(fǎng)問(wèn)它,以獲得更加的吞吐量,也能提供高效的順序訪(fǎng)問(wèn)。訪(fǎng)問(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__ (例如: 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 sysasm

SQL*Plus: Release 11.2.0.3.0 Production on Wed Feb 13 11:13:39 2013

Copyright (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 option

INSTANCE_NAME
----------------
+ASM

SQL> 
SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +SYSTEMDG/asm/asmparameterfile
                                                 /registry.253.805993079

select GROUP_KFFXP, DISK_KFFXP, AU_KFFXP
  from x$kffxp
 where number_kffxp =
       (select file_number
          from v$asm_alias
         where name = 'REGISTRY.253.805993079');

GROUP_KFFXP DISK_KFFXP   AU_KFFXP
----------- ---------- ----------
          3          2         38
          3          1         39
          3          0         44

也可以這樣定位

select GROUP_KFDAT, NUMBER_KFDAT, AUNUM_KFDAT
  from x$kfdat
 where fnum_kfdat = (select file_number
                       from v$asm_alias
                      where name = 'REGISTRY.253.805993079')

GROUP_KFDAT NUMBER_KFDAT AUNUM_KFDAT
----------- ------------ -----------
          3            0          44
          3            1          39
          3            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                 0

SQL> 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-diskj
          2 SYSTEMDG_0002                  /dev/asm-diski
          1 SYSTEMDG_0001                  /dev/asm-diskh
          0 SYSTEMDG_0000                  /dev/asm-diskg

SQL> select disk,NUMBER_KFDPARTNER,DISKFGNUM from X$KFDPARTNER where grp=3;

      DISK NUMBER_KFDPARTNER  DISKFGNUM
---------- ----------------- ----------
         0                 1          1
         0                 2          1
         0                 3          1
         1                 0          2
         1                 2          2
         1                 3          2
         2                 0          3
         2                 1          3
         2                 3          3
         3                 0          4
         3                 1          4
         3                 2          4

12 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,專(zhuān)門(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)的話(huà),因?yàn)锳SM是先mirror鏡像后stripe條帶化,所以在這個(gè)特征上更像Raid 10。 但是注意,再次強(qiáng)調(diào),ASM既不是RAID 10也不是RAID 01, 重復(fù)一千遍。。。。。。。。。。。。。


文章標(biāo)題:深入了解OracleASM(一):基礎(chǔ)概念
網(wǎng)頁(yè)地址:http://weahome.cn/article/gspgoe.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部