1. 程式人生 > >規劃ASM DISK GROUP、檢視asm 磁碟當前狀態、mount or dismount 磁碟組、檢查磁碟組 metadata 的內部一致性

規劃ASM DISK GROUP、檢視asm 磁碟當前狀態、mount or dismount 磁碟組、檢查磁碟組 metadata 的內部一致性

規劃ASM DISK GROUP:

1. 每個磁碟組裡的磁碟應該大小、效能、新舊等一致,不能有太大差距

2. 對database files 和 fast recovery area 分別建立不同的diskgroup。 一般來說我們也可以把備份檔案存放到FRA裡。 
所以Oracle 建議我們不要建立太多的diskgroup,2組就夠了,一組DATA,一組FRA.

ORACLE ASM 在磁碟組,磁碟和檔案的個數限制如下:
(1)最多63個disk groups
(2)最多10000個ASM disks
(3)每個disk group裡最多1百萬個檔案。

非Exadata 儲存的情況下,ASM 儲存大小限制: (若是exadata,則容量*2倍)
(1)支援的每個ASM disk 最大容量是2 TB。
(2)整個ASM儲存系統最大支援的空間是20 PB。

檢視當前asm磁碟狀態資訊 (grid使用者執行)

1. --檢視有多少asm磁碟
node1-> kfod disk=all 
2. --檢視asm磁碟組
node1-> kfod op=groups

3. 檢視磁碟與磁碟組的對應關係
node1-> kfod ds=true di=all

mount or dismount 磁碟組

注意:
當我們dismount 一個disk group的時候,該group上有檔案正在開啟,我們的的diskgroup 操作就會失敗,除非我們指定FORCE選項,強制dismount。

手工的進行這些操作,語法如下:

ALTER DISKGROUP...MOUNT 
ALTER DISKGROUP...DISMOUNT

若部分磁碟不可用,怎麼辦?

當disk 出現故障時,會被標記為offline,對於offline 的disk,是不能被ASM 訪問的。當disk 變成offline 的時候,ASM會計算這個時間,當disk 在diskgroup的DISK_REPAIR_TIME引數指定的時間內沒有被修復,那麼該disk 就會永久的從diskgroup中drop掉。

若disk group的冗餘級別是Normal 或者是high 的時候,如果diskgroup 在我們掛載這個diskgroup的時候,如果有部分disk 不可用,那麼就必須使用MOUNT FORCE 來掛載。因此,當我們的disk 出現問題,我們還沒有修復,這時候我們想以reduced redundancy 的方式臨時的掛載diskgroup,那麼就可以使用mount force。

SQL> alter diskgroup XXXX dismount force;

注意:
要想MOUNT FORCE 能掛載成功,也必須保證disk group中所有的檔案至少有一份extents。

檢查磁碟組 metadata 的內部一致性

背景:
每個diskgroup、disk都有自己的metadata。
在diskgroup處於mount狀態下,可以檢查diskgroup 中某個特定的檔案,特定的disk 或者所有disk,或者指定的failure。

Check 子句會執行如下操作:
(1)驗證disk的一致性。
(2)交叉效驗所有檔案的extent maps 和allocation tables 是否一致。
(3)檢查alias metadata directory和file directory 關聯是否正確。
(4) 驗證alias directory tree 是否正確link。
(5)檢查Oracle ASM metadata directories是否有不能讀取的allocated blocks

命令:
SQL> ALTER DISKGROUP FRA CHECK ALL ( REPAIR -- 可以指定是否修復,預設不修復 );