這帶來了很多好處,但是也要求學習一些新的概念、命令、使用和管理工作。所以在投入你的生產系統之前,看看它解決什麼、管理什麼,以及對它的正反面評價。
為什麼建立它?
回答這個問題的最好方式是直接追溯源頭,Bill Bridge——自動儲存管理的最初架構師。在Oracle Press標題中的Oracle ASM,Bill提供了一個連結,他在那裡討論了使用供應商特定作業系統的檔案系統來管理Oracle資料檔案放置所遇到的問題:
1. 對于歸檔日誌和備份,作業系統供應商不提供共用磁碟檔案系統。
2. 邏輯卷管理器隱藏了檔案的位置,使得很難管理磁碟I/O和提供良好的統計。
3. 當磁碟數超過100時,現有的lvm不能工作得很好。
4. 當資料庫有1000以上的資料檔案時,作業系統和Oracle不能很好地處理資料庫。
5. 當有大量資料檔案時命名就變得很困難了。
6. 特性和檔案系統限制隨作業系統的不同而不同。
7. 作業系統級的使用者可以通過標準使用接觸到Oracle檔案,而Oracle並不知道。
所以,他通過建立Oracle自己的檔案系統開始解決這些問題。他的目標是提供這些特性:
1. 與Oracle緊密整合,並與叢集一起使用(並行伺服器)。
2. 自動使用新的儲存,作為磁碟單元或磁碟組來管理。
3. 支援成千上萬的磁碟。
4. 檔案不會名字,並會在作業系統中隱藏起來。
誰需要它?
現在快速探索一下上面那些問題和解決方案會協助你確定誰需要ASM。起初,它是用來處理現在很大型的線上資料庫。所以如果它包括你的商店,那麼你可能已經在關注它了,或者開始執行ASM。如果你的資料庫較小,資料檔案也不多,那麼你可能需要再一些理由使你考慮採用它。
1. 你將要熟悉一些新技術,並且應該從在你的開發環境中建立它開始,並測試幾個月。
2. 如果你想從你現有的磁碟子系統中獲得更高的效能,並獲得更好的統計用於預測磁碟I/O。
3. 如果你正在使用RAC,那麼就需要考慮ASM了。
開始
ASM是由一個執行個體管理,非常類似於Oracle資料庫。但是初始參數是非常有限的,而且啟動過程也簡單得多。
a. 將你的ORACLE_SID設定為+ASM1
b. 編輯init.ora
複製代碼 代碼如下:# as opposed to RDBMS for a normal Oracle instance
INSTANCE_TYPE=ASM
# these names will be used in place of datafile names when you create tablespaces
ASM_DISKGROUPS=SEAN, AARON
processes=100
# this parameter is platform specific and is the path to the raw disk device
ASM_DISKSTRING='/dev/cciss/c0d0p1'
# on 11g you should use diagnostic_dest instead of these
background_dump_dest=/opt/oracle/admin/+ASM/bdump'
core_dump_dest=/opt/oracle/admin/+ASM/cdump'
user_dump_dest=/opt/oracle/admin/+ASM/udump'
c. 啟動ASM執行個體 複製代碼 代碼如下: $ sqlplus / as sysdba
SQL> startup
d. 建立磁碟組 複製代碼 代碼如下: SQL> create diskgroup SEAN disk '/dev/cciss/c0d0p1';
e. 檢查資料表空間的建立
你可能會猜測,建立一個資料表空間會有輕微的改變。預設方法如下所示:
SQL> create tablespace sean_space datafile ‘+SEAN' size 1GB;
不過想一下這個很好的特性。如果在你的資料庫中init.ora檔案你設定參數為: