相關(guān)文章鏈接:
10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有富拉爾基免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Asm Instance Parameter Best Practice
為什么RHEL 6上沒有ASMLIB?
Unix上如何查看文件名開頭為”+asm”的TRACE文件
asm_power_limit對IO的影響
針對11.2 RAC丟失OCR和Votedisk所在ASM Diskgroup的恢復(fù)手段
10g ASM lost disk log
11gR2 RAC ASM啟動揭秘
在11gR2 RAC中修改ASM DISK Path磁盤路徑
在Linux 6上使用UDEV解決RAC ASM存儲設(shè)備名問題
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等待事件
幾個關(guān)于oracle 11g ASM的問題
利用UDEV服務(wù)解決RAC ASM存儲設(shè)備名
Discover Your Missed ASM Disks
Oracle內(nèi)部視圖X$KFFXP
Fixed X$ Tables in ASM
了解AMDU工具生成的MAP文件
使用AMDU工具從無法MOUNT的DISKGROUP中抽取數(shù)據(jù)文件
自動存儲管理 (ASM) 是 Oracle Database 的一個特性,它為數(shù)據(jù)庫管理員提供了一個在所有服務(wù)器和存儲平臺上均一致的簡單存儲管理接口。作為專門為 Oracle 數(shù)據(jù)庫文件創(chuàng)建的垂直集成文件系統(tǒng)和卷管理器,ASM 提供了直接異步 I/O 的性能以及文件系統(tǒng)的易管理性。ASM 提供了可節(jié)省 DBA 時間的功能,以及管理動態(tài)數(shù)據(jù)庫環(huán)境的靈活性,并且提高了效率。ASM 的主要優(yōu)點(diǎn)有:
Oracle Cloud File System (CloudFS) 前所未有地簡化了通用文件的存儲管理、供應(yīng)自動化和存儲整合。CloudFS 是一個存儲云基礎(chǔ)架構(gòu),提供資源池、網(wǎng)絡(luò)可訪問性、快速伸縮以及快速供應(yīng) — 這些都是云計(jì)算環(huán)境的關(guān)鍵要求。該產(chǎn)品包括:
ADVM 提供了一個通用卷管理服務(wù)和一個標(biāo)準(zhǔn)設(shè)備驅(qū)動程序接口,便于系統(tǒng)管理員跨不同平臺進(jìn)行管理。ACFS 和第三方文件系統(tǒng)可以使用 ASM
動態(tài)卷創(chuàng)建和管理可利用 ASM 特性的所有功能的文件系統(tǒng)。因此,無需停機(jī)即可輕松調(diào)整 ADVM 卷的大小以適應(yīng)文件系統(tǒng)的存儲需求。
一個通用的與 POSIX、X/OPEN 和 Windows 兼容的文件系統(tǒng),專為單節(jié)點(diǎn)和單集群的配置而設(shè)計(jì)。使用操作系統(tǒng)自帶的命令、ASM asmcmd 和 Oracle Enterprise Manager 對 ACFS 進(jìn)行管理。ACFS 支持高級數(shù)據(jù)服務(wù),如時間點(diǎn)復(fù)制快照、文件系統(tǒng)復(fù)制和標(biāo)簽,以及文件系統(tǒng)安全性和加密。
Automatic Storage Management是Oracle 在版本10g中率先(對比其他RDBMS)提出的數(shù)據(jù)庫存儲自動解決方案,在版本11g中得到進(jìn)一步升華。ASM提供了數(shù)據(jù)庫管理所需要的一個簡單、有效 的存儲管理接口,該接口實(shí)現(xiàn)了跨服務(wù)器和存儲平臺。 ASM是文件系統(tǒng)filesystem和volume manager卷管理軟件的一體化,專門為Oracle的數(shù)據(jù)庫文件鎖設(shè)計(jì)的; ASM在保證如文件系統(tǒng)般管理簡單的基礎(chǔ)上提供高性能的異步Async IO。ASM的引入提高了數(shù)據(jù)庫的可擴(kuò)展容量,同時節(jié)約了DBA的時間,使其能夠更敏捷、更高效地管理一個流動性較大的數(shù)據(jù)庫環(huán)境。
ASM的出現(xiàn)是為RDBMS管理文件存儲
ASM基礎(chǔ)概念:
ASM存儲以diskgroups的概念呈現(xiàn):
ASM所提供的高可用性:
Failure Group鏡像的使用
重新平衡Rebalancing
性能方面
其他知識
Disk Group:
Disk Group”磁盤組” 是ASM管理的邏輯概念對象,一個Disk Group由多個ASM disk組成。每一個Disk Group都是子描述的,如同一個標(biāo)準(zhǔn)的文件系統(tǒng)一樣。所有關(guān)于該Diskgroup 空間使用信息的元數(shù)據(jù)均完整地包含在這個磁盤組中。 若ASM可以找到所有屬于該ASM diskgroup的DISK則他不需要任何其他額外的元數(shù)據(jù)。
文件空間從Disk Group中分配。任何一個ASM文件總是完整地包含在一個單獨(dú)的Disk Group中。但是,一個Disk Group可能包含了屬于多個數(shù)據(jù)庫的文件,一個單獨(dú)的數(shù)據(jù)庫的文件也可以存放在多個不同的Disk Group中。 在大多數(shù)實(shí)際的部署中,不會創(chuàng)建太多數(shù)量的Disk Groups,一般在3~4個。
Disk Group提供三種不同的redundancy冗余度,詳見上文。
ASM Disk
一個ASM Disk是組成Disk Group的基本的持久的存儲。 當(dāng)一個ASM Disk加入到Disk Group中時,它要么采用管理員指定的ASM Disk Name要么采用系統(tǒng)自動分配的Disk Name。 這不同于OS 給用于訪問該設(shè)備的”藝名”。 在一個Cluster集群中, 同一個Disk 可能在不同的節(jié)點(diǎn)上顯示不同的Device Name設(shè)備名,例如在 Node1上的 /dev/sdc ,對應(yīng)于Node2上的/dev/sdd。 ASM Disk必須在所有使用該Disk Group的實(shí)例上可用直接磁盤I/O訪問。
實(shí)際上對于RDBMS Oracle而言訪問ASM disk和訪問普通的文件并沒有什么不同,除非使用了ASMLIB(ASMLIB不是ASM必須的,再次強(qiáng)調(diào)!)。常規(guī)情況下ASM Disk是OS上可見的LUN的partition,該分區(qū)覆蓋了所有不被操作系統(tǒng)所保留的磁盤的空間。 大多數(shù)操作系統(tǒng)需要保留LUN的第一個block作為分區(qū)表(partition table); 由于ASM總是會寫ASM Disk的第一個塊,所以要保證ASM不會去覆蓋前幾個block上的分區(qū)表(partition table),例如在Solaris上分區(qū)時不要把前幾個柱面劃給partition。LUN可以是簡單的物理JBOD,或者是由高級存儲陣列管理的虛擬 LUN。既可以是直連的設(shè)備也可以是SAN。ASM Disk可以是任何被開發(fā)系統(tǒng)調(diào)用所訪問的東西,除了本地文件系統(tǒng)。 甚至于NFS上的文件都可以被當(dāng)做一個ASM Disk來用,這樣便于喜歡NAS的用戶使用ASM,當(dāng)然比起NFS來我更建議干脆用ISCSI。
注意雖然可以使用普通logical Volume Manager LVM管理的logical volume作為ASM Disk,但是這并不是推薦組合,除非你想不到其他更好的辦法。 即便你一定要這樣用,但是注意也不要在LVM級別做鏡像和條帶化。
ASM將任何文件以AU大小均勻分布在Disk Group的所有Disk上。每一個ASM Disk均被維護(hù)以保持同樣的使用比率。這保證同一個Disk Group中的所有Disk的IO負(fù)載基本一致。由于ASM在一個Disk Group中的磁盤上的負(fù)載均衡,所以為同一個物理磁盤的不同區(qū)域劃分為2個ASM Disk不會對性能有所影響;而同一個物理磁盤上劃分2個不同分區(qū)置于不同的2個Disk Group則有效。
當(dāng)ASM Disk Group啟用冗余時單個ASM Disk僅是一個失敗單元。對于該ASM Disk的寫失敗在10g會自動從該Disk Group drop掉該Disk,前提是該Disk的丟失被容許。
Allocation Unit
每一個ASM Disk都被劃分為許多個AU allocation units(單個AU 的大小在 1MB ~64MB,注意總是2的次方MB)。而且AU allocation unit也是Disk Group的基本分配單元。一個ASM Disk上的可用空間總是整數(shù)倍個AU。在每一個ASM Disk的頭部均有一個表,該表的每一條記錄代表該ASM Disk上的一個AU。文件的extent指針(pointer)給出了ASM Disk Number磁盤號和AU號,這就描述了該extent的物理位置。由于所有的空間操作都以AU為單位,所以不存在所謂ASM碎片這樣的概念和問題。
一個AU(1M~64M)足夠小,以便一個文件總是要包含很多個AU,這樣就可以分布在很多磁盤上,也不會造成熱點(diǎn)。一個AU又足夠大以便能夠在一 個IO操作中訪問它,以獲得更加的吞吐量,也能提供高效的順序訪問。訪問一個AU的時間將更多的消耗在磁盤傳輸速率上而非花在尋找AU頭上。對于Disk Group的重新平衡也是對每一個AU逐次做的。
了解ASM后臺進(jìn)程的作用:
GMON: ASM Diskgroup監(jiān)控進(jìn)程
ASMB: ASM后臺網(wǎng)絡(luò)進(jìn)程
RBAL: ASM reblance master process 重新平衡主進(jìn)程
ARBx: reblance slave process實(shí)際實(shí)施reblance的后臺進(jìn)程
MARK: AU resync AU重新同步的指揮家進(jìn)程
了解ASM前臺進(jìn)程的作用:
ASM的client(主要是RDBMS DB和CRSD))在連接ASM實(shí)例時會產(chǎn)生前臺進(jìn)程,前天進(jìn)程的名字一般為oracle+ASM__ (例如: oracle+ASM_DBW0_DB1)。
OCR 特有的前臺進(jìn)程foreground: oracle+ASM1_ocr
ASM相關(guān)的V$和X$視圖
視圖名 | 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重平衡操作 |
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的條帶化和鏡像情況。注意對于primary au和mirror au讀操作的負(fù)載是均衡的, 而寫操作要求同時寫2者到磁盤。以下是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 這個X$視圖包含了 disk-partner(1-N)的映射關(guān)系,在一個給定ASM Diskgroup,若2個Disk存有同一個extent的鏡像拷貝,則將2個disk視作partners。因此partners必須屬于同一個 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對應(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' 通過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常見問題, FAQ:
Q:ASM做 rebalance和 mirror 的基本顆粒是什么?
A: ASM做mirror 鏡像的基本顆粒是file的extent,默認(rèn)情況下一個extent等于一個AU,11g之后一個extent可以是1 or 8 or 64個AU
ASM做rebalance重新平衡的基本顆粒也是extent,雖然重新平衡是對每一個AU逐次做的。
Q:ASMLIB和ASM的關(guān)系是什么?
A:ASMLIB是一種種基于Linux module,專門為Oracle Automatic Storage Management特性設(shè)計(jì)的內(nèi)核支持庫(kernel support library)。
簡單來說ASMLIB是一種Linux下的程序包,它不屬于Oracle ASM kernel。 通過ASMLIb可以做到設(shè)備名綁定,便于ASM使用的目的; 但是Linux上能實(shí)現(xiàn)設(shè)備名綁定并便于ASM使用的服務(wù)有很多,例如udev、mpath等;
所以ASMLIB并不是ASM必須的組件; 國內(nèi)的中文文章對于該概念的描述大多不清晰,造成了ASMLIB=ASM或者ASM必須用ASMLIB的誤解,這是以訛傳訛。
ASMLIB的缺點(diǎ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。 如果硬要說相似點(diǎn)的話,因?yàn)锳SM是先mirror鏡像后stripe條帶化,所以在這個特征上更像Raid 10。 但是注意,再次強(qiáng)調(diào),ASM既不是RAID 10也不是RAID 01, 重復(fù)一千遍。。。。。。。。。。。。。
網(wǎng)站題目:深入了解OracleASM(一):基礎(chǔ)概念
網(wǎng)站鏈接:http://m.rwnh.cn/article4/gspgoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站維護(hù)、微信小程序、網(wǎng)頁設(shè)計(jì)公司、動態(tài)網(wǎng)站、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)