自動儲存管理(Automatic Storage Management,ASM)是 Oracle 10g 引入的革命性儲存虛擬化層,專為資料庫檔案設計的整合式檔案系統與卷管理器。它消除了傳統檔案系統與邏輯卷管理器的雙重管理開銷,提供:
ASM 將檔案切分為 1MB 預設區,平均分布於磁碟組所有磁碟:
鏡像發生在區層級,同一磁碟組內不同檔案可採用不同冗餘等級——這比作業系統級磁碟鏡像靈活得多。
磁碟增減時,ASM 自動計算移動最少區數量以達新均衡,透過指標而非數學函數追蹤區位置,大幅降低重平衡開銷。REBALANCE POWER 參數控制並行度與速度權衡。
Oracle 10g R2 引入 ASMCMD,提供類檔案系統操作體驗:
# 設定環境變數
export ORACLE_SID=+ASM1
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
# 互動模式(-p 顯示當前路徑)
asmcmd -p
ASMCMD [+] > ls
ORAHIS_22G/
ORAHIS_44G/
ASMCMD [+] > cd ORAHIS_22G
ASMCMD [+ORAHIS_22G] >
# 非互動模式
asmcmd lsdg
asmcmd ls -l +ORAHIS_44G/hisrac/datafile
| 指令 | 功能 | 常用參數 |
|---|---|---|
| lsdg | 列出所有磁碟組屬性 | -g 顯示詳細資訊 |
| ls | 列出目錄內容 | -l 詳細、-s 系統生成名稱、-r 遞迴 |
| du | 顯示目錄空間使用量 | -H 人類可讀格式 |
| mkdir/rmdir | 建立/刪除目錄 | -p 遞迴建立 |
| mkalias/rmalias | 建立/刪除別名 | 別名管理 |
| cp | 檔案複製(含跨磁碟組) | -f 強制覆蓋 |
| lsct | 列出 ASM 客戶端連線 |
ASMCMD> lsdg
State Type Rebal Sector Block AU Total_MB Free_MB Name
MOUNTED EXTERN N 512 4096 1048576 622160 318776 ORAHIS_22G/
MOUNTED EXTERN N 512 4096 1048576 2088727 771455 ORAHIS_44G/
ASMCMD [+ORAHIS_44G/hisrac/datafile] > ls -ls
Type Redund Striped Time Sys Block_Size Blocks Bytes Name
DATAFILE UNPROT COARSE MAY 28 14:00:00 Y 32768 524289 17179901952 BILL_TS_DT1.265.622310595
DATAFILE UNPROT COARSE MAY 28 14:00:00 Y 32768 524289 17179901952 UNDOTBS2.264.621185703
關鍵欄位解讀:
Type=EXTERN:外部冗餘(由硬體 RAID 提供保護)Redund=UNPROT:ASM 層面不保護(對應外部冗餘)Striped=COARSE:粗條帶(1MB)Sys=Y:系統管理檔案(OMF)AU=1048576:分配單元 1MBASM 非標準檔案系統,無法直接以 FTP/HTTP 存取。Oracle XML DB Repository 提供 /sys/asm 虛擬目錄,映射 ASM 檔案結構,支援 WebDAV/FTP/HTTP 協定。
# 設定 FTP/HTTP 端口(需 DBA 權限、非 SYS 用戶)
sqlplus "/ as sysdba"
@?/rdbms/admin/catxdbdbca.sql 7787 8080
# 參數:FTP_PORT HTTP_PORT
ftp 130.51.5.103 7787
Connected to 130.51.5.103.
Name: system
Password: ********
ftp> cd sys/asm
250 CWD Command successful
ftp> ls
ORAHIS_44G
ORAHIS_22G
ftp> cd ORAHIS_22G/datafile
ftp> bin
200 Type set to I
ftp> get XDB.dbf
226 BIN Transfer Complete
536903680 bytes received in 37.49 seconds (1.399e+04 Kbytes/s)
瀏覽器訪問 https://host:8080/sys/asm/ 即可圖形化瀏覽、下載 ASM 檔案。
CREATE DISKGROUP ORAHIS_22G EXTERNAL REDUNDANCY
DISK '/dev/rhdisk6', '/dev/rhdisk8', ...;
CREATE DISKGROUP ORAHIS_44G EXTERNAL REDUNDANCY
DISK '/dev/rhdisk7', '/dev/rhdisk9', ...;
V$ASM_OPERATION 追蹤重平衡進度,避免業務高峰期觸發結語:ASM + ASMCMD + XML DB 形成「管理、操作、存取」三位一體的現代化儲存管理體系,是 Oracle 資料庫邁向雲端與自動化的關鍵基礎設施。