ASM(Automatic Storage Management)是Oracle自建的儲存抽象層,以Disk Group取代傳統datafile直接管理。架構師Bill Bridge針對傳統檔案系統/LVM痛點設計:無共享磁碟檔案系統、LVM隱藏檔案位置致I/O難管、磁碟超百顆LVM失效、千檔以上OS/Oracle處理困難、命名混亂、跨平台差異大、OS用戶可繞過Oracle存取檔案。
# 1. 設定環境
export ORACLE_SID=+ASM1
# 2. init.ora
INSTANCE_TYPE=ASM
ASM_DISKGROUPS=SEAN, AARON
PROCESSES=100
ASM_DISKSTRING='/dev/cciss/c0d0p1'
BACKGROUND_DUMP_DEST=/opt/oracle/admin/+ASM/bdump
...
# 3. 啟動ASM實例
sqlplus / as sysdba
SQL> STARTUP
# 4. 建立磁碟組
SQL> CREATE DISKGROUP SEAN DISK '/dev/cciss/c0d0p1';
# 5. 建立表空間(兩種寫法)
-- 显式指定
SQL> CREATE TABLESPACE sean_space DATAFILE '+SEAN' SIZE 1G;
-- 隱式交給OMF
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST='+SEAN';
SQL> CREATE TABLESPACE sean_space;
V$DATAFILE顯示路徑為+SEAN/...抽象路徑,非OS實體路徑。
ASM為大型資料庫提供優雅儲存抽象,小型庫與RAC亦受益。鐵律:評估 → 測試 → 再測試 → 上線。