全面學習和應用ORACLE ASM特性--(4)管理asm磁碟組中目錄和檔案

kingsql發表於2015-08-05

2.3 mount/unmount 磁碟組

  只有被mount的磁碟組才能被資料庫使用並執行add/drop等磁碟操作,ASM中的磁碟組預設會在ASM例項啟動時自動載入,當然也可以手動透過命令列語句mount/unmount磁碟組。

  查詢ASM例項中建立的磁碟組可以透過V$ASM_DISKGROUP檢視檢視,例如:

    SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;

    GROUP_NUMBER NAME                           STATE         TOTAL_MB    FREE_MB

    ------------ ------------------------------ ----------- ---------- ----------

               1 ASMDISK1                       MOUNTED          20472      18667

               2 ASMDISK2                       MOUNTED          16378      14621

  當前兩個磁碟組均為MOUNT狀態,要將其置為UNMOUNT,執行語句如下,例如將ASMDISK2磁碟組UNMOUNT:

    SQL> alter diskgroup asmdisk2 dismount;

    Diskgroup altered.

    SQL> select group_number,name,state from v$asm_diskgroup;

    GROUP_NUMBER NAME                           STATE  

    ------------ ------------------------------ -----------

               1 ASMDISK1                       MOUNTED  

               0 ASMDISK2                       DISMOUNTED 

  注意喲,UNMOUNT磁碟組的話務必慎重操作,要確保UNMOUNT的磁碟組中儲存的檔案對應的資料庫當前未啟動,而且該操作也會直接導致資料庫SHUTDOWN。

  再將其置回MOUNT狀態,操作如下:

    SQL> alter diskgroup asmdisk2 mount;

    Diskgroup altered.

    SQL> select group_number,name,state from v$asm_diskgroup;

    GROUP_NUMBER NAME                           STATE

    ------------ ------------------------------ -----------

               1 ASMDISK1                       MOUNTED

               2 ASMDISK2                       MOUNTED

2.4  管理目錄及檔案

  ASM 磁碟組中檔案和目錄的管理自動化水平相當高,應該說基本上完全不需要DBA參與,它自己就能玩的很好,當然,如果你非要動動手,那也是可以的。

2.4.1  管理磁碟組目錄

  建立新目錄:

    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.

  實際上,ASM中目錄和檔案的管理,也可以透過ASMCMD命令列方式進行,該命令列進入之後,是一個類似檔案系統的管理介面,ORACLE提供了一些最基礎的,如cd、ls、mkdir、rm等等幾個有限的操作命令,如果對這部分內容感興趣,可以參考官方文件中的介紹,或者搭個環境實踐操作,可用命令很少且簡單,熟悉Linux/Unix的話極易上手。

2.4.2  管理別名(Alias Names)

  別名就是外號,比如說當系統自動產生的名稱太過複雜不怎麼好記,DBA可以透過別名,為它建立一個簡單化的名稱,而又不會對其現有名稱造成任何影響。ASM中建立別名是透過alter diskgroup的alias子句實現,支援增加/修改/刪除等多項操作。V$ASM_ALIAS檢視中可以查詢到當前例項中建立的別名。

  例如,增加別名:

    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.

  不管是新增/刪除或是修改別名,對原有檔案路徑均不會有影響。

2.4.3  刪除磁碟組中檔案/別名

  破壞總是最簡單的,當然我不是說刪除就一定是破壞,不過從嚴謹的角度講,刪除這樣的操作要少做(沒說不做),做前得再三確認,三思而行並留有備份,即使做錯了,還有恢復的可能。

  當然啦,ASM中遇到刪除檔案這樣需求的機率很低,但也不是完全沒有,比如說執行了資料庫不完全恢復操作後,某部分資料檔案就不再需要,而恢復操作不會處理這部分檔案,為合理利用空間,就會需要DBA手動刪除這類檔案,真遇到這樣的需求,表急,語法也是黑簡單的吶,例如,刪除磁碟組2上的別名temp01:

    SQL> alter diskgroup asmdisk2 drop file '+ASMDISK2/repdb/datafile/temp01.dbf';

    Diskgroup altered.

  沒錯,即能刪檔案也能刪別名,只不過如果刪除的是檔案的話,其關聯的別名(Alias)也會被自動刪除。

2.4.4  刪除磁碟組

  太簡單了,語法:drop diskgroup gpname即可!不演示了!需要注意一點,如果刪除的diskgroup非空的話,直接執行上述語句會報錯,這時候可以透過附加including contents子句,來自動刪除該磁碟組中包含的檔案。刪除磁碟組的操作會自動修改spfile中ASM_DISKGROUPS初始化引數的值(如果使用了SPFILE的話)

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28389881/viewspace-1762213/,如需轉載,請註明出處,否則將追究法律責任。

相關文章