首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 10g ASM 實戰全書:ASMCMD 管理與 XML DB 存取

     編輯:Oracle 資料庫基礎

前言:為什麼需要 ASM?

自動儲存管理(Automatic Storage Management,ASM)是 Oracle 10g 引入的革命性儲存虛擬化層,專為資料庫檔案設計的整合式檔案系統與卷管理器。它消除了傳統檔案系統與邏輯卷管理器的雙重管理開銷,提供:

  • 極致效能:核心層非同步 I/O、自動條帶化分散熱點
  • 彈性冗餘:檔案級鏡像策略(正常/高冗餘/外部冗餘)
  • 線上擴容:動態增減磁碟、自動重新平衡、零停機維護
  • 管理簡化:磁碟組抽象化、自動檔案命名與放置
ASM 架構示意圖

ASM 核心技術深度解析

智慧條帶化與鏡像機制

ASM 將檔案切分為 1MB 預設區,平均分布於磁碟組所有磁碟:

  • 粗條帶:1MB 區,適用資料檔、控制檔
  • 細條帶:128KB 區,適用重做日誌、控制檔等低延遲需求

鏡像發生在區層級,同一磁碟組內不同檔案可採用不同冗餘等級——這比作業系統級磁碟鏡像靈活得多。

動態重新平衡

磁碟增減時,ASM 自動計算移動最少區數量以達新均衡,透過指標而非數學函數追蹤區位置,大幅降低重平衡開銷。REBALANCE POWER 參數控制並行度與速度權衡。

ASMCMD 命令列管理工具實戰

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:分配單元 1MB

XML DB 虛擬目錄:突破 ASM 存取限制

ASM 非標準檔案系統,無法直接以 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 存取實戰:下載資料檔

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)

HTTP/WebDAV 瀏覽

瀏覽器訪問 https://host:8080/sys/asm/ 即可圖形化瀏覽、下載 ASM 檔案。

實戰案例:AIX 5.3 + Oracle 10.2.0.3 RAC 環境部署

磁碟組建立(需 SQL,ASMCMD 不支援建磁碟組)

CREATE DISKGROUP ORAHIS_22G EXTERNAL REDUNDANCY
DISK '/dev/rhdisk6', '/dev/rhdisk8', ...;

CREATE DISKGROUP ORAHIS_44G EXTERNAL REDUNDANCY
DISK '/dev/rhdisk7', '/dev/rhdisk9', ...;

關鍵決策點

  • 冗餘策略:外部冗餘依賴存儲層 RAID,ASM 不做鏡像,效能最佳
  • LUN 大小一致性:同磁碟組內 LUN 應等大,避免空間浪費與效能傾斜
  • 分配單元 (AU):預設 1MB,大檔案/倉儲可調大至 4/8/16/32/64MB(11g+)

總結與最佳實踐

  1. 優先採用 ASM:新建資料庫首選,簡化儲存管理 80%+ 工作量
  2. 善用 ASMCMD:日常檔案操作、空間檢查、別名管理首選工具
  3. XML DB 門戶:跨平台檔案傳輸、備份檔下載、開發測試資料搬移
  4. 監控重平衡:V$ASM_OPERATION 追蹤重平衡進度,避免業務高峰期觸發
  5. 容量規劃:預留 20%+ 可用空間應對重平衡臨時空間需求

結語:ASM + ASMCMD + XML DB 形成「管理、操作、存取」三位一體的現代化儲存管理體系,是 Oracle 資料庫邁向雲端與自動化的關鍵基礎設施。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved