ASM總結---未整理

還不算暈發表於2013-10-12
課程目標
學完本課後,應能完成以下工作:
• 識別自動儲存管理(ASM) 的功能
• 為ASM 和資料庫例項設定初始化引數檔案
• 使用ASM 檔名執行SQL 命令
• 啟動和關閉ASM 例項
• 管理ASM 磁碟組
• 使用RMAN 將資料庫移植到ASM
自動儲存管理:概述
• 可移植的高效能叢集檔案系統
• 管理Oracle DB 檔案
• 資料分佈到各個磁碟中以平衡負載
• 跨磁碟的整合映象
• 解決許多儲存管理問題
1.自動儲存管理:概述
  Automatic Storage Management (ASM) 提供了檔案系統與卷管理器的縱向整合,這是一項
  專門為Oracle 資料庫檔案構建的技術。使用ASM 可以管理單個SMP 計算機,也可管理
  叢集的多個節點以便為Oracle Real Application Clusters (RAC) 提供支援。
  ASM 將I/O 負載分佈在所有可用的資源中來優化效能,不必手動進行I/O 優化。ASM
  有助於DBA 管理動態資料庫環境,使DBA 不必關閉資料庫,就可以增加資料庫的大小
  來調節儲存分配。
  ASM 通過維護資料的冗餘副本來提供容錯能力,也可以基於供應商提供的可靠儲存機制
  來構建ASM。通過為各類資料選擇所期望的可靠性和效能特性來進行資料管理,而不是
  人工處理每個檔案。
  ASM 功能可以實現人工儲存自動化,提高DBA 管理大型資料庫及更多資料庫的能力,
  從而可以節省DBA 的時間並提高效率
 
  ASM 將檔案分為多個分配單元(AU),並在所有磁碟間平均分配每個檔案的分配單元。
  ASM 使用索引技術跟蹤每個分配單元的位置。儲存容量發生變化時,ASM 不會重新條
  帶化所有資料,而是根據新增或刪除的儲存量,按比例移動一定數量的資料,以重新
  均勻分配檔案,保持磁碟間的負載平衡。此操作可在資料庫處於活動狀態時執行。
  可以提高或降低重新平衡操作的速度,以減小對I/O 子系統的影響。ASM 還提供了映象
  保護,因此您不必再購買第三方的邏輯卷管理器。ASM 的一個獨特優勢在於其映象基於
  檔案而不是基於卷。因此,同一磁碟組中可以包含受映象保護的檔案和不受映象保護的
  檔案的組合。
  ASM 支援資料檔案、日誌檔案、控制檔案、歸檔日誌、RMAN 備份集以及其它Oracle
  資料庫檔案型別。ASM 支援Oracle Real Application Clusters,而且無需使用叢集邏輯卷
  管理器或叢集檔案系統。

  ASM 檔案的資料庫備份必須通過RMAN 來完成。
注:ASM 不管理二進位制檔案、預警日誌、跟蹤檔案或口令檔案。

2.ASM 常規體系結構
  要使用ASM,在啟動資料庫例項之前,必須啟動一個名為ASM 例項的特殊例項。ASM
  例項不會裝載資料庫,而是管理使ASM 檔案可用於普通資料庫例項所必需的那些後設資料。
  ASM 例項和資料庫例項都能訪問一些公共的磁碟集,這些公共磁碟集稱為磁碟組。資料
  庫例項直接訪問ASM 檔案的內容,它們與ASM 例項通訊的目的只是為了獲取這些檔案
  的佈局資訊。
  ASM 例項包含兩個新的後臺程式。一個程式負責協調磁碟組的重新平衡活動,稱為RBAL。
  第二個程式負責執行實際的重新平衡分配單元移動操作。在同一時刻可以存在許多此類進
  程,它們分別名為ARB0、ARB1,以此類推。ASM 例項還有一些與資料庫例項相同的後
  臺程式,其中包括SMON、PMON、LGWR、DBWR 和CKPT。
 
  每個使用ASM 的資料庫例項都有兩個新的後臺程式,ASMB 和RBAL。RBAL 負責全域性打
  開磁碟組中的磁碟。資料庫例項啟動時,ASMB 作為前臺程式連線到ASM 例項。資料庫
  例項和ASM 例項之間的通訊就是通過這種橋接來實現的。此類通訊包括物理檔案更改,
  例如資料檔案的建立和刪除。通過這種連線可以定期交換訊息,以更新統計資訊並確認
  這兩個例項都在正常執行。
 
3.ASM 例項任務
  要使用ASM 例項,必須能夠完成以下任務:
  • 建立ASM 例項
  • 設定初始化引數
  • 啟動ASM 例項
  • 管理ASM 例項
  • 關閉ASM 例項 
  建立ASM 例項
  執行Database Configuration Assistant (DBCA),可建立ASM 例項。在第一個螢幕上,選擇
  用於“Configure Automatic Storage Management(配置自動儲存管理)”的選項,然後按
  照步驟說明操作。此時將為您建立並啟動ASM 例項。然後,系統將指導您完成為例項定
  義磁碟組的過程。
  在ASM 例項建立過程中,DBCA 會自動建立一個條目並將其新增到oratab 檔案中。
  此條目僅用於搜尋。在使用服務機制的Windows 平臺上,DBCA 會自動建立Oracle
  Service 以及相應的登錄檔項,以便於搜尋該ASM 例項。
  配置ASM 例項後,DBCA 會建立ASM 例項引數檔案和ASM 例項口令檔案。
  如果您是第一次建立啟用ASM 的資料庫,則DBCA 會確定主機上是否已存在ASM 例項。
  如果ASM 例項搜尋返回一個空列表,則DBCA 會建立一個新的ASM 例項。  
 
  ASM 例項初始化引數
  INSTANCE_TYPE = ASM
  DB_UNIQUE_NAME = +ASM
  ASM_POWER_LIMIT = 1
  ASM_DISKSTRING = '/dev/rdsk/*s2', '/dev/rdsk/c1*'
  ASM_DISKGROUPS = dgroupA, dgroupB
  LARGE_POOL_SIZE = 8MB
 
  ASM 例項初始化引數
  • INSTANCE_TYPE:對於ASM 例項,該引數應設定為ASM。
  • DB_UNIQUE_NAME:該引數指定此ASM 例項為其管理磁碟組的服務提供程式的
  名稱。預設值為+ASM。僅當在同一節點上執行多個ASM 例項時才須修改預設值。
  • ASM_POWER_LIMIT:該引數控制重新平衡操作的速度。值的範圍在1 到11 之間,
  11 表示速度最快。如果省略,該值將預設為1。從屬程式的數量可以從手動重新平
  衡命令(POWER) 中指定的並行級別派生,或者通過ASM_POWER_LIMIT 引數派生。
  • ASM_DISKSTRING:該引數是一個與作業系統相關的值,由ASM 用來限制搜尋中
  涉及的磁碟集。
  • ASM_DISK_GROUPS:該引數列出ASM 例項啟動時或者使用ALTER DISKGROUP
  ALL MOUNT 命令時裝載的磁碟組的名稱。
  INSTANCE_TYPE 引數是唯一一個必須由您定義的引數。其它所有ASM 引數都有適合於
  大多數環境的預設值。
  注:如果ASM 環境是使用命令列而不是通過EM 建立的,則必須先建立磁碟組然後才能
  裝載。 
 
4.資料庫例項引數更改
  INSTANCE_TYPE = RDBMS
  LOG_ARCHIVE_FORMAT
  DB_BLOCK_SIZE
  DB_CREATE_ONLINE_LOG_DEST_n
  DB_CREATE_FILE_DEST
  DB_RECOVERY_FILE_DEST
  CONTROL_FILES
  LOG_ARCHIVE_DEST_n
  LOG_ARCHIVE_DEST
  STANDBY_ARCHIVE_DEST
  LARGE_POOL_SIZE = 8MB
  INSTANCE_TYPE 預設設定為RDBMS,指定該例項是一個RDBMS 例項。
  如果LOG_ARCHIVE_DEST 設定為不完整的ASM 檔名(例如+dGroupA),則將忽略
  LOG_ARCHIVE_FORMAT。如果LOG_ARCHIVE_DEST 設定為ASM 目錄(例如,
  +dGroupA/myarchlogdir/),則將使用LOG_ARCHIVE_FORMAT,並且檔案是非
  OMF 檔案。Oracle 資料庫會自動為歸檔日誌建立唯一的檔名。
  以下引數允許將ASM 檔名的多檔案建立上下文格式作為目標:
  • DB_CREATE_ONLINE_LOG_DEST_n
  • DB_CREATE_FILE_DEST
  • DB_RECOVERY_FILE_DEST
  • CONTROL_FILES
  • LOG_ARCHIVE_DEST_n
  • LOG_ARCHIVE_DEST
  • STANDBY_ARCHIVE_DEST
  注:由於ASM 檔案的分配單元對映是從LARGE_POOL 分配的,因此必須將
  LARGE_POOL_SIZE 初始化引數設定為至少8 MB,越大越好。  
 
5.啟動ASM 例項
  $ export ORACLE_SID='+ASM'
  $ sqlplus /nolog
  SQL> CONNECT / AS sysdba
  Connected to an idle instance.
  SQL> STARTUP;
 
  ASM 例項的啟動類似於資料庫例項,但初始化引數檔案中包含一個
  INSTANCE_TYPE=ASM 這樣的條目。將該引數值設定為ASM 時,它會通知Oracle 可執行
  檔案要啟動的是ASM 例項而不是資料庫例項。同時,ORACLE_SID 變數必須設定為該
  ASM 例項的名稱。ASM 例項啟動時,在裝載階段會嘗試裝載ASM_DISKGROUPS 初始化
  引數指定的磁碟組,而不是像非ASM 例項那樣裝載資料庫。
  對於ASM 例項和資料庫例項,其它STARTUP 子句的解釋大致相同。OPEN 對於ASM
  例項無效。NOMOUNT 將啟動ASM 例項而不裝載任何磁碟組。
   
 
6.訪問ASM 例項
  ASM 例項沒有資料字典,因此連線此類例項的唯一方法是使用作業系統驗證機制,即
  SYSDBA 或SYSOPER。要進行遠端連線,需要使用口令檔案。通常,SYSDBA 許可權是通
  過使用作業系統組來授予的。在UNIX 上,通常是dba 組。預設情況下,dba 組的成員
  對該節點上的所有例項(包括ASM 例項)擁有SYSDBA 許可權。使用SYSDBA 許可權連線到
  ASM 例項的使用者對系統中的所有磁碟組擁有管理許可權。ASM 例項中支援SYSOPER 許可權,
  該許可權將允許執行的SQL 命令集限制到最小,即能滿足已配置系統上的基本操作即可。 
   
  SYSOPER 使用者可以使用的命令如下:
• STARTUP/SHUTDOWN
• ALTER DISKGROUP MOUNT/DISMOUNT
• ALTER DISKGROUP ONLINE/OFFLINE DISK
• ALTER DISKGROUP REBALANCE
• ALTER DISKGROUP CHECK
• SELECT all V$ASM_* views
其它所有命令,例如CREATE DISKGROUP、ADD/DROP/RESIZE DISK 等等,都需要
具備SYSDBA 許可權才能執行,使用SYSOPER 許可權不能執行。
7.關閉ASM 例項
  嘗試關閉處於NORMAL、IMMEDIATE 或TRANSACTIONAL 模式下的ASM 例項時,只有
  在沒有任何資料庫例項連線到該ASM 例項的情況下,操作才會成功。如果至少有一個實
  例與之連線,則會顯示以下錯誤:
  ORA-15097: cannot SHUTDOWN ASM instance with connected RDBMS
  instance
  如果對該ASM 例項執行SHUTDOWN ABORT 命令,則該例項將關閉,但在下次啟動時要
  求進行恢復。任何與之連線的資料庫例項最終也將關閉,同時報告以下錯誤:
  ORA-15064: communication failure with ASM instance
  在單個ASM 例項配置中,如果ASM 例項失敗,而磁碟組為進行更新處於開啟狀態,則
  在ASM 例項重新初始化後,它將讀取磁碟組的日誌並恢復所有臨時更改。在多個ASM
  例項共享磁碟組的情況下,如果一個ASM 例項失敗,另一個ASM 例項會自動恢復例項
  失敗所導致的臨時ASM 後設資料更改。資料庫例項故障不會對ASM 例項產生影響。只要
  主機重新啟動,ASM 例項就會自動啟動。ASM 例項應該使用底層作業系統支援的自動啟
  動機制。請注意,檔案系統故障通常會導致節點崩潰。
 
8.ASM 儲存:概念
  ASM 不會妨礙任何現有的資料庫功能。現有資料庫能夠像平常一樣工作。可以將新檔案
  建立為ASM 檔案,但聽任現有檔案以原有的方式管理,也可以最終將這些檔案移植到
  ASM。
  上圖描述了使用ASM 的Oracle 資料庫內部各儲存元件之間的關係。圖表的左側部分和
  中間部分顯示了在以前的版本中各元件之間的關係。右側部分是ASM 引入的新概念。
  資料庫檔案可以儲存為ASM 檔案。新層次的頂部是ASM 磁碟組。任何單個ASM 檔案只
  能包含在一個磁碟組中。不過,一個磁碟組中可以包含屬於多個資料庫的多個檔案,並且
  單個資料庫可以使用來自多個磁碟組的儲存空間。正如您看到的那樣,一個磁碟組由多個
  ASM 磁碟組成,但每個ASM 磁碟只能屬於一個磁碟組。ASM 檔案始終分佈在該磁碟組
  中的所有ASM 磁碟上。ASM 磁碟按分配單元(AU) 進行分割槽,每個分配單元的大小為
  1 MB。分配單元是ASM 分配的最小連續磁碟空間。ASM 不允許跨分配單元拆分一個
  Oracle 塊。
  注:本圖只處理了一種型別的ASM 檔案:資料檔案。不過,ASM 也可用於儲存其它型別
的資料庫檔案。 

9.ASM 磁碟組
    • 作為邏輯單元管理的磁碟組
    • 將磁碟總空間劃分為統一大小的單元
    • 將各個檔案平均分配到所有磁碟中
    • 根據檔案型別使用粗粒度或細粒度的
    條帶化
    • 管理的是磁碟組而非檔案
  ASM 磁碟組
  磁碟組是作為邏輯單元進行管理的一組磁碟。以ASM 磁碟為單位在磁碟組中新增或刪除
  儲存。每個ASM 磁碟都有一個ASM 磁碟名,該名稱在叢集的所有節點中都是相同的。
  由於不同主機可以使用不同的名稱引用同一磁碟,因此必須提供一個ASM 磁碟名稱的
  縮寫。
  ASM 始終以大小為1 MB 的分配單元塊將檔案平均分配到磁碟組的所有磁碟中。這稱為
  粗粒度條帶化。通過這種方式,ASM 消除了手動進行磁碟優化的必要。但是,磁碟組中
  的磁碟應當具有相似的大小和效能特性,以獲取最佳I/O。對於大多數安裝,將只有幾個
  磁碟組。例如,工作區需一個磁碟組,恢復區需一個磁碟組。對於要求等待時間較短的
  檔案(如日誌檔案),ASM 提供細粒度條帶化(128 KB)。細粒度條帶化對每個AU 進行
  條帶化。細粒度條帶化將中等大小的I/O 操作細分為多個較小的且並行執行的I/O 操作。
  當檔案和磁碟的數量增加時,您只需管理固定數量的磁碟組即可。從資料庫角度而言,
  可以將磁碟組指定為在資料庫中建立的檔案的預設位置。
  注:每個磁碟組都是自描述式的,均包含自己的檔案目錄和磁碟目錄。
 
  故障組
  故障組是某個特定磁碟組中的一組磁碟,共享一個需要容錯的公用資源。例如,故障組
  可以是連線到公用SCSI 控制器的一組SCSI 磁碟。儘管每個單獨的磁碟都功能正常,但
  控制器的故障將導致SCSI 匯流排上的所有磁碟都不可用。
  故障組的構成視站點而定。這主要取決於站點的容錯模式。預設情況下,ASM 將每個磁
  盤分配至其各自的故障組。建立磁碟組或將磁碟新增至磁碟組時,管理員可能會指定自己
  的磁碟分組方法,並將磁碟劃分到相應的故障組中。確定了故障組之後,ASM 可以優化
  檔案佈局,降低因共享資源故障而導致的資料不可用。
 
10.磁碟組映象
  • 在分配單元級別映象
  • 在每個磁碟上混合主分配
  單元和映象分配單元
  • 外部冗餘:延遲硬體映象
  • 正常冗餘:
  – 雙向映象
  – 至少兩個故障組
  • 高冗餘:
  – 三向映象
  – 至少三個故障組 
   
   磁碟組映象
  ASM 具有三種磁碟組型別,可支援不同映象型別:
  • 外部冗餘:不提供映象。如果使用硬體映象,或可以容忍磁碟故障所導致的資料
  丟失,則使用外部冗餘磁碟組。故障組不與這些型別的磁碟組一起使用
  • 正常冗餘:支援雙向映象
  • 高冗餘:提供三向映象
  ASM 不映象磁碟,而是映象分配單元。因此,只有磁碟組需要備用容量。某一磁碟發生
  故障時,ASM 將從磁碟組中的其它正常磁碟讀取映象內容,然後自動在正常磁碟中重建
  故障磁碟的內容。這就將擊中到故障磁碟的I/O 分佈到其它幾個磁碟。
  ASM 將檔案的一個主分配單元分配至磁碟組中的一個磁碟時,會將該分配單元的一個鏡
  像副本分配至該磁碟組的另一個磁碟。給定磁碟中的主分配單元可以在該磁碟組的一個
  夥伴磁碟上擁有自己的映象副本。ASM 將確保主分配單元及其映象副本始終位於不同的
  故障組中。如果為磁碟組定義了故障組,則ASM 可以對同一故障組中多個磁碟發生的同
  步故障進行容錯處理。
   
11.磁碟組動態重新平衡
  • 無論儲存配置何時發生
  更改,都會自動聯機
  重新平衡
  • 僅按相應比例將資料
  移至新增的儲存
  • 無需手動優化I/O
  • 聯機移植到新的儲存
  • 可在系統上使用
  ASM_POWER_LIMIT
  配置負載
   
   • 使用ASM,可以非常輕鬆的完成重新平衡過程,無需DBA 或系統管理員進行任何
干預。無論何時新增或刪除磁碟,ASM 均可以自動重新平衡磁碟組。
• 通過使用索引技術將分配單元分佈在各個可用磁碟上,ASM 不必重新條帶化所有數
據,而只需根據新增或刪除的儲存量按相應比例移動一定數量的資料,以在磁碟組
中的各個磁碟上重新平均分配檔案,並維護這些磁碟之間的I/O 負載平衡。
• 由於可以保持I/O 負載平衡,因此,無論何時分配檔案,也不論儲存配置何時發生
更改,DBA 都無需搜尋磁碟組中的熱點,也不用手動移動資料來恢復I/O 負載平衡。
• 如果同時新增或刪除多個磁碟,則使用ASM 將更加有效,這樣即可在單個操作中
實現各磁碟的重新平衡。這可避免資料發生不必要的移動。使用此技術,可以輕鬆
地實現資料的聯機移植。只需在一個操作中新增新磁碟,並在另一個操作中刪除舊
磁碟即可。
• 通過設定ASM_POWER_LIMIT 初始化變數,可以控制重新平衡操作在系統上分配的
負載量。取值範圍為0 到11。數值越小,負載越少,而設定越高,負載越多,完成
的也更快。設定為0 表示暫掛重新平衡操作。預設值為1。
 
 
12.管理磁碟組
  ASM 例項的主要目標是管理磁碟組和保護其中的資料。ASM 例項還可以向資料庫例項傳
  遞有關檔案佈局的資訊。通過這種方式,資料庫例項可以直接訪問磁碟組中儲存的檔案。
  系統提供了多個新的磁碟組管理命令。這些命令都要求具備SYSDBA 許可權,並且必須從
  ASM 例項發出。
  您可以新增新的磁碟組,還可以修改現有的磁碟組,在其中新增新磁碟、刪除現有磁碟和
  執行許多其它操作。可以刪除現有的磁碟組。
 
13.建立和刪除磁碟組
  CREATE DISKGROUP dgroupA NORMAL REDUNDANCY
  FAILGROUP controller1 DISK
  '/devices/A1' NAME diskA1 SIZE 120G FORCE,
  '/devices/A2',
  '/devices/A3'
  FAILGROUP controller2 DISK
  '/devices/B1',
  '/devices/B2',
  '/devices/B3';
  DROP DISKGROUP dgroupA INCLUDING CONTENTS; 
   
  假定在ASM 磁碟搜尋過程中,在/devices 目錄中找到以下磁碟:A1、A2、A3、B1、
  B2 和B3。又假定磁碟A1、A2 和A3 位於一個SCSI 控制器上,而磁碟B1、B2 和B3
  位於另一個控制器上。幻燈片中的第一個示例說明了如何配置名為DGROUPA 的磁碟組,
  該磁碟組有兩個故障組:CONTROLLER1 和CONTROLLER2。
  該示例中還對磁碟組使用了預設的冗餘特性NORMAL REDUNDANCY。可以根據需要提供
  磁碟的名稱和大小。如果不提供此資訊,ASM 將建立一個預設名稱,並嘗試確定磁碟的
  大小。如果不能確定大小,則會返回錯誤。FORCE 表示,即使指定磁碟已作為ASM 磁碟
  組的成員格式化,也應該將該磁碟新增到指定磁碟組中。如果對未作為ASM 磁碟組成員
  格式化的磁碟使用FORCE 選項,則會返回錯誤。
  如幻燈片中的第二個語句所示,可以刪除磁碟組及其所有檔案。為避免出現誤刪現象,
  如果除內部ASM 後設資料外磁碟組中還包含任何其它檔案,則必須指定INCLUDING
  CONTENTS 選項。必須先裝載磁碟組,然後才能將其刪除。確保磁碟組中的任何檔案均
  未開啟後,將該組及其所有驅動器一起從磁碟組中刪除。然後,將改寫每個磁碟的標頭,
  去除其中的ASM 格式資訊。
   
14.將磁碟新增至磁碟組
  ALTER DISKGROUP dgroupA ADD DISK
  '/dev/rdsk/c0t4d0s2' NAME A5,
  '/dev/rdsk/c0t5d0s2' NAME A6,
  '/dev/rdsk/c0t6d0s2' NAME A7,
  '/dev/rdsk/c0t7d0s2' NAME A8;
  ALTER DISKGROUP dgroupA ADD DISK '/devices/A*';
 
  本示例顯示如何將磁碟新增到磁碟組。執行ALTER DISKGROUP ADD DISK 命令可新增
  磁碟。第一個語句將四個新磁碟新增到DGROUPA 磁碟組。
  第二個語句演示搜尋字串的相互影響。在這種情況下,請考慮以下配置:
  /devices/A1 是DGROUPA 磁碟組的成員。
  /devices/A2 是DGROUPA 磁碟組的成員。
  /devices/A3 是DGROUPA 磁碟組的成員。
  /devices/A4 是候選磁碟。
  第二個命令將A4 新增到DGROUPA 磁碟組。由於其它磁碟已經是DGROUPA 磁碟組的成
  員,因此即使它們與搜尋字串匹配,第二個語句仍將忽略這些磁碟。如圖所示,向磁碟
  組新增磁碟時,ASM 例項將確保該磁碟是可定址的並且可用,然後,才會對該磁碟進行
  格式化並使其重新平衡。由於需要將每個檔案的分配單元移到新磁碟上,因此重新平衡過
  程非常耗時。
  注:重新平衡不會妨礙任何資料庫操作。重新平衡程式主要會對系統上的I/O 負載產生
  影響。重新平衡的強度越高,它加在系統上的I/O 負載也就越大。這樣,可供資料庫I/O
  使用的I/O 頻寬就越少。
     
15.其它ALTER 命令
從dgroupA 中刪除一個磁碟:
ALTER DISKGROUP dgroupA DROP DISK A5;
在單個命令中新增和刪除磁碟:
ALTER DISKGROUP dgroupA
DROP DISK A6
ADD FAILGROUP fred
DISK '/dev/rdsk/c0t8d0s2' NAME A9;
取消磁碟刪除操作:
ALTER DISKGROUP dgroupA UNDROP DISKS;
 
其它ALTER 命令
幻燈片中的第一個語句顯示如何從DGROUPA 磁碟組中刪除一個磁碟。第二個語句顯示
如何使用單個命令新增和刪除磁碟。本例的最大優點在於:在命令完成前不會啟動重新
平衡。第三個語句顯示如何取消磁碟刪除操作。UNDROP 命令只對磁碟的暫掛刪除操作
有效,對已完成的刪除操作沒有任何影響。
以下語句將根據需要重新平衡DGROUPB 磁碟組:
ALTER DISKGROUP dgroupB REBALANCE POWER 5;
此命令通常不是必需的,因為在新增、刪除磁碟或調整磁碟大小時會自動執行此操作。
不過,如果希望使用POWER 子句來覆蓋初始化引數ASM_POWER_LIMIT 定義的預設速
度,則該命令非常有用。通過在命令中重新輸入新的級別,可以更改正在進行的重新平
衡操作的強度。如果強度級別為0,則重新平衡操作將中斷,直到重新隱式或顯式呼叫
該命令。
以下語句將卸裝DGROUPA:
ALTER DISKGROUP dgroupA DISMOUNT;
使用MOUNT 和DISMOUNT 選項,可以分別指定一個或多個磁碟組可供資料庫例項使用或
不可供其使用。
使用以下語句驗證磁碟組後設資料的內部一致性,並修復發現的任何錯誤:
ALTER DISKGROUP dgroupA CHECK ALL;
如果只希望發出錯誤預警,也可以使用NOREPAIR 子句。雖然示例中請求對磁碟組中的
所有磁碟進行檢查,不過也可以指定對某個檔案或單個磁碟進行檢查。此命令要求磁碟組
已裝載。一旦發現任何錯誤,就會顯示一條錯誤概要訊息,並在預警日誌中報告檢測到的
錯誤的詳細資料。
注:在上面六個示例中,前四個示例觸發了磁碟組重新平衡,而後兩個則未觸發。

16.ASM 檔案
資料庫檔案
ASM 檔案在磁碟組dgroupA 中自動分佈
CREATE TABLESPACE sample DATAFILE '+dgroupA';
您為某個表空間指定ASM 磁碟組作為資料檔名時,將在該磁碟組中建立一些ASM
檔案,以便為該表空間提供儲存空間。
建立ASM 檔案時,會永久性地設定一些檔案屬性,其中包括檔案的保護策略和條帶化策
略。ASM 檔案是Oracle 管理檔案。ASM 建立的任何檔案一旦不再需要,就會自動刪除。
使用ASM 時,檔案操作將按資料庫物件來指定。雖然檔名會通過一些資料字典檢視公
開,或可以通過ALTER DATABASE BACKUP CONTROLFILE TO TRACE 命令來獲取,
但資料庫管理從不需要知道檔案的名稱。在物理上,由於磁碟組中的每個檔案都分佈在
磁碟組中的所有磁碟上,因此備份單個磁碟沒有任何用處。ASM 檔案的資料庫備份必須
通過RMAN 來完成。
注:ASM 不管理二進位制檔案、預警日誌、跟蹤檔案或口令檔案。

17.ASMCMD 實用程式
$ asmcmd
ASMCMD> ls -l DGROUP1/ORCL/DATAFILE
Type Redund Striped Time Sys Name
DATAFILE MIRROR COARSE OCT 05 21:00:00 Y HRAPPS.257.570923611
DATAFILE MIRROR COARSE OCT 05 21:00:00 Y TBSASM.256.570922917
ASMCMD>
SQL> CREATE TABLESPACE tbsasm DATAFILE '+DGROUP1' SIZE 100M;
Tablespace created.
SQL> CREATE TABLESPACE hrapps DATAFILE '+DGROUP1' SIZE 10M;
Tablespace created.
ASMCMD 實用程式
ASMCMD 是一個命令列實用程式,可用於輕鬆地檢視和操縱ASM 磁碟組中的檔案和目錄。
該實用程式可以列出磁碟組內容、執行搜尋、建立和刪除目錄以及顯示空間使用情況等等。
注:有關ASMCMD 的詳細資訊,請參閱文件《Oracle 資料庫實用程式》。
18.將資料庫移植到ASM 儲存區
  1. 完全關閉資料庫。
  2. 關閉資料庫並修改伺服器引數檔案,以使用Oracle
  Managed Files (OMF)。
  3. 編輯並執行以下RMAN 指令碼:
  STARTUP NOMOUNT;
  RESTORE CONTROLFILE FROM '/u1/c1.ctl';
  ALTER DATABASE MOUNT;
  BACKUP AS COPY DATABASE FORMAT '+dgroup1';
  SWITCH DATABASE TO COPY;
  SQL "ALTER DATABASE RENAME '/u1/log1' TO '+dgroup1' ";
  # Repeat RENAME command for all online redo log members
  ...
  ALTER DATABASE OPEN RESETLOGS;
  SQL "ALTER DATABASE TEMPFILE '/u1/temp1' DROP";
  將資料庫移植到ASM 儲存區
  由於ASM 檔案無法通過正常的作業系統介面訪問,因此RMAN 是複製ASM 檔案的
  唯一途徑。雖然由於表空間的歷史原因,表空間中的檔案既可以是ASM 檔案,也可以
  是非ASM 檔案,但是RMAN 命令會將非ASM 檔案移到ASM 磁碟組中。通過以下過程,
  可以將整個資料庫移到ASM 磁碟組中:(假定您使用的是伺服器引數檔案。)
  1. 使用V$CONTROLFILE 和V$LOGFILE,獲取當前控制檔案和聯機重做日誌的
  檔名。
  2. 像平常一樣關閉資料庫。按如下所述,修改資料庫的伺服器引數檔案:
  - 將必要的OMF 目標引數設定為所需的ASM 磁碟組。
  - 刪除CONTROL_FILES 引數。
  3. 編輯和執行RMAN 命令檔案,這將備份資料庫、將當前資料檔案移到備份中並重命
  名聯機重做日誌。使用BACKUP AS COPY 命令只能移動表空間或資料檔案。
  4. 刪除舊的資料庫檔案。
  注:如果建立一個OMF 控制檔案,並且有一個伺服器引數檔案,則會在該伺服器引數
  檔案中建立一個CONTROL_FILES 初始化引數條目。

相關文章