ASM(Automatic Storage Management)是 Oracle 主推的存儲解決方案,架構與 RDBMS 相似,由實例(SGA+後台進程)與文件組成,可用 SQL*Plus 維護。ASM 實例需 CSS(Cluster Synchronization Services)進程支援;非 RAC 環境啟動前需執行 $ORACLE_HOME/bin/localconfig add 啟動 CSS。
包含 Buffer Cache、Shared Pool、Large Pool。特別注意 Shared Pool 需容納 Extent Map,大小估算公式:
SELECT SUM(bytes)/(1024*1024*1024) FROM v$datafile; 等實際生產通常採用默認值即可:SHARED_POOL_SIZE=48M、LARGE_POOL_SIZE=12M、SGA_MAX_SIZE=88M。
使用 ASM 的 RDBMS 實例額外擁有:
關鍵依賴:ASM 必須先於 RDBMS 啟動,同步運行,晚於 RDBMS 關閉。一個 ASM 實例可服務多個 RDBMS(1:n),建議獨立 ASM_HOME。
oracleasmlib-2.0.4-1.el4.i386.rpm
oracleasm-support-2.1.3-1.el4.i386.rpm
oracleasm-2.6.9-78.EL-2.0.5-1.el4.i686.rpm
安裝:rpm -ivh *.rpm → 配置:/etc/init.d/oracleasm configure(依次輸入 oracle、dba、y、y)。
/etc/init.d/oracleasm createdisk VOL1 /dev/sdc1
/etc/init.d/oracleasm scandisks
/etc/init.d/oracleasm listdisks
關鍵參數:
INSTANCE_TYPE='ASM'ASM_DISKGROUPS:啟動自動掛載的磁盤組(SPFILE 會自動更新,PFILE 需手動維護)。ASM_DISKSTRING:掃描磁盤路徑,ASMLib 格式 'ORCL:VOL*'。ASM_POWER_LIMIT (0-11):重平衡速度,0=不重平衡,11=最快(影響性能)。可動態調整:ALTER DISKGROUP DATA REBALANCE POWER 5;CREATE DISKGROUP dgtest NORMAL REDUNDANCY
FAILGROUP DATA1 DISK '/dev/oracleasm/VOL5' NAME DATA1
FAILGROUP DATA2 DISK '/dev/oracleasm/VOL6' NAME DATA2;
DROP DISKGROUP DATA INCLUDING CONTENTS;
ALTER DISKGROUP ALL MOUNT;
ALTER DISKGROUP DATA DISMOUNT;
ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/VOL5' NAME VOL5;
ALTER DISKGROUP DATA DROP DISK VOL5;
ALTER DISKGROUP DATA UNDROP DISKS; -- 僅在 DROP 未完成時有效
ALTER DISKGROUP dg1 ADD ALIAS '+dg1/my_dir/my_file.dbf' FOR '+dg1/mydb/datafile/my_ts.342.3';
ALTER DISKGROUP dg1 RENAME ALIAS '+dg1/my_dir/my_file.dbf' TO '+dg1/my_dir/my_file2.dbf';
ALTER DISKGROUP dg1 DROP FILE '+dg1/my_dir/my_file.dbf';
位於 $ORACLE_HOME/bin/asmcmd,支援 cd、ls、mkdir、rm、mkalias 等類文件系統操作,需 SYSDBA 權限。
ALTER SYSTEM REGISTER;$ORACLE_HOME/dbs 相關文件 → oradim -delete -asmsid +ASM(Windows)。