ASM 實(shí)例沒(méi)有數(shù)據(jù)字典,,所以連接ASM 實(shí)例只能使用以下三種系統(tǒng)權(quán)限之一:SYSASM、SYSDBA或 SYSOPER,。
· SYSDBA:該權(quán)限授予對(duì)ASM 中存儲(chǔ)的數(shù)據(jù)的訪問(wèn)權(quán)限,,在當(dāng)前版本中還授予SYSASM管理權(quán)限,。
· SYSOPER:該權(quán)限授予使用一組非破壞性ALTER DISKGROUP命令以及啟動(dòng)和停止ASM 實(shí)例的權(quán)限。不允許使用CREATE DISKGROUP等其它命令,。
Oracle Universal Installer (OUI) 實(shí)用程序?qū)⑦@些組分別稱為OSASM,、OSDBA和 OSOPER組,即OSASM組是授予了 SYSASM權(quán)限的操作系統(tǒng)組,。
因此,,SYSASM是數(shù)據(jù)庫(kù)使用的名稱,OSASM是OUI 實(shí)用程序使用的名稱,,而 asmadmin是操作系統(tǒng)使用的名稱,。它們都是指同一組用戶。
- 使用Oracle Enterprise Manager 管理ASM 用戶
Oracle Enterprise Manager 允許你管理通過(guò)遠(yuǎn)程連接(使用口令文件驗(yàn)證)訪問(wèn)ASM 的用戶,。這些用戶是專門為ASM 實(shí)例保留的,。
僅當(dāng)你作為SYSASM用戶連接時(shí)才具有此功能。如果你作為SYSDBA或SYSOPER用戶連接,,該功能將隱藏,。
· 單擊“Creat(創(chuàng)建)”按鈕時(shí)將顯示“Create User(創(chuàng)建用戶)”頁(yè)。
· 單擊“Edit(編輯)”按鈕時(shí)將顯示“Edit User(編輯用戶)”頁(yè),。
· 通過(guò)單擊“Delete(刪除)”按鈕可以刪除創(chuàng)建的用戶,。
注:要以SYSASM角色登錄ASM,請(qǐng)單擊該頁(yè)頂部的“Preferences(首選項(xiàng))”鏈接,,然后單擊“Preferred Credentials(首選身份證明)”鏈接,。此時(shí)你將在目標(biāo)類型列表中看到ASM。單擊ASM 目標(biāo)類型旁邊的“Set Credentials(設(shè)置身份證明)”圖標(biāo),,定義具有SYSASM權(quán)限的帳戶和口令,。你需要從Database
Control 中注銷并再次登錄,更改才會(huì)生效,。
- 啟動(dòng)和停止ASM 實(shí)例使用SQL*Plus
使用SQL*Plus 啟動(dòng)和停止ASM 實(shí)例與啟動(dòng)和停止數(shù)據(jù)庫(kù)實(shí)例的方式相似,。
$ . oraenv
ORACLE_SID = [orcl] ? +ASM
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is
/u01/app/oracle
$ sqlplus / AS SYSASM
SQL*Plus: Release 11.2.0.1.0 - Production on Wed Jul 8 20:46:46 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ASM instance started
Total System Global Area 284565504 bytes
Fixed Size 1336028 bytes
Variable Size 258063652 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
ASM diskgroups volume enabled
SQL> shutdown abort
SQL> select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA MOUNTED
RECOVERY MOUNTED
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
+ASM STARTED
在SQL*Plus 中使用STARTUP命令啟動(dòng)ASM 實(shí)例,其方式與啟動(dòng)Oracle DB 實(shí)例的方式相似,。啟動(dòng)ASM 實(shí)例時(shí),,請(qǐng)注意以下幾點(diǎn):
· 要使用SQL*Plus 連接ASM 實(shí)例,請(qǐng)將 ORACLE_SID環(huán)境變量設(shè)置為ASM SID,。單實(shí)例數(shù)據(jù)的默認(rèn)ASM SID 為 +ASM,Oracle RAC 節(jié)點(diǎn)的默認(rèn)ASM SID 是+ASMnode_number,,其中node_number是節(jié)點(diǎn)的編號(hào),。oraenv腳本將設(shè)置ORACLE_BASE、ORACLE_SID,、ORACLE_HOME和
PATH變量,。
· 初始化參數(shù)文件必須包含下面的條目:
INSTANCE_TYPE = ASM
該參數(shù)指示正在啟動(dòng)ASM 實(shí)例,而不是數(shù)據(jù)庫(kù)實(shí)例,。
· 運(yùn)行STARTUP命令時(shí),,該命令嘗試裝載初始化參數(shù)ASM_DISKGROUPS指定的磁盤組,而不是嘗試裝載和打開(kāi)某個(gè)數(shù)據(jù)庫(kù),。如果尚未為 ASM_DISKGROUPS輸入值,,稍后可以通過(guò)ALTER DISKGROUP...MOUNT命令裝載磁盤組。
下面的列表講述了與ASM 相關(guān)的 STARTUP命令參數(shù),。
· FORCE:在重新啟動(dòng)ASM 實(shí)例之前向它發(fā)出SHUTDOWN ABORT,。
· MOUNT或 OPEN:裝載ASM_DISKGROUPS初始化參數(shù)中指定的磁盤組,。這是未指定命令參數(shù)時(shí)的默認(rèn)值。
· NOMOUNT:?jiǎn)?dòng)ASM 實(shí)例而不裝載任何磁盤組,。
· RESTRICT:在受限模式下啟動(dòng)實(shí)例,。RESTRICT子句可以與 MOUNT、NOMOUNT和OPEN子句組合使用,。
在受限模式下,,數(shù)據(jù)庫(kù)實(shí)例不能使用磁盤組。即,,數(shù)據(jù)庫(kù)無(wú)法打開(kāi)磁盤組中的文件,。
另外,如果磁盤組是由某個(gè)實(shí)例在受限模式下裝載的,,則該磁盤組無(wú)法由集群中的任何其它實(shí)例裝載,。通過(guò)受限模式,你可以在磁盤組上執(zhí)行維護(hù)任務(wù),,而不會(huì)受到客戶機(jī)的干擾,。在磁盤組處于受限模式下時(shí)執(zhí)行重新平衡操作,就不再需要在集群環(huán)境中的ASM
實(shí)例之間傳遞鎖定和取消鎖定區(qū)映射消息,。這樣可以提高重新平衡操作的整體吞吐量,。在維護(hù)期間結(jié)束時(shí),你必須顯式卸載該磁盤組并在正常模式下重新裝載該磁盤組,。
在SQL*Plus 中運(yùn)行SHUTDOWN命令時(shí)將啟動(dòng)ASM 關(guān)閉進(jìn)程,。在運(yùn)行此命令之前,請(qǐng)確保已設(shè)置ORACLE_SID和 ORACLE_HOME環(huán)境變量,,從而你可以連接到ASM 實(shí)例,。
Oracle 強(qiáng)烈建議你在嘗試關(guān)閉ASM 實(shí)例之前關(guān)閉使用該ASM 實(shí)例的所有數(shù)據(jù)庫(kù)實(shí)例。
下面的列表講述了與ASM 相關(guān)的 SHUTDOWN命令參數(shù),。
· NORMAL:ASM 在卸載所有磁盤組并關(guān)閉ASM 實(shí)例之前,,將等待任何正在進(jìn)行的SQL 完成執(zhí)行。在關(guān)閉實(shí)例之前,,ASM 將等待所有當(dāng)前連接的用戶從該實(shí)例斷開(kāi),。如果任何數(shù)據(jù)庫(kù)實(shí)例與ASM 實(shí)例連接,則 SHUTDOWN命令將返回錯(cuò)誤并保持ASM 實(shí)例繼續(xù)運(yùn)行,。NORMAL是默認(rèn)關(guān)閉模式,。
· IMMEDIATE或 TRANSACTIONAL:ASM 在卸載所有磁盤組并關(guān)閉ASM 實(shí)例之前,將等待任何正在進(jìn)行的SQL 完成執(zhí)行,。ASM 不等待當(dāng)前與實(shí)例連接的用戶斷開(kāi)連接,。如果任何數(shù)據(jù)庫(kù)實(shí)例與ASM 實(shí)例連接,則 SHUTDOWN命令將返回錯(cuò)誤并保持ASM
實(shí)例繼續(xù)運(yùn)行,。
· ABORT:ASM 實(shí)例立即關(guān)閉,,而不按順序卸載磁盤組,。這將導(dǎo)致下次啟動(dòng)ASM 時(shí)進(jìn)行恢復(fù)操作。如果有任何數(shù)據(jù)庫(kù)實(shí)例與ASM 實(shí)例連接,,則該數(shù)據(jù)庫(kù)實(shí)例也將中止,。
注:有連接的RDBMS 實(shí)例時(shí),不應(yīng)用NORMAL,、IMMEDIATE和 TRANSACTIONAL形式的關(guān)閉,,而將返回下面的錯(cuò)誤:
SQL> shutdown
ORA-15097: cannot SHUTDOWN ASM instance with connected client (process 14372)
ASM是依賴于CSS守護(hù)進(jìn)程的,因此在啟動(dòng)ASM實(shí)例前要確保css守護(hù)進(jìn)程已經(jīng)啟動(dòng) ,。 CSS(Cluster Synchronization Services) 守護(hù)進(jìn)程用來(lái)維持ASM 及客戶端數(shù)據(jù)庫(kù)實(shí)例間的一致性同步,,如果是通過(guò)dbca建庫(kù)的話,那么CSS守護(hù)進(jìn)程默認(rèn)即會(huì)啟動(dòng)(跟隨系統(tǒng)reboot),。
- 啟動(dòng)和停止ASM 實(shí)例使用srvctl
可以使用Server Control 實(shí)用程序(srvctl) 啟動(dòng)和停止ASM 實(shí)例,。
$ . oraenv
ORACLE_SID = [orcl] ? +ASM
The Oracle base for
ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is
/u01/app/oracle
$ srvctl start asm -o mount
$ srvctl stop asm -f
可以使用Server Control 實(shí)用程序(srvctl) 檢查ASM 實(shí)例的狀態(tài)。
$ srvctl status asm
ASM is running on edrsr25p1
使用srvctl啟動(dòng)和停止ASM 實(shí)例
可以使用Server Control 實(shí)用程序(srvctl) 啟動(dòng)和停止ASM 實(shí)例以及由Grid Infrastructure 管理的其它資源,。srvctl實(shí)用程序位于Grid Infrastructure 的ORACLE_HOME/bin位置下和數(shù)據(jù)庫(kù)安裝的 ORACLE_HOME/bin位置下,。管理ASM、
監(jiān)聽(tīng)程序或Oracle Restart 時(shí),,應(yīng)該使用位于Grid Infrastructure ORACLE_HOME中的srvctl實(shí)用程序,。
可以下列方式使用 srvctl實(shí)用程序來(lái)控制ASM:
· 啟動(dòng)ASM 實(shí)例。
srvctl start asm [-o <start_option>]
<start_option>是有效的實(shí)例啟動(dòng)選項(xiàng)
(FORCE,、MOUNT,、OPEN、NOMOUNT或RESTRICT)之一(可選)
· 停止ASM 實(shí)例,。
srvctl stop asm [-o <stop_option>] -f
<stop_option>是有效的實(shí)例關(guān)閉選項(xiàng)
(NORMAL,、IMMEDIATE、TRANSACTIONAL或 ABORT)之一(可選),,
–f 是強(qiáng)制
· 報(bào)告ASM 實(shí)例的狀態(tài),。
srvctl status asm
- 啟動(dòng)和停止ASM 實(shí)例使用asmcmd
asmcmd實(shí)用程序提供了一個(gè)訪問(wèn)ASM 的命令行界面,無(wú)需使用SQL 語(yǔ)言,。
$ . oraenv
ORACLE_SID = [orcl] ? +ASM
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is
/u01/app/oracle
$ asmcmd
Connected to an idle instance.
ASMCMD> startup
ASM instance started
Total System Global Area 284565504 bytes
Fixed Size 1336028 bytes
Variable Size 258063652 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
ASM diskgroups volume enabled
ASMCMD> shutdown --abort
ASM instance shut down
Connected to an idle instance.
使用asmcmd啟動(dòng)和停止ASM 實(shí)例
用于管理的ASM 元數(shù)據(jù)位于ASM 實(shí)例內(nèi)包含的動(dòng)態(tài)性能視圖內(nèi)。通常通過(guò)ASM 實(shí)用程序使用SQL 語(yǔ)言來(lái)訪問(wèn)這些視圖,。要求了解SQL 語(yǔ)言增加了掌握ASM 的學(xué)習(xí)時(shí)間,,而且SQL 語(yǔ)言培訓(xùn)通常不在系統(tǒng)管理員和存儲(chǔ)管理員的學(xué)習(xí)范圍內(nèi)。asmcmd實(shí)用程序提供了一個(gè)類似偽Shell
的環(huán)境,,可以接受UNIX 格式的語(yǔ)法執(zhí)行常用的ASM 管理任務(wù),。
它可以用于管理Oracle ASM 實(shí)例、磁盤組,、磁盤組的文件訪問(wèn)控制,、磁盤組內(nèi)的文件和目錄,、磁盤組的模板以及卷。
可以使用 asmcmd實(shí)用程序啟動(dòng)和關(guān)閉ASM 實(shí)例,。支持的啟動(dòng)選項(xiàng)包括:
--nomount(在不裝載磁盤組的情況下啟動(dòng)ASM 實(shí)例)
--restrict(啟動(dòng)ASM 實(shí)例并限制數(shù)據(jù)庫(kù)使用)
--pfile <pfile.ora>(使用定制pfile 啟動(dòng)ASM 實(shí)例)
支持的關(guān)閉選項(xiàng)包括:
--immediate(立即執(zhí)行關(guān)閉)
--abort(中止所有現(xiàn)有操作)
磁盤組是一個(gè)或多個(gè)磁盤的邏輯分組,,ASM 將其作為一個(gè)集合來(lái)管理。每個(gè)磁盤組都包含與自身相關(guān)聯(lián)的元數(shù)據(jù),。在概念上,,ASM 磁盤組類似于典型存儲(chǔ)區(qū)域網(wǎng)絡(luò)中的邏輯卷。
從磁盤組內(nèi)分配文件空間,。磁盤組中存儲(chǔ)的文件的內(nèi)容將在該磁盤組的磁盤中平均分布或條帶化,,以便消除熱點(diǎn)并在各磁盤上提供一致的性能。每個(gè)ASM 文件都完全包含在一個(gè)磁盤組中,。但是,,一個(gè)磁盤組可以包含屬于多個(gè)數(shù)據(jù)庫(kù)的文件,而一個(gè)數(shù)據(jù)庫(kù)可以使用來(lái)自多個(gè)磁盤組的不同文件,。
磁盤組的關(guān)鍵屬性是它的冗余設(shè)置,。有三種可能的磁盤組冗余設(shè)置:
· 外部冗余,其中ASM 不提供任何鏡像,,磁盤都假設(shè)為高度可靠,。
· 正常冗余,其中ASM 默認(rèn)支持雙向鏡像,,從而保證在較不可靠的存儲(chǔ)上實(shí)現(xiàn)數(shù)據(jù)完整性,。
· 高冗余,其中ASM 默認(rèn)支持三向鏡像,,從而更好地保證數(shù)據(jù)完整性,。
ASM 最多支持創(chuàng)建63 個(gè)磁盤組;但是,,對(duì)于大多數(shù)安裝,,你很少會(huì)需要很多磁盤組。
ASM磁盤組的管理方式比較多,,比如DBCA,、EM、SQL*PLUS等都可以操作,,還有oracle專門提供了ASMCMD命令行方式,,像操作文件系統(tǒng)一樣來(lái)操作磁盤組。
ASM 磁盤:
· 是為ASM 磁盤組預(yù)配的存儲(chǔ)設(shè)備
· 通過(guò)正常O/S 接口來(lái)訪問(wèn)
· 必須可由ASM 所有者讀取和寫入
· 必須可由集群中的所有節(jié)點(diǎn)訪問(wèn)
· 在不同的節(jié)點(diǎn)上可以有不同的O/S 名稱或路徑
· 可以是:
– 整個(gè)物理磁盤或物理磁盤的分區(qū)
– 存儲(chǔ)陣列中的磁盤或分區(qū)
– 邏輯卷(LV) 或邏輯單元(LUN)
– 網(wǎng)絡(luò)連接文件(NFS)
ASM 磁盤組包含一個(gè)或多個(gè)ASM 磁盤,。
ASM 磁盤必須可由集群中所有節(jié)點(diǎn)的ASM 所有者讀取和寫入,。
ASM 磁盤可以是磁盤上的分區(qū),但是Oracle 強(qiáng)烈建議不要與其它應(yīng)用程序程序共享ASM 使用的物理磁盤,。這是因?yàn)樵趹?yīng)用ASM 條帶化和鏡像策略時(shí),,磁盤組內(nèi)的各個(gè)ASM 磁盤的I/O 性能必須相似且一致,,才能獲得最佳性能。在ASM 和其它應(yīng)用程序之間共享設(shè)備會(huì)難以確保磁盤性能相似且一致,。
集群中不同節(jié)點(diǎn)上的ASM 磁盤的O/S 設(shè)備名稱不必相同,。ASM 通過(guò)讀取ASM 磁盤的標(biāo)頭來(lái)識(shí)別磁盤組的成員。
通常,,ASM 磁盤是以存儲(chǔ)陣列中的裸LUN 提供給ASM 的,。另外,ASM 磁盤還可以是遠(yuǎn)程N(yùn)FS 文件器中的文件,。
ASM 磁盤劃分為分配單元(AU):
· 在創(chuàng)建磁盤組時(shí)可以配置AU 大小,。
· AU 默認(rèn)大小為1 MB:
– 足夠小,能夠被數(shù)據(jù)庫(kù)緩存,;但又足夠大,,能夠提供高效的后續(xù)訪問(wèn)
· 允許的AU 大小:
– 1,、2,、4、8,、16,、32 或64 MB
– 在超大型數(shù)據(jù)庫(kù)(VLDB) 中或使用專門的存儲(chǔ)硬件時(shí),較大的AU 可能非常有用
在ASM 磁盤內(nèi),,空間劃分為分配單元(AU),。AU 默認(rèn)大小是1 MB,該大小足夠小,,不會(huì)變?yōu)闊狳c(diǎn),,但又足夠大,能夠提供高效的后續(xù)訪問(wèn),。創(chuàng)建磁盤組時(shí)可以設(shè)置AU 大小,。你無(wú)法更改磁盤組的AU 大小。在超大型數(shù)據(jù)庫(kù)(VLDB) 中或使用專門的存儲(chǔ)硬件時(shí),,較大的AU
大小可能會(huì)很有用,。如果經(jīng)常訪問(wèn)某個(gè)AU,則數(shù)據(jù)庫(kù)內(nèi)核會(huì)將其緩存以便實(shí)現(xiàn)更高的訪問(wèn)效率,。
ASM 文件:
· 是由AU 組成的ASM 區(qū)的集合
– 可變大小的區(qū)支持大型文件
· 對(duì)數(shù)據(jù)庫(kù)內(nèi)核顯示為普通文件
· 文件名以“+”開(kāi)頭
– 例如,,
+DATA/orcl/datafile/system.256.689832921
· 可以與可選的文件名別名相關(guān)聯(lián)
– 例如,+DATA/dbfiles/mydb/system01.dbf
· 在磁盤組中的磁盤中平均分布
· 根據(jù)磁盤組中定義的策略進(jìn)行鏡像
ASM 呈現(xiàn)一組文件供ASM 的客戶機(jī)使用,。ASM 文件由一組分配單元組成,這些文件對(duì)數(shù)據(jù)庫(kù)內(nèi)核顯示為普通文件,。
每個(gè)ASM 文件都具有唯一的系統(tǒng)生成的名稱,。
生成格式為:+diskgroup/dbname/file_type/file_type_tag.file.incarnation ,,
· +diskgroup :磁盤組名稱;
· dbname :數(shù)據(jù)庫(kù)的DB_UNIQUE_NAME參數(shù)值,;
· file_type :創(chuàng)建的文件類型,,比如CONTROLFILE/DATAFILE/ONLINELOG/ARCHIVELOG/TEMPFILE/BACKUPSET/FLASHBAC
K等等;
· file_type_tag :文件類型的標(biāo)簽,,比如表空間對(duì)應(yīng)的通常為該表空間名稱,;
· file.incarnation :文件序號(hào)+incarnation,用來(lái)確保文件的唯一,;
sys@TEST0924> alter tablespace INVENTORY add datafile '+DATA';
Tablespace altered.
ASMCMD> pwd
+data/test0924/datafile
ASMCMD> ls
INVENTORY.266.829658135
示例顯示了一個(gè)完全限定的ASM 文件名的示例,。完全限定的ASM 文件名表示一個(gè)層次結(jié)構(gòu),其開(kāi)頭是加號(hào)與磁盤組名稱的組合,。磁盤組名稱后是數(shù)據(jù)庫(kù)名稱和文件類型,。最后的元素由標(biāo)記名稱、文件編號(hào)和原型編號(hào)組成,??梢詣?chuàng)建別名(可選),為管理員提供一種更用戶友好的方式來(lái)引用ASM
文件,。
文件使用條帶化和鏡像所有內(nèi)容(SAME) 策略在磁盤組的各ASM 磁盤中平均分布,。
ASM 本身支持大多數(shù)與數(shù)據(jù)庫(kù)相關(guān)的文件類型,例如數(shù)據(jù)文件,、日志文件,、控制文件、
RMAN 備份及其它文件,。在Oracle Database 11g發(fā)行版2 之前,,ASM 僅支持與Oracle DB 相關(guān)的文件,無(wú)法用于存儲(chǔ)和管理ASCII 跟蹤文件和預(yù)警日志,、Oracle 二進(jìn)制文件,、
Oracle 集群注冊(cè)表(OCR) 和集群表決磁盤。Oracle Database 11g發(fā)行版2 提供在ASM 上運(yùn)行通用文件系統(tǒng)的方式,,從而消除了上述限制,。
ASM 通過(guò)稱為區(qū)映射的元數(shù)據(jù)跟蹤文件的分布。區(qū)映射是一個(gè)表,,將文件中的數(shù)據(jù)區(qū)映射到磁盤上的分配單元,。
文件區(qū)與分配單元之間的關(guān)系如下所示。區(qū)包含:
· 一個(gè)AU 用于前20,000 個(gè)區(qū)(0-19999)
·4 個(gè)AU 用于接下來(lái)的20,000 個(gè)區(qū)(20000-39999)
· 16 個(gè)AU 用于40,000 以上的區(qū)
將可變大小的區(qū)與大型分配單元結(jié)合使用,,可滿足非常大的ASM 文件的需要,。
ASM 用于負(fù)載平衡的條帶化策略與用于等待時(shí)間的條帶化策略不同:
· 對(duì)于負(fù)載平衡,粗粒度條帶化將多個(gè)分配單元連接起來(lái)使用。
– 例如:
在ASM 中,,條帶化主要具有兩種用途:
· 在磁盤組的所有磁盤中執(zhí)行I/O 負(fù)載平衡,。
· 改善I/O 等待時(shí)間。
粗粒度條帶化在磁盤組的各磁盤中分布分配單元,。這用于為磁盤組提供負(fù)載平衡,。分配文件時(shí),ASM 會(huì)在所有磁盤中平均分布分配單元,。有時(shí)分布無(wú)法非常平均,,但是隨著時(shí)間的流逝,會(huì)變得幾乎相等,。上圖顯示了一個(gè)具有五個(gè)分配單元的文件,,這些分配單元在條帶化之后,分布在一個(gè)外部冗余磁盤組的五個(gè)磁盤中,,該磁盤組共包含八個(gè)磁盤,。
對(duì)于前20,000 個(gè)區(qū),區(qū)大小等于AU 大小,。從第20,001 個(gè)區(qū)到第40,000 個(gè)區(qū),,該區(qū)組總是一次分配8 個(gè)區(qū),區(qū)大小等于4 倍AU 大小,。如果AU 大小為1 MB,,這意味著ASM 文件將一次增大64 MB (8 * 4 * 1 MB)。如果文件采用粗粒度條帶化,,則它將在8 個(gè)區(qū)中進(jìn)行條帶化,,條帶大小為1
AU。條帶化始終在AU 級(jí)別進(jìn)行,,而不是在區(qū)級(jí)別,。因此,無(wú)論文件多大,,粗粒度文件的每個(gè)AU 都與該文件的前一個(gè)AU 所在的磁盤不同,。在第40,000 個(gè)區(qū)之后,仍舊是每次分配8 個(gè)區(qū),,但區(qū)大小等于16 倍AU 大小,。
細(xì)粒度條帶化在分配單元組中放置128 KB 條帶單元來(lái)改善等待時(shí)間。
· 磁盤組具有8 個(gè)磁盤和外部冗余
· 使用默認(rèn)的AU 大?。? MB
· 第一個(gè)1 MB 區(qū)在8 個(gè)AU 中以128 KB 條帶形式寫入
細(xì)粒度條帶化將數(shù)據(jù)區(qū)拆分為128 KB 的塊,,然后在許多磁盤中分布每個(gè)區(qū)的負(fù)載,從而改善特定類型文件的等待時(shí)間,。默認(rèn)情況下,,細(xì)粒度條帶化用于控制文件和聯(lián)機(jī)重做日志文件,。
圖顯示了細(xì)粒度條帶化的工作原理。在此示例中,,新文件的第一個(gè)1 MB 區(qū)最終占用8 個(gè)不同分配單元中的第一個(gè)128 KB 塊,,這8 個(gè)分配單元分布在磁盤組的八個(gè)磁盤中。因此,,1 MB 的讀取或?qū)懭敕植荚诎藗€(gè)磁盤(而不是一個(gè)磁盤)中。
示例:
· 磁盤組具有8 個(gè)磁盤和外部冗余
· 使用默認(rèn)的AU 大?。? MB
· 下一個(gè)1 MB 區(qū)以128 KB 條帶的形式在相同的8 個(gè)分配單元中寫入,,直到這些分配單元寫滿
繼續(xù)前面的示例,空間中的下一個(gè)1 MB 區(qū)將分布在相同分配單元組的每個(gè)單元的第二個(gè)128 KB 塊中,。這種模式將繼續(xù),,直到第一組分配單元寫滿,然后分配另一組,。
· 共享需要容錯(cuò)的一項(xiàng)公用資源的一組磁盤
· 鏡像的區(qū)副本存儲(chǔ)在不同的故障組中
· 存儲(chǔ)硬件指示故障組邊界
– 分離磁盤控制器的示例:
在磁盤組內(nèi),,可以將一些磁盤歸到故障組中。故障組是存儲(chǔ)或數(shù)據(jù)庫(kù)管理員指定ASM 鏡像操作的硬件邊界的一種方式,。
例如,,可以將連接到一個(gè)磁盤控制器的所有磁盤指定為某個(gè)公用故障組的磁盤。這樣,,將在連接到不同控制器的磁盤上鏡像文件區(qū),。另外,管理員可以配置ASM 來(lái)選擇默認(rèn)故障組策略,。默認(rèn)策略是每個(gè)磁盤位于自己的故障組中,。
你可以使用所需的任何標(biāo)準(zhǔn)將磁盤歸到故障組中。故障組可以用于避免單個(gè)磁盤,、磁盤控制器,、I/O 網(wǎng)絡(luò)組件以及甚至整個(gè)存儲(chǔ)系統(tǒng)的故障。通常,,管理員將分析其存儲(chǔ)環(huán)境并對(duì)故障組進(jìn)行組織來(lái)消除特定故障情況,。
由數(shù)據(jù)庫(kù)或存儲(chǔ)管理員確定其安裝的最佳故障組配置。
一個(gè)共含八個(gè)磁盤的正常冗余磁盤組,,其中的磁盤分布在兩個(gè)故障組中,。
條帶化和鏡像示例
本頁(yè)中的圖顯示了一個(gè)正常冗余磁盤組中條帶化和鏡像的示例。紅塊表示一個(gè)包含五個(gè)區(qū)的文件,,這些區(qū)在條帶化后,,分布在磁盤組(共八個(gè)磁盤)的五個(gè)磁盤中。藍(lán)塊表示文件區(qū)的鏡像副本,。請(qǐng)注意,,無(wú)論區(qū)在各個(gè)磁盤和故障組中如何分布,每個(gè)區(qū)在一個(gè)故障組中僅有一個(gè)副本。
分配文件時(shí),,主區(qū)的分配用于保證性能,,輔助副本的分配用于保證完整性。因此,,默認(rèn)情況下,,所有數(shù)據(jù)庫(kù)讀取都針對(duì)主區(qū)進(jìn)行。
ASM中的磁盤組可分成兩類,,普通磁盤組和failure磁盤組,,后者又與ASM的榮譽(yù)方式有所關(guān)聯(lián)。
普通磁盤組就是標(biāo)準(zhǔn)的存儲(chǔ)單元,,ASM可以向其可訪問(wèn)的磁盤組中讀寫數(shù)據(jù),,failure磁盤組是為了提高數(shù)據(jù)的高可用性。
ASM中的磁盤榮譽(yù)策略分成三類,,外部冗余,,標(biāo)準(zhǔn)冗余和高度冗余,其中外部冗余與failure磁盤組無(wú)關(guān),,如果設(shè)置了標(biāo)準(zhǔn)冗余和高度冗余,,那么該磁盤組就必須擁有failure磁盤組。
標(biāo)準(zhǔn)冗余,,ASM要求改磁盤組至少要擁有兩個(gè)failure磁盤組,,即提供雙倍鏡像保護(hù),對(duì)于同一份數(shù)據(jù)(ASM中鏡像單位不是磁盤,,也不是塊,,而是一種AU的單位,該單位大小默認(rèn)是1M)將有主從兩份鏡像,,并且ASM通過(guò)算法來(lái)自動(dòng)確保主,、從鏡像不會(huì)存在于同一份failure
磁盤組,這樣就保障了就算整個(gè)failure 磁盤組都損壞,,數(shù)據(jù)也不會(huì)丟失,。至于高度冗余(High Redundancy)就更安全了,它至少需要三個(gè)failure 磁盤組,,也就是一份AU有一主多從的鏡像,,理論上將更加安全。
如果磁盤發(fā)生損壞,,那么損壞的磁盤默認(rèn)自動(dòng)offlice并被drop掉,,不過(guò)該磁盤所在的磁盤組仍將保持MOUNT狀態(tài),如果該盤有鏡像的話,,那么應(yīng)用不會(huì)有影響,,鏡像盤將自動(dòng)實(shí)現(xiàn)接管--只要不是所有failure磁盤組都損壞掉,,否則的話,該磁盤組將自動(dòng)DISMOUNT,。
如果磁盤H 發(fā)生故障,,則將根據(jù)正常鏡像在正常磁盤上重新創(chuàng)建該磁盤包含的區(qū)。
此處擴(kuò)展了上一頁(yè)中的示例,,假設(shè)磁盤H 發(fā)生故障,,無(wú)法再訪問(wèn)其包含的數(shù)據(jù)。該故障要求恢復(fù)故障磁盤上的所有區(qū)并將這些區(qū)復(fù)制到另一磁盤,。
區(qū)3 和5 的正常副本將復(fù)制到同一故障組中另一磁盤的空閑區(qū)域,。在此示例中,區(qū)5 將從磁盤B 復(fù)制到磁盤F,,區(qū)3 將從磁盤C 復(fù)制到磁盤G。
磁盤發(fā)生故障后的最后一步是ASM 從磁盤組中刪除故障磁盤,。
刪除磁盤基本上會(huì)觸發(fā)相同的過(guò)程,;不過(guò),在刪除磁盤時(shí),,要被刪除的磁盤上的區(qū)首先會(huì)復(fù)制到可用替代位置,。
· 最多支持63個(gè)磁盤組;
·最多支持10000個(gè)磁盤,;
·最大支持4pb/磁盤,;
·最大支持40 exabyte/ASM存儲(chǔ);
·最大支持1百W個(gè)文件/磁盤組,;
·外部冗余時(shí)單個(gè)文件最大35tb,,標(biāo)準(zhǔn)冗余時(shí)單個(gè)文件最大5.8tb,高冗余度時(shí)單個(gè)文件最大3.9tb,。
ASM 實(shí)例的主要目的是管理磁盤組和保護(hù)其數(shù)據(jù),。ASM 實(shí)例還將文件分布傳送到數(shù)據(jù)庫(kù)實(shí)例。這樣,,數(shù)據(jù)庫(kù)實(shí)例就可以直接訪問(wèn)磁盤組中存儲(chǔ)的文件,。
有多個(gè)磁盤組管理命令。執(zhí)行這些命令都需要SYSASM或SYSDBA權(quán)限,,且必須從ASM 實(shí)例發(fā)出,。
你可以添加新磁盤組。還可以修改現(xiàn)有磁盤組來(lái)添加新磁盤,、刪除現(xiàn)有磁盤以及執(zhí)行許多其它操作,。可以刪除現(xiàn)有磁盤組,。
,。
- 創(chuàng)建和刪除磁盤組使用SQL*Plus
CREATE DISKGROUP語(yǔ)句,,該語(yǔ)句的語(yǔ)法如下:
CREATE DISKGROUP diskgroup_name
[ { HIGH | NORMAL | EXTERNAL } REDUNDANCY ]
[ FAILGROUP failgroup_name ]
DISK [ NAME disk_name ] [ SIZE size_clause ] [ FORCE | NOFORCE ] ...;
·首先要指定的就是磁盤組名稱(diskgroup_name);
·指定冗余度,,有三個(gè)選擇:HIGH(高度冗余>三路),、NORMAL(標(biāo)準(zhǔn)冗余--雙路)和XTERNAL(外
部存儲(chǔ)冗余);
·選擇是否指定FAILGROUP(如果選擇非external則必須指定),;
·指定該磁盤組中的成員(對(duì)應(yīng)的LUN),,在指定成員時(shí)一般ASM能夠自動(dòng)檢測(cè)出磁盤的容量,不過(guò)
如果DBA基于某些方面的考慮,,希望限制ASM使用的空間的話,,也可以在指定成員過(guò)程中,順
便指定大小(只要指定的大小不超出磁盤實(shí)際容量),,在添加成員時(shí),,ASM也會(huì)自動(dòng)檢查磁盤頭以
確定該磁盤是否被加入到其它的磁盤組中,當(dāng)發(fā)現(xiàn)該盤已加入其它磁盤組的話,,你可以通過(guò)
FORCE選項(xiàng)來(lái)強(qiáng)制修改該盤所屬磁盤組,。
$ . oraenv
ORACLE_SID = [orcl] ? +ASM
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is
/u01/app/oracle
$ sqlplus / AS SYSASM
SQL*Plus: Release 11.2.0.1.0 - Production on Wed Jul 8 20:46:46 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
..
SQL> CREATE DISKGROUP dgroupA NORMAL REDUNDANCY
FAILGROUP controller1 DISK
'/devices/A1' NAME diskA1 SIZE 120G FORCE,
'/devices/A2',
FAILGROUP controller2 DISK
'/devices/B1',
'/devices/B2';
SQL> DROP DISKGROUP dgroupA INCLUDING CONTENTS;
創(chuàng)建和刪除磁盤組
假設(shè)ASM 磁盤搜索在/dev目錄中找到了下列磁盤:A1、A2,、B1和B2,。另外,假設(shè)磁盤A1和A2的磁盤控制器不同于B1和B2的磁盤控制器,。第一個(gè)示例說(shuō)明如何配置名為DGROUPA的磁盤組,,其包含兩個(gè)故障組:CONTROLLER1和ONTROLLER2。該示例還對(duì)該磁盤組使用默認(rèn)冗余屬性NORMAL
REDUNDANCY,。你還可以提供磁盤名稱和磁盤的大?。蛇x)。如果你不提供此信息,,ASM 會(huì)創(chuàng)建默認(rèn)名稱并嘗試確定磁盤的大小,。如果無(wú)法確定大小,將返回錯(cuò)誤,。FORCE指示指定的磁盤應(yīng)該添加到指定的磁盤組,,即使該磁盤已經(jīng)格式化為某個(gè)ASM
磁盤組的成員。對(duì)未格式化為某個(gè)ASM 磁盤組的成員的磁盤使用FORCE選項(xiàng)將返回錯(cuò)誤,。
第二個(gè)語(yǔ)句所示,,你可以刪除磁盤組及其所有文件。為了避免意外刪除,,如果磁盤組除內(nèi)部ASM 元數(shù)據(jù)外還包含任何其它文件,,則必須指定INCLUDING CONTENTS選項(xiàng)。必須先裝載磁盤組才能將其刪除,。在確保未打開(kāi)任何磁盤組文件后,,將從磁盤組中刪除該組及其所有驅(qū)動(dòng)器,。然后,將覆蓋每個(gè)磁盤的標(biāo)頭來(lái)清除ASM
格式信息,。
ALTER DISKGROUP dgroupA ADD DISK
'/dev/sde1' NAME A5,
'/dev/sdf1' NAME A6,
'/dev/sdg1' NAME A7,
'/dev/sdh1' NAME A8;
ALTER DISKGROUP dgroupA ADD DISK '/devices/A*';
磁盤格式化---------->磁盤組重新平衡
向磁盤組添加磁盤
此示例顯示如何向磁盤組添加磁盤,。可以執(zhí)行ALTER DISKGROUP ADD DISK命令來(lái)添加磁盤,。第一個(gè)語(yǔ)句向DGROUPA磁盤組添加四個(gè)新磁盤,。
第二個(gè)語(yǔ)句說(shuō)明搜索字符串的相互影響。請(qǐng)考慮下列配置:
/devices/A1是磁盤組DGROUPA的成員,。
/devices/A2是磁盤組DGROUPA的成員,。
/devices/A3是磁盤組DGROUPA的成員。
/devices/A4是候選磁盤,。
第二個(gè)命令將A4添加到DGROUPA磁盤組,。該命令將忽略其它磁盤,即使它們與搜索字符串相匹配,,因?yàn)樗鼈円呀?jīng)是DGROUPA磁盤組的一部分,。上圖顯示當(dāng)你向磁盤組添加磁盤時(shí),ASM 實(shí)例會(huì)確保該磁盤是可尋址且可用的,。然后會(huì)對(duì)該磁盤進(jìn)行格式化和重新平衡。重新平衡過(guò)程比較耗費(fèi)時(shí)間,,因?yàn)樵撨^(guò)程會(huì)將所有文件的區(qū)移至新磁盤,。
注:重新平衡不會(huì)阻止任何數(shù)據(jù)庫(kù)操作。重新平衡過(guò)程主要影響系統(tǒng)的I/O 負(fù)載,。重新平衡的能力越高,,對(duì)系統(tǒng)施加的I/O 負(fù)載越多,可用于數(shù)據(jù)庫(kù)I/O 的I/O 帶寬也就越少,。
當(dāng)發(fā)生添加/刪除磁盤組中磁盤的操作時(shí),,ASM能夠自動(dòng)平衡。對(duì)于普通的刪除操作(無(wú)force選項(xiàng)),,被刪除的磁盤在該上數(shù)據(jù)被有效處理前并不會(huì)立刻釋放,,同樣,新增磁盤時(shí),,在重分配工作完成前,,該盤也不會(huì)承擔(dān)I/O負(fù)載的工作。要監(jiān)控后臺(tái)進(jìn)行的操作,,可以通過(guò)V$ASM_OPERATION視圖查詢,。
如果希望ALTER DISKGROUP語(yǔ)句完成所有工作才返回的話,可以在執(zhí)行時(shí)附加REBALANCE WAIT子句,,這樣該語(yǔ)句就會(huì)等待自動(dòng)平衡的操作,,直接所有操作完成才返回結(jié)果,,當(dāng)然在等待期間,如果你不想等待,,使用CTRL+C終端既可以獲得控制權(quán),,而平衡的操作不受影響,會(huì)在后臺(tái)繼續(xù)進(jìn)行,。
從dgroupA刪除磁盤:
ALTER DISKGROUP dgroupADROP DISK A5;
在單個(gè)命令中添加和刪除磁盤:
ALTER DISKGROUP dgroupA
DROP DISKA6
ADD FAILGROUPcontroller3 DISK '/dev/sdi1'NAME A9;
取消磁盤刪除操作:
ALTER DISKGROUP dgroupA UNDROP DISKS;
其它ALTER命令
第一個(gè)語(yǔ)句顯示如何從DGROUPA磁盤組中刪除一個(gè)磁盤,。
第二個(gè)語(yǔ)句顯示如何在單個(gè)命令中添加和刪除磁盤。這種方式的一大優(yōu)點(diǎn)就是在該命令完成后才開(kāi)始重新平衡操作,。
第三個(gè)語(yǔ)句顯示如何取消磁盤刪除操作,。
當(dāng)刪除磁盤時(shí),ASM發(fā)現(xiàn)平衡不過(guò)來(lái)時(shí)(比如剩下的磁盤空間不足以存放所有數(shù)據(jù)時(shí)),,刪除操作也會(huì)失敗,,這種情況要么先刪數(shù)據(jù),要么取消刪除的操作,。
只要?jiǎng)h除操作還沒(méi)有真正完成,,就可以取消刪除磁盤的操作,
UNDROP命令僅對(duì)磁盤的暫掛刪除操作起作用,;它對(duì)于已經(jīng)完成的刪除操作沒(méi)有影響,。
如果需要,可以使用下面的語(yǔ)句對(duì)DGROUPB磁盤組進(jìn)行重新平衡:
ALTER DISKGROUP dgroupB REBALANCE POWER 5;
此命令通常是不需要的,,因?yàn)樵谔砑?、刪除磁盤或調(diào)整磁盤大小時(shí)會(huì)自動(dòng)執(zhí)行該操作。
但是如果你希望使用POWER子句覆蓋由初始化參數(shù)ASM_POWER_LIMIT定義的默認(rèn)速度,,此命令非常有用,。通過(guò)重新輸入具有新級(jí)別的命令,可以更改正在進(jìn)行的重新平衡操作的能力級(jí)別,。能力級(jí)別為零會(huì)導(dǎo)致重新平衡操作中斷,,直到隱式或顯式重新調(diào)用該命令。
下面的語(yǔ)句可以卸載DGROUPA:
ALTER DISKGROUP dgroupA DISMOUNT;
通過(guò)MOUNT和DISMOUNT選項(xiàng),,你可以使一個(gè)或多個(gè)磁盤組對(duì)數(shù)據(jù)庫(kù)實(shí)例可用或不可用,。
在支持單實(shí)例的集群ASM 環(huán)境中,當(dāng)該實(shí)例故障轉(zhuǎn)移到另一節(jié)點(diǎn)時(shí),,手動(dòng)卸載和裝載功能非常有用,。
不管你是加還是山磁盤組中的磁盤,ASM都能自動(dòng)進(jìn)行平衡,,確保該磁盤組中的每塊盤存儲(chǔ)的數(shù)據(jù)量平均,,以實(shí)現(xiàn)最優(yōu)化的IO性能,并且這一過(guò)程不會(huì)對(duì)數(shù)據(jù)造成影響,。
一般情況下ASM都會(huì)自動(dòng)對(duì)其下的磁盤組進(jìn)行平衡,,不過(guò)ORACLE也提供了手動(dòng)平衡磁盤組的方式,,通過(guò)alter diskgroup
... power 語(yǔ)句。前面提到過(guò)磁盤組的平衡度有1到11多個(gè)級(jí)別,,默認(rèn)是按照ASM_POWER_LIMIT初始化參數(shù)中設(shè)置的值,,手動(dòng)平衡的話,設(shè)置的平衡度可以與初始化參數(shù)中并不相同,,例如,,設(shè)置磁盤組平衡度為6,語(yǔ)句如下:
SQL> alter diskgroup DATA rebalance power 6;
Diskgroup altered.
手動(dòng)平衡磁盤組可能涉及大量的工作,,該操作可能費(fèi)時(shí)較久,,因此DBA在執(zhí)行該語(yǔ)句時(shí),一定要注意該操作對(duì)IO 性能的影響,。
另外再次強(qiáng)調(diào),,上述語(yǔ)句將很快返回diskgroup altered的提示,但這并不表示操作真正完成,,它只是反饋語(yǔ)句提交而已,,查看磁盤后臺(tái)的操作,可以通過(guò)v$asm_operator視圖,,或者在語(yǔ)句執(zhí)行時(shí)增加wait子句,,這樣ASM將會(huì)等到操作真正完成時(shí),才返回提示信息,。
ASM 磁盤組中文件和目錄的管理自動(dòng)化水平相當(dāng)高,,應(yīng)該說(shuō)基本上完全不需要DBA參與,當(dāng)然,,也是可以手動(dòng)修改的,。
創(chuàng)建新目錄:
SQL> alter diskgroup asmdisk2 add directory '+ASMDISK2/JSS1';
Diskgroup altered.
修改目錄名:
SQL> alter diskgroup asmdisk2 rename directory '+ASMDISK2/JSS1'
2 to '+ASMDISK2/JSS2';
Diskgroup altered.
刪除目錄名:
SQL> alter diskgroup asmdisk2 drop directory '+ASMDISK2/JSS2';
Diskgroup altered.
實(shí)際上,,ASM中目錄和文件的管理,,也可以通過(guò)ASMCMD命令行方式進(jìn)行,該命令行進(jìn)入之后,,是一個(gè)類似文件系統(tǒng)的管理界面,,ORACLE提供了一些最基礎(chǔ)的,如cd,、ls,、mkdir、rm等等幾個(gè)有限的操作命令,。
當(dāng)系統(tǒng)自動(dòng)產(chǎn)生的名稱太過(guò)復(fù)雜不怎么好記,,DBA可以通過(guò)別名,為它創(chuàng)建一個(gè)簡(jiǎn)單化的名稱,,而又不會(huì)對(duì)其現(xiàn)有名稱造成任何影響,。ASM中創(chuàng)建別名是通過(guò)alter diskgroup的alias子句實(shí)現(xiàn),,支持增加/修改/刪除等多項(xiàng)操作。V$ASM_ALIAS視圖中可以查詢到當(dāng)前實(shí)例中創(chuàng)建的別名,。
例如,,增加別名:
SQL> alter diskgroup asmdisk2 add alias '+ASMDISK2/repdb/datafile/temp01.dbf' for '+ASMDISK2/repdb/TEMPFILE/TEMP.267.714576831';
Diskgroup altered.
修改別名:
SQL> alter diskgroup asmdisk2 rename alias '+ASMDISK2/repdb/datafile/temp01.dbf' to '+ASMDISK2/repdb/TEMPFILE/temp01.dbf';
Diskgroup altered.
刪除別名:
SQL> alter diskgroup asmdisk2 drop alias '+ASMDISK2/repdb/TEMPFILE/temp01.dbf';
Diskgroup altered.
不管是添加/刪除或是修改別名,對(duì)原有文件路徑均不會(huì)有影響,。
- 使用Oracle Enterprise Manager 管理ASM
Oracle Enterprise Manager (EM) 是Oracle 的管理工具系列,,管理對(duì)象涵蓋數(shù)據(jù)庫(kù)、中間件,、應(yīng)用程序,、網(wǎng)絡(luò)、IT 基礎(chǔ)結(jié)構(gòu)及其它,。Oracle Enterprise Manager 是一個(gè)基于瀏覽器的環(huán)境,,為常見(jiàn)ASM 管理任務(wù)提供了一個(gè)點(diǎn)擊式替代方案。
· 每個(gè)磁盤組的兼容性都可以分別控制:
– ASM 兼容性控制磁盤上ASM 元數(shù)據(jù)結(jié)構(gòu),。
– RDBMS 兼容性控制最低使用者客戶機(jī)級(jí)別,。
– ADVM 兼容性確定磁盤組是否可以包含Oracle ASM 卷。
· 設(shè)置磁盤組兼容性的操作是不可逆的,。
適用于ASM 磁盤組的兼容性有三種:涉及描述磁盤組的持久性數(shù)據(jù)結(jié)構(gòu),,客戶機(jī)(磁盤組的使用者)的功能,以及能否在磁盤組中包含卷,。這些屬性分別稱為“ASM 兼容性”,、“RDBMS 兼容性”和“ADVM 兼容性”。每個(gè)磁盤組的兼容性都可以獨(dú)立控制,。這是支持包含Oracle
Database 10g和Oracle Database 11g磁盤組的異構(gòu)環(huán)境所必需的,。
這三種兼容性設(shè)置是每個(gè)ASM 磁盤組的屬性:
·RDBMS 兼容性是指RDBMS 實(shí)例的最低兼容版本,此設(shè)置將允許該實(shí)例裝載磁盤組,。
該兼容性確定了ASM 實(shí)例與數(shù)據(jù)庫(kù)(RDBMS) 實(shí)例間交換消息的格式,。ASM 實(shí)例可以支持以不同兼容性設(shè)置運(yùn)行的不同RDBMS 客戶機(jī)。每個(gè)實(shí)例的數(shù)據(jù)庫(kù)兼容版本設(shè)置必須高于或等于該數(shù)據(jù)庫(kù)使用的所有磁盤組的RDBMS 兼容性,。數(shù)據(jù)庫(kù)實(shí)例與ASM
實(shí)例通常在不同的Oracle 主目錄中運(yùn)行,。這意味著數(shù)據(jù)庫(kù)實(shí)例可以運(yùn)行與ASM 實(shí)例不同的軟件版本。數(shù)據(jù)庫(kù)實(shí)例第一次連接到ASM 實(shí)例時(shí),,系統(tǒng)會(huì)協(xié)定這兩個(gè)實(shí)例都支持的最高版本,。
數(shù)據(jù)庫(kù)的兼容性參數(shù)設(shè)置、數(shù)據(jù)庫(kù)的軟件版本以及磁盤組的RDBMS 兼容性設(shè)置確定了數(shù)據(jù)庫(kù)實(shí)例能否裝載給定的磁盤組,。
·ASM 兼容性是指控制磁盤上ASM 元數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)格式的持久性兼容性設(shè)置,。
磁盤組的ASM 兼容性級(jí)別必須始終高于或等于同一磁盤組的RDBMS 兼容性級(jí)別。
ASM 兼容性只與ASM 元數(shù)據(jù)的格式相關(guān)。文件內(nèi)容的格式取決于數(shù)據(jù)庫(kù)實(shí)例,。例如,,可以將某個(gè)磁盤組的ASM 兼容性設(shè)置為11.0,而將該磁盤組的RDBMS 兼容性設(shè)置為10.1,。這意味著該磁盤組只能由軟件版本為11.0 或更高的ASM 軟件管理,,而軟件版本高于或等于10.1
的任何數(shù)據(jù)庫(kù)客戶機(jī)都可以使用該磁盤組。
· ADVM 兼容性屬性確定磁盤組能否包含Oracle ASM 卷,。該值必須設(shè)置為11.2 或更高,。設(shè)置該屬性前,必須確保COMPATIBLE.ASM的值為11.2 或更高,。此外,,還必須加載ADVM 卷驅(qū)動(dòng)程序。
僅當(dāng)持久性磁盤結(jié)構(gòu)或消息傳送協(xié)議發(fā)生更改時(shí),,才需要提高磁盤組的兼容性,。但是,提高磁盤組兼容性是一個(gè)不可逆的操作,??梢允褂肅REATE DISKGROUP命令或ALTER DISKGROUP命令來(lái)設(shè)置磁盤組兼容性。
注:除了磁盤組兼容性,,兼容參數(shù)(數(shù)據(jù)庫(kù)兼容版本)確定了啟用的功能,;該參數(shù)適用于數(shù)據(jù)庫(kù)或ASM 實(shí)例,具體取決于instance_type參數(shù),。例如,,將該參數(shù)設(shè)置為10.1 將禁止使用Oracle Database 11g中引入的任何新功能(磁盤聯(lián)機(jī)/脫機(jī)、可變區(qū)等),。
CREATE DISKGROUP DATA2 NORMAL REDUNDANCY
DISK '/dev/sda1','/dev/sdb1'
ATTRIBUTE 'compatible.asm'='11.2';
每當(dāng)創(chuàng)建或更改ASM 磁盤組時(shí),,都可以使用CREATE DISKGROUP和ALTER DISKGROUP命令新增的ATTRIBUTE子句更改其屬性。圖中的表簡(jiǎn)要概述了這些屬性:
·ASM 允許使用在創(chuàng)建磁盤組時(shí)指定的不同分配單元(AU) 大小,。AU 大小可以是1,、2、4,、8,、16,、32 或64 MB,。
·RDBMS 兼容性:有關(guān)詳細(xì)信息,請(qǐng)參閱“ASM 磁盤組兼容性”一節(jié),。
·ASM 兼容性:有關(guān)詳細(xì)信息,,請(qǐng)參閱“ASM 磁盤組兼容性”一節(jié)。
· 可以用分鐘(M)、小時(shí)(H) 或天(D) 為單位指定DISK_REPAIR_TIME,。如果省略單位,,則使用默認(rèn)值H。如果省略此屬性,,則使用默認(rèn)值3.6H,。可以使用ALTER DISKGROUP ... DISK OFFLINE語(yǔ)句覆蓋此屬性,。
· 還可以為指定的模板指定冗余屬性,。
· 還可以為指定的模板指定條帶化屬性。
注:對(duì)于每個(gè)已定義的磁盤組,,可以通過(guò)V$ASM_ATTRIBUTE固定視圖查看所有已定義的屬性,。
- 使用Oracle Enterprise Manager 編輯磁盤組屬性
Oracle Enterprise Manager 提供了一種簡(jiǎn)便方式用于存儲(chǔ)和檢索與磁盤組相關(guān)的環(huán)境設(shè)置。
在“Create Disk Group(創(chuàng)建磁盤組)”頁(yè)和“Edit Advanced Attributes for Disk Group(編輯磁盤組的高級(jí)屬性)”頁(yè)中都可以設(shè)置兼容屬性,。僅“Edit Advanced Attributes for Disk Group(編輯磁盤組的高級(jí)屬性)”頁(yè)中添加了disk_repair_time屬性,。
注:對(duì)于低于11g的ASM 實(shí)例,默認(rèn)ASM 兼容性和客戶機(jī)兼容性都為10.1,。對(duì)于11gASM 實(shí)例,,默認(rèn)ASM 兼容性為11.2,數(shù)據(jù)庫(kù)兼容性為10.1,。
· 使用SQL*Plus:
SQL> SELECT f.type, f.redundancy, f.striped, f.modification_date,
a.system_created, a.name FROM v$asm_alias a, v$asm_file f WHERE
a.file_number = f.file_number and a.group_number = f.group_number
and type='DATAFILE';
TYPE REDUND STRIPE MODIFICAT S NAME
-------- ------ ------ --------- - ---------------------DATAFILE MIRROR COARSE 08-JUL-09 Y SYSTEM.256.689832921
DATAFILE MIRROR COARSE 08-JUL-09 Y SYSAUX.257.689832923
..
· 使用asmcmd:
ASMCMD> ls -l +DATA/orcl/datafile
Type Redund Striped Time Sys Name
DATAFILE MIRROR COARSE JUL 08 21:00:00 Y SYSTEM.256.689832921
DATAFILE MIRROR COARSE JUL 08 21:00:00 Y SYSAUX.257.689832923
..
檢索ASM 元數(shù)據(jù)
ASM 實(shí)例托管基于內(nèi)存的元數(shù)據(jù)表,,這些表通過(guò)動(dòng)態(tài)性能視圖呈現(xiàn)??梢允褂肧QL*Plus,、asmcmd或Oracle Enterprise Manager 查詢?cè)摂?shù)據(jù)。
使用SQL*Plus 需要具有SQL 語(yǔ)言知識(shí),,可能要聯(lián)接多個(gè)動(dòng)態(tài)性能視圖來(lái)檢索相關(guān)信息,。
第一個(gè)示例顯示v$asm_file和v$asm_alias之間建立了一個(gè)聯(lián)接,以便顯示關(guān)于數(shù)據(jù)庫(kù)的數(shù)據(jù)文件的元數(shù)據(jù),。如果針對(duì)ASM 實(shí)例執(zhí)行此查詢,,根據(jù)語(yǔ)法的定義方式,將檢索多個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件,。需要使用附加過(guò)濾條件才能將輸出限定為單個(gè)數(shù)據(jù)庫(kù),。
asmcmd實(shí)用程序的優(yōu)點(diǎn)在于,不需要SQL 語(yǔ)言知識(shí)就能連接到ASM 實(shí)例并檢索元數(shù)據(jù),。
它使用與UNIX 表示法類似的樣式,。此幻燈片上的第二個(gè)示例使用asmcmd命令來(lái)檢索SQL 示例中的元數(shù)據(jù)。此示例的另一個(gè)優(yōu)點(diǎn)是輸出限制為單個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件,,因?yàn)?/span>列出的路徑包含數(shù)據(jù)庫(kù)名稱orcl和文件類型datafile,。因此,,對(duì)于asmcmd中顯示的目錄,需要使用WHERE子句設(shè)置SQL
過(guò)濾條件才能給出相同結(jié)果,。
注:在Oracle Enterprise Manager Database Control 中,,只需在各個(gè)ASM Web 頁(yè)中瀏覽就能查看大多數(shù)ASM 元數(shù)據(jù)。
ASM 快速鏡像重新同步可以顯著減少重新同步臨時(shí)故障磁盤所需的時(shí)間,。如果某個(gè)磁盤因臨時(shí)故障而脫機(jī),,ASM 將跟蹤在中斷期間發(fā)生修改的區(qū)。臨時(shí)故障被修復(fù)后,,ASM 可以快速地僅重新同步在中斷期間受影響的ASM 磁盤區(qū),。
此功能假設(shè)受影響的ASM 磁盤的內(nèi)容未被破壞或修改。
某個(gè)ASM 磁盤路徑出現(xiàn)故障時(shí),,如果您已設(shè)置了相應(yīng)磁盤組的DISK_REPAIR_TIME屬性,,則ASM 磁盤會(huì)脫機(jī),但不會(huì)被刪除,。此屬性的設(shè)置確定了ASM 可容忍的磁盤中斷持續(xù)時(shí)間,;如果中斷在此時(shí)間范圍內(nèi),則修復(fù)完成后仍可重新同步,。注:跟蹤機(jī)制對(duì)每個(gè)修改的分配單元使用1
位,。這樣可確保跟蹤機(jī)制非常高效。
· 使用SQL*plus,、asmcmd和Oracle Enterprise Manager 管理ASM 實(shí)例
· 創(chuàng)建和刪除ASM 磁盤組
· 指定ASM 兼容性屬性
· 擴(kuò)展ASM 磁盤組
· 比較檢索ASM 元數(shù)據(jù)的方