程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 對Oracle ASM詳細解剖

對Oracle ASM詳細解剖

編輯:Oracle數據庫基礎

ASM:Automatic Storage Management是Oracle 極力推薦的一種面向Oracle數據庫的存儲的實際解決方案, Oracle ASM 與RDBMS 是十分相似的,Oracle ASM 也是由文件與實例組成, 也可以通過sqlplus 工具來維護。

ASM 實例的創建和刪除也可以用DBCA 這個命令來操作。在dbca 的第一個界面選擇配置自動存儲管理就可以了。 ASM 實例需要CSS 進程, 如果是非RAC 環境, 在啟動ASM 實例之前會提示用腳本

$Oracle_HOME/bin/localconfig add 啟動CSS。

1. Oracle ASM 實例由SGA 和後台進程組成。

1. SGA 組成:

ASM 實例的SGA包括Buffer Cache, Share Pool, Large Pool等。 需要注意的是Share Pool, 因為Extent Map 要放在這部分的內存中,需要更具數據量來估計Extent Map 的大小做相應的調整。

Extent Map 的大小可以根據所有文件大小的和來估算,使用下面的語句來計算所有文件和:

  1. Select sum(bytes)/(1024*1024*1024) from v$datafile;  
  2. Select sum(bytes)/(1024*1024*1024) from v$logfile a, v$log b where a.Group#=b.Group#;  
  3. Select sum(bytes)/(1024*1024*1024) from v$tempfile where status='online';  

這3個sum 的總和對應著數據庫存放Oracle ASM中所有文件大小總和, 對於使用External Redundancy 的磁盤組, 每100G 需要1MB 的Extent Map, 根據這個比例計算Extent Map 所需要的空間,在加上額外的2MB就可以了。 在實際工作中一般不需要考慮ASM SGA的配置, 使用Oracle 提供的缺省值就可以了。

1.2 後台進程

ASM 實例比RDBMS 實例多2個進程: RBAL 和 ABRn。

RBAL: 這個進程也叫Rebalancer進程, 負責規劃ASM 磁盤組的Reblance活動。

ABRn:是RBAL進程的子進程,這個進程在數量上可以有多個, n從1~9, 這組進程負責真正完成Reblance活動。

使用ASM 作為存儲的RDBMS 實例也會多出2個進程: RBAL 和 ASMB

RBAL: 這個進程的主要功能是打開每個磁盤的所有磁盤和數據的Rebalance。

ASMB: 這個進程作為ASM 實例和數據庫實例之間的信息通道。 這個進程負責與ASM 實例的通信, 它先利用Diskgroup Name 從CSS 獲得管理該Diskgroup 的ASM 實例的連接串, 然後建立到ASM 的持久連接, 兩個實例之間通過這條連接定期交換信息,同時也是一種心跳機制。

RDBMS 實例要想使用ASM 作為存儲, RDBMS 實例必須在啟動時從Oracle ASM 實例獲得Extent Map, 以後發生磁盤組的維護操作, ASM 實例還要把Extent Map的更新信息通知給RDBMS 實例, 這2個實例間的信息交換就是他你哦剛過ASMB 進程完成的。 這也就為什麼: ASM 實例必須要先於數據庫實例啟動,和數據庫實例同步運行,遲於數據庫實例關閉。

注意: ASM 實例和數據庫實例的關系可以是1:1, 也可以是1:n。如果是1:n, 最好為ASM 安裝單獨的ASM_HOME。

2. ASM 配置

ASM 可以使用裸設備 或者ASMLib 方式, 因為裸設別的維護比較復雜,在此只講解ASMLib 方式。

對應不同的操作系統, 需要不同的包,下載的時候一定要和操作系統內核一致。 我的操作系統是 Red hat 4 update 7. 內核版本是2.6.9-78.ELSMP。

  1. Oracleasmlib-2.0.4-1.el4.i386.rpm  
  2. Oracleasm-support-2.1.3-1.el4.i386.rpm  
  3. Oracleasm-2.6.9-78.EL-2.0.5-1.el4.i686.rpm  
  4. Linux/asmlib/index.Html"  


該頁面有下載地址,注意選擇CPU 類型。 Oracle asmlib 和 support,在同一個頁面下載。

安裝包:

  1. #rpm -ivh *.rpm 

安裝完之後進行配置:

  1. #/etc/init.d/Oracleasm configure 

會有相應的提示, 回答 Oracle , dba, y, y 就可以了

分別對應默認用戶, 默認組,隨系統自啟動, 啟動時設置權限。

  1. /etc/init.d/Oracleasm createdisk VOL1 /dev/sdc1  
  2. /etc/init.d/Oracleasm scandisks  
  3. /etc/init.d/Oracleasm listdisks  

關於Oracleasm 的更多用法參考help:

  1. [root@node1 ~]# /etc/init.d/Oracleasm --help  
  2. Usage: /etc/init.d/Oracleasm {start|stop|restart|enable|disable|configure  
  3. |createdisk|deletedisk|querydisk|listdisks|scandisks|status}   
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved