全面學習和應用ORACLE ASM特性

wuyuanyong發表於2010-06-24

ORACLE10g版本推出時,為了簡化RAC中儲存端的配置,ORACLE新推出了ASM(Automatic Storage Management --自動儲存)特性,該特性擁有易管理,高自動性,並且,擁有號稱超越裸裝置IO效能。升級到11gR2版本後,又被正名為傳說中的ASMFS,這也說明了ORACLE對這一特性的重視程度。

  因此從今天起,三思決定花個三二分鐘時間,跟大學一塊學學關於ASM的那點兒事兒,另注,本文操作的資料版本為10gR2

1About ASM 例項

  ASM 例項與 ORACLE 例項差不多,都是 sga 和一堆後臺程式組成,從功能上來看,區別在於oracle例項管理的是資料庫,而asm例項只是管理asm盤陣。

  透過Oracle EMDBCA都可以對asm進行一些配置,不過三思覺著管理asm括弧例項的最佳工具仍是sql*plus,在進入sql*plus前也需要設定ORACLE_SID的環境變數,該環境變數通常是+ASM[node#]

  ASM 例項沒有資料字典之類的東東儲存使用者系統,因此最常見的連線認證方式就是作業系統認證as sysdba進入(OSDBA組的使用者)。如果是透過遠端連線的話( 比如遠端透過tnsnamesOEM管理),也可以使用金鑰檔案進行驗證,該金鑰檔案直資料庫的金鑰檔案在命名規則及使用規則上完全一模一樣。如果使用dbca建庫的話,預設就會建立asm的金鑰檔案,當然也可以自行手動透過orapwd命令進行建立,與資料庫的金鑰檔案有所不同的是,asm 的金鑰檔案對應的使用者只有一個----sys

提示:什麼是 ASMLib

ASM support Library,是由ORACLE提供的簡化管理作業系統管理的API

1.1、啟動 / 關閉 ASM 例項

  ASM 例項與DB例項高度相似,啟動和停止例項的命令也一模一樣,就啟動來說,也同樣擁有 NOMOUNT/MOUNT/OPEN /FORCE 幾種狀態。

· NOMOUNT :僅啟動例項;

· MOUNT OPEN:啟動例項並載入磁碟,注意載入的是磁碟組(如果當前未建立或配置任何磁碟組,則提示敬告資訊)OPEN選項對於ASM例項無意義,等同於MOUNT

· FORCE :相當於先執行shutdown abort,然後再startup

  演示如下(注意別忘了先設定作業系統環境變數ORACLE_SID),先啟動到NOMOUNT

[oracle@jssdbn1 ~]$ export ORACLE_SID=+ASM1

[oracle@jssdbn1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Wed May 19 08:34:22 2010

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

Connected to an idle instance.

SQL> startup nomount

ASM instance started

Total System Global Area 130023424 bytes

Fixed Size 2082208 bytes

Variable Size 102775392 bytes

ASM Cache 25165824 bytes

SQL> select name,state from v$asm_diskgroup;

NAME STATE

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

ASMDISK1 DISMOUNTED

ASMDISK2 DISMOUNTED

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS

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

+ASM1 STARTED

  載入磁碟組,注意,不是alter database喲:

SQL> alter diskgroup all mount;

Diskgroup altered.

SQL> select name,state from v$asm_diskgroup;

NAME STATE

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

ASMDISK1 MOUNTED

ASMDISK2 MOUNTED

  這樣,該ASM就可以提供儲存服務了。

  提示一點,在10g版本中,ASM是依賴於CSS守護程式的,因此在啟動ASM 例項前要確保css守護程式已經啟動 CSS(Cluster Synchronization Services) 守護程式 用來維持ASM 及客戶端資料庫例項間的一致性 同步 ,如果是透過dbca建庫的話,那麼CSS守護程式預設即會啟動(跟隨系統reboot)

  檢查css守護程式是否啟動非常 簡單 ,直接使用crsctl check cssd即可,如果啟動的話會收到"CSS appears healthy"的返回訊息,例如:

[oracle@jssdbn1 ~]$ crsctl check cssd

CSS appears healthy

  關閉ASM例項,簡單了,NORMAL/IMMEDIATE/TRANSACTIONAL/ABORT幾個選項的定義與關閉普通資料庫例項完全一模一樣!例如:

SQL> shutdown immediate

ASM diskgroups dismounted

ASM instance shutdown

1.2、關於ASM例項的初始化引數

  ASM 例項的初始化引數形式上與資料庫的初始化引數相同,也分spfilepfile,操作方式也完全相同,只不過具體的引數及引數值略有差異,大多數資料庫的初始化引數在這裡也能見到,並且某些引數意義都完全相同,同樣也有一些引數雖然見到了,不過並不需要設定,這個可以理解,畢竟asm只有例項,相對比資料庫的初始化引數要簡單的多了,還有一些引數則是資料庫初始化引數中沒有的。比如ASM開頭的那幾個初始化引數,俺爭取把差異的部分都列出來寫明瞭。

  ASM 例項在記憶體佔用這塊還是比較輕量級的,基本上有個100m空間就很充足了 ,因此記憶體這塊相關引數就不說了,下面說說幾個ASM例項特別需要的引數。

  首先,初始化引數中的INSTANCE_TYPE,該引數必須被設定為ASM,如:

INSTANCE_TYPE=ASM

  標識要啟動的例項是ASM,而不是資料庫例項(資料庫例項對應型別為RDBMS)

  與ASM相關的初始化引數有三個:

· ASM_POWER_LIMIT :指定磁碟rebalance的程度,有0-11個級別,預設值為1,指定的級別越高,則rebalance的操作就會越快被完成(當然這也意味著這個時間段內將佔用更多的資源),指定級別較低的話,雖然rebalance操作會耗時更久,但對當前系統的IO及負載影響會更少,這中間的度需要DBA根據實際情況衡量。另外,這個引數指定的只是一個預設值,在操作過程中,即可以隨便動態修改,也可以在語句級命令列時指定power,覆蓋該預設值。

提示:關於rebalance操作,如果你沒接觸過,還不明白是什麼意思,沒關係,繼續往下看!

· ASM_DISKSTRING :用最簡單的話說,就是設定ASM啟動時檢查的磁碟,該選項可以同時指定多個值,並且支援萬用字元。比如說,只檢查/dev/dsk/下的裝置,可以設定該引數如下:/dev/dsk/*,預設情況下該引數為空,為空的話,表示ASM將查詢系統中所有ASM擁有讀寫許可權的裝置。

· ASM_DISKGROUPS :指定例項啟動或alter diskgroup all mount語句時要載入的磁碟組,如果為空的話,那麼實際就僅啟動到NOMOUNT狀態了。如果是使用SPFILE的話,該引數一般不需要手動修改,ASM能夠自動更新該初始化引數中的值。

  修改 ASM 例項初始化引數檔案的命令規則與資料庫初始化引數完全相同 ,比如說:

SQL> alter system set asm_power_limit=5 sid='*';

System altered. 

2、管理ASM磁碟

  本節簡單給大家描述下關於ASM磁碟組的管理操作,關於ASM磁碟組的管理其實非常簡單(也非常少),主要是由於10gR2中這個東西透明 度不夠 ,ORACLE提供的功能有限,因此我們能夠做的操作就更加有限了,因此決定隨便寫個幾百W字大家湊和著看看就得了,不深入了。

  OK ,下面步入正題。

  ASM 磁碟組的管理方式呢也比較多,比如像DBCA、EM、SQL*PLUS等均可操作(不同工具 易用性不同,不過 功能也有差異),除此之外ORACLE還專門提供了ASMCMD命令列方式,像操作檔案系統一樣來操作磁碟組。本節操作主要使用sql*plus命令列工具,關於asmcmd命令列中的命令,感興趣的朋友可以期待本文外傳~~~

  在管理ASM之前不得不提與ASM相關的動態效能檢視,這些檢視將對我們後面的操作起到重要作用,查詢資料庫中ASM相關檢視可以透過下列SQL語句:

    SQL> select * from dict where table_name like 'V$ASM_%';

    TABLE_NAME COMMENTS

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

    V$ASM_ALIAS Synonym for V_$ASM_ALIAS

    V$ASM_CLIENT Synonym for V_$ASM_CLIENT

    V$ASM_DISK Synonym for V_$ASM_DISK

    V$ASM_DISKGROUP Synonym for V_$ASM_DISKGROUP

    V$ASM_DISKGROUP_STAT Synonym for V_$ASM_DISKGROUP_STAT

    V$ASM_DISK_STAT Synonym for V_$ASM_DISK_STAT

    V$ASM_FILE Synonym for V_$ASM_FILE

    V$ASM_OPERATION Synonym for V_$ASM_OPERATION

    V$ASM_TEMPLATE Synonym for V_$ASM_TEMPLATE

    9 rows selected

  這其中,V$ASM_ALIAS檢視中記錄檔案別名資訊,V$ASM_CLIENT返回當前連線的客戶端例項資訊,V$ASM_DISK*相關檢視中記錄的是ASM管理的磁碟及磁碟組資訊,V$ASM_OPERATION記錄當前磁碟的操作資訊,例如:

    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

    SQL> select header_status,name,failgroup,path,total_mb,free_mb from v$asm_disk where GROUP_NUMBER in(1,2);

    HEADER_STATU NAME FAILGROUP PATH TOTAL_MB FREE_MB

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

    MEMBER ASMDISK2_0000 ASMDISK2_0000 /dev/raw/raw5 8189 7309

    MEMBER ASMDISK2_0001 ASMDISK2_0001 /dev/raw/raw6 8189 7312

    MEMBER ASMDISK1_0000 ASMDISK1_0000 /dev/raw/raw1 10236 9333

    MEMBER ASMDISK1_0001 ASMDISK1_0001 /dev/raw/raw2 10236 9334

  在真正開始操作ASM之前呢,我覺著還是有必要先描述一下關於ASM磁碟總的原則供參考。

新增或刪除磁碟的影響

  當發生新增/刪除磁碟組中磁碟的操作時,ASM能夠自動平衡。對於普通的刪除操作(無force選項),被刪除的磁碟在該上資料被有效處理前並不會立刻釋放,同樣,新增磁碟時,在重分配工作完成前,該盤也不會承擔I/O負載的工作。

ASM 如何處理磁碟故障

  ASM 中的磁碟組在三思看來可以分成兩類:普通磁碟組和failure磁碟組,後者又與ASM的冗餘方式有所關聯。普通磁碟組就是標準的儲存單元,ASM可以向其可訪問的磁碟組中讀寫資料,failure磁碟組是為了提高資料的高可用性。ASM中的磁碟冗餘策略非常簡單,概要成三類:外部冗餘、標準冗餘和高度冗餘,其中前者與failure磁碟組無關,如果設定了後者,那麼該磁碟組就必須擁有failure磁碟組。聽起來像在說failure磁碟組是普通磁碟組的子集,其實差不多可以這麼理解,外部冗餘的話磁碟屬於磁碟組,內部冗餘的話,磁碟屬於磁碟組的同時,還屬於某個(並且只能是一個)failure磁碟組。

  比如說對於標準冗餘(Normal Redundancy),ASM要求該磁碟組至少要擁有兩個failure磁碟組,即提供雙倍映象保護,對於同一份資料(ASM中映象單位不是磁碟,也不是塊,而是一種AU的單位,該單位大小預設是1M)將有主從兩份映象,並且ASM透過演算法來自動確保主、從映象不會存在於同一份failure磁碟組,這樣就保障了就算整個failure磁碟組都損壞,資料也不會丟失。至於高度冗餘(High Redundancy)就更安全了,它至少需要三個failure磁碟組,也就是一份AU有一主多從的映象,理論上將更加安全。

  如果磁碟發生損壞,那麼損壞的磁碟預設自動offlice並被drop掉,不過該磁碟所在的磁碟組仍將保持MOUNT狀態,如果該盤有映象的話,那麼應用不會有影響,映象盤將自動實現接管--只要不是所有failure磁碟組都損壞掉,否則的話,該磁碟組將自動DISMOUNT。舉個例子吧,某標準冗餘的failure組有6個盤(對應6個裸裝置),假如說此時壞了一塊盤,沒關係,操作繼續,壞了那塊會被自動dropped,剩下的5塊盤仍然能夠負擔起正常的讀寫操作。

ASM 擴充套件性

  • 最多支援63個磁碟組;
  • 最多支援10000個磁碟;
  • 最大支援4pb/磁碟;
  • 最大支援40 exabyte/ASM儲存;
  • 最大支援1百W個檔案/磁碟組;
  • 外部冗餘時單個檔案最大35tb,標準冗餘時單個檔案最大5.8tb,高冗餘度時單個檔案最大3.9tb

2.1 新增磁碟組

  DBCA 中建立磁碟組想必大家都很熟悉了,對,不過是點兩下滑鼠,SQL*PLUS下操作也很簡單,主要是使用CREATE DISKGROUP語句,該語句的語法如下:

    CREATE DISKGROUP diskgroup_name

    [ { HIGH | NORMAL | EXTERNAL } REDUNDANCY ]

    [ FAILGROUP failgroup_name ]

    DISK [ NAME disk_name ] [ SIZE size_clause ] [ FORCE | NOFORCE ] ...;

  語法很簡單,大多數都是可選項:

  • 首先要指定的就是磁碟組名稱(diskgroup_name);
  • 指定冗餘度,有三個選擇:HIGH(高度冗餘>三路)、NORMAL(標準冗餘--雙路)和EXTERNAL(外部儲存冗餘);
  • 選擇是否指定FAILGROUP(如果選擇非external則必須指定);
  • 指定該磁碟組中的成員(對應的LUN),在指定成員時一般ASM能夠自動檢測出磁碟的容量,不過如果DBA基於某些方面的考慮,希望限制ASM使用的空間的話,也可以在指定成員過程中,順便指定大小(只要指定的大小不超出磁碟實際容量),在新增成員時,ASM也會自動檢查磁碟頭以確定該磁碟是否被加入到其它的磁碟組中,當發現該盤已加入其它磁碟組的話,你可以透過FORCE選項來強制修改該盤所屬磁碟組。

2.2 修改磁碟組

  事物總是在變化中前進,這是事物的一般規律,磁碟組也不例外,在其建立完之後,保不齊什麼時候可能就需要加或刪個磁碟,或者修改某個盤的大小(如果還有機會改的話)。這時候你就需要ALTER DISKGROUP語句了,ALTER DISKGROUP語句的語法太簡單(靈活)了,因此這裡三思就不列了,後面透過幾個實際應用的示例來說明其語法規則。

  ASM 最好的一點就是,不管你是加還是刪磁碟組中的磁碟,它都能自動進行平衡,確保該磁碟組中每塊盤儲存的資料量平均,以實現最最佳化的IO效能,並且這一過程不會對資料造成影響

2.2.1 新增磁碟

  比如,新增一個磁碟到磁碟組asmdisk1,語句如下:

    SQL> Alter diskgroup asmdisk2 add disk '/dev/raw/raw7' name asmdisk2_0002;

    Diskgroup altered.

  事實上,alter diskgroup新增磁碟時,也可以使用萬用字元,比如新增所有raw_a0開頭的裝置,可執行語句如下:

    Alter diskgroup asmdisk1 add disk '/dev/raw/raw_a0*' ;

  再比如新增raw_a5,raw_a6,raw_a7,可以執行語句如下:

    Alter diskgroup asmdisk1 add disk '/dev/raw/raw_a[567]' ;

  總之非常靈活,大家可以根據實際情況自行嘗試以簡化操作。這也屬於最佳化著幹活的範疇嘛。

  注意喲,語句雖然執行了,不過ASM需要自動平均磁碟組中的資料,這必然需要消耗一定的時間(視資料量多少),預設情況下ALTER DISKGROUP語句並不會等待所有工作全部完成才返回控制權,

  要監控後臺進行的操作,可以透過V$ASM_OPERATION檢視查詢。

  如果希望ALTER DISKGROUP語句完成所有工作才返回的話,可以在執行時附加REBALANCE WAIT子句,這樣該語句就會等待自動平衡的操作,直接所有操作完成才返回結果,當然在等待期間,如果你改主意了不願意繼續等待,CTRL+C中斷即可獲得控制權,而平衡的操作不受影響,會在後臺繼續進行。

2.2.2 刪除磁碟

  雖然刪除磁碟也涉及到資料庫的重新平衡,因此刪除跟新增還有點兒不同,就是當刪除磁碟時,當ASM發現怎麼平衡都平衡不過來時(比如剩下的磁碟空間不足以存放所有資料時),刪除操作也會失敗。這種情況要麼先刪資料,要麼取消刪除的操作。

  簡單舉個例子,比如說刪除asmdisk2磁碟組中的asmdisk2_0001磁碟,操作如下:

SQL> alter diskgroup asmdisk2 drop disk asmdisk2_0001;
    Diskgroup altered.

  不知道算不算是優點,由於前面提到的ASM自動平衡的特性,上述語句返回後並不代表磁碟已經被刪除,此時後臺可能由於正忙碌地執行著IO重平衡的工作,因此如果在這個當口,DBA忽然意識到操作失誤,其實磁碟並不需要被刪除,那也可以馬上透過alter diskgroup dgname undrop disks語句來取消刪除的操作,例如:

    SQL> alter diskgroup asmdisk2 undrop disks;

    Diskgroup altered.

  只要刪除操作還沒有真正完成,任何就會被取消,否則的話,上述語句也挽回不了什麼了,如果希望挽回,那DBA只能再透過ADD語句將該磁碟重新加入到磁碟組了。

2.2.3 修改磁碟大小

  ASM 中的磁碟也可以被RESIZE--擴大或縮小,不過需要注意的是,擴大的話,要確保該磁碟對應的裸卷確實有足夠的空間去擴大(比如該卷原有20g,建立時僅用了10g,則最大可擴大到20g-塊頭佔用的nM空間);縮小的話,要確保縮小後剩餘的空間仍以放的下當前磁碟上已存在的資料,不然操作就會報錯。

  具體的操作是很簡單的,例如將磁碟組asmdisk2的磁碟asmdisk2_0000的磁碟空間調整為1000m(原為8189m),操作如下:

SQL> alter diskgroup asmdisk2 resize disk asmdisk2_0000 size 1000m
Diskgroup altered.

2.2.4 手動平衡磁碟組

  一般情況下ASM都會自動對其下的磁碟組進行平衡,不過ORACLE也提供了手動平衡磁碟組的方式,透過alter diskgroup ... power 語句。前面提到過磁碟組的平衡度有0到11多個級別,預設是按照ASM_POWER_LIMIT初始化引數中設定的值,手動平衡的話,設定的平衡度可以與初始化引數中並不相同,例如,設定磁碟組平衡度為5,語句如下:

SQL> alter diskgroup asmdisk2 rebalance power 5
Diskgroup altered.  

  手動平衡磁碟組可能涉及大量的工作,該操作可能費時較久,因此DBA在執行該語句時,一定要注意該操作對IO效能的影響。

  另外再次強調,上述語句將很快返回diskgroup altered的提示,但這並不表示操作真正完成,它只是反饋語句提交而已,檢視磁碟後臺的操作,可以透過v$asm_operator檢視,或者在語句執行時增加wait子句,這樣ASM將會等到操作真正完成時,才返回提示資訊。

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的話)

本文出自:http://space.itpub.net/?uid-7607759-action-viewspace-itemid-664212

[@more@]

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

相關文章