alimama_pid="mm_10096109_566393_892186"; alimama_titlecolor="0000FF"; alimama_descolor ="000000"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="E6E6E6"; alimama_linkcolor="008000"; alimama_bottomcolor="FFFFFF"; alimama_anglesize="0"; alimama_bgpic="0"; alimama_icon="0"; alimama_sizecode="11"; alimama_width=760; alimama_height=90; alimama_type=2;
1. 引言
自動存儲管理(ASM) 是Oracle 數據庫10g 的新功能,它為數據庫管理員提供了一個簡單的存儲管理界面,並且該界面在所有服務器和存儲平台上都是一致的。作為專門為 oracle 數據庫文件創建的整合的文件系統和卷管理器,ASM 提供了異步 I/O 的性能以及文件系統的易管理性。它簡化了數據庫的管理,使管理員可以將可用的存儲劃分為磁盤組(disk groups),只需管理少量的磁盤組而不再需要直接管理大量的Oracle數據庫文件,ASM可自動管理磁盤組內數據庫文件的放置,優化了性能和資源利用率。
2. Oracle 10g中的高效存儲技術ASM
自動存儲管理直接在Oracle 內核提供了文件系統和卷管理器的垂直整合,
從而帶來了存儲區域網系統提供的“虛擬化”類型的優點(易於管理、更高的可用性),並專門用於Oracle 數據庫文件。ASM 提供了配置數據庫的快捷方法,以達到最佳性能和資源利用率。它通過Oracle 內核自動管理數據庫文件和這些文件的放置,不再需要第三方文件系統和卷管理器來管理Oracle 文件。ASM 免去了耗時的手動I/O 性能與調整任務,大大節省了DBA 的時間。
ASM的鏡像(mirroring)與條帶化(striping):ASM 將文件分成1MB 大小的區(extent),並將所有文件的區平均分布到磁盤組的所有磁盤中。ASM 不使用數學函數跟蹤每個區的放置,而使用指針記錄區的位置。這樣,ASM 就可以在磁盤組配置變化時移動某個文件的某些區,而不必按照公式並根據磁盤數來移動所有的區。對於需要低延遲的文件(例如日志文件),ASM 提供了細粒度(128k) 分段,以便由多個磁盤並行分隔並處理較大的I/O。ASM 在所有可用的資源中分布I/O 負載,在免除手動I/O 調節需要(通過分散數據庫文件來避免熱點)的同時優化性能。ASM的鏡像比操作系統的磁盤鏡像更為靈活,因為ASM可基於文件設置冗余級別,也就是說在同一磁盤組中的兩個文件可以一個是鏡像的而另一個不做鏡像。ASM鏡像發生在區級。
ASM的動態存儲配置:ASM使得在線調整存儲配置成為可能,即它幫助DBA 管理動態數據庫環境,讓DBA 能夠在擴大或縮小數據庫規模的情況下,無需關閉數據庫以調整存儲配置。而在往磁盤組中增加磁盤或從磁盤組中刪除磁盤後,ASM將自動重新平衡――均衡地在磁盤組中的所有磁盤上重新分布文件數據。
ASM 是一種能力,它通過實現手動存儲器的自動化來節省DBA 的時間,使其能夠以更高的效率管理更大、更多的數據庫。
3. 通過ASMCMD工具管理ASM
在Oracle數據庫10g的第一個版本中,管理ASM只能通過SQL語句,10g的第二個版本提供了一個管理ASM文件的新選擇――命令行工具ASMCMD,它使我們可以更為方便地浏覽和管理ASM磁盤組中的文件和目錄。它可以列出磁盤組的內容,執行搜索,創建或刪除目錄及別名,顯示空間利用率等等。下面將通過一個在AIX 5.3操作系統上的Oracle 10g的應用實例來介紹ASMCMD命令行工具的使用方法以及ASM文件的FTP及HTTP訪問方式。相關環境信息如下:
操作系統平台:AIX 5.3
數據庫版本:Oracle 10.2.0.3(2節點RAC)
磁盤組:ORAHIS_22G,ORAHIS_44G(將22G和44G的LUN劃分為2個磁盤組)
磁盤組類型:外部冗余方式(EXTERNAL REDUNDANCY)
3.1. 創建磁盤組
首選需要創建磁盤組,由於不能通過ASMCMD命令創建或刪除磁盤組,以及添加或刪除磁盤組中的磁盤,所以我們通過Oracle 10g中新的SQL命令來完成磁盤組的創建:
在本實例中有22G和44G兩種大小的LUN,先通過操作系統命令或通過ASM實例中v$asm_disk視圖中的信息確認這兩種大小的LUN的設備名,建立2個磁盤組ORAHIS_22G及ORAHIS_44G:
CREATE DISKGROUP ORAHIS_22G EXTERNAL REDUNDANCY disk
''/dev/rhdisk6'',
創建了磁盤組後就可以使用磁盤組,在上面創建數據庫,分布數據庫文件等。
3.2. 運行ASMCMD
以一個擁有SYSDBA權限的操作系統用戶登錄到運行了ASM實例的主機上,同時設置正確的ORACLE_HOME及Oracle_SID環境變量以選擇ASM實例,再設置正確的PATH環境變量,就可以運行ASMCMD工具了。ASMCMD可以以交互或非交互模式兩種模式運行。
1) 交互模式運行:在操作系統命令提示符下輸入asmcmd,會得到ASMCMD>提示符,可以輸入相關的命令,如果使用-p選項,將在ASMCMD提示符中包含當前路徑,如下:
gdhish1:/oracle/orahis>export Oracle_SID=+hisasm1
gdhish1:/Oracle/orahis>asmcmd -p
ASMCMD [+] > ls
ORAHIS_22G/
ORAHIS_44G/
ASMCMD [+] > cd ORAHIS_22G
ASMCMD [+ORAHIS_22G] >
2) 非交互模式運行:命令格式為:asmcmd command arguments,如下:
gdhish1:/Oracle/orahis>asmcmd ls -l
State Type Rebal Unbal Name
3.3. ASMCMD命令參考
1) 部分常用的ASMCMD命令列表命令
說明
du
顯示指定的ASM目錄下ASM文件占用的所有磁盤空間
ls
列出ASM目錄下的內容及其屬性
lsct
列出當前ASM客戶端的信息
lsdg
ASMCMD> lsdg
State Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name
MOUNTED EXTERN N N 512 4096 1048576 622160 318776 0 318776 0 ORAHIS_22G/
MOUNTED EXTERN N N 512 4096 1048576 2088727 771455 0 771455 0 ORAHIS_44G/
上述lsdg命令的結果顯示共有兩個磁盤組ORAHIS_22G和ORAHIS_44G,狀態是“MOUNTED”,類型是外部冗余(EXTERNAL REDUNDANCY),當前沒有重現平衡(rebalance)操作,也沒有磁盤組需要重現平衡。Sector大小是512字節,Block大小是4096字節,分配單元是1048576字節,即1M,ORAHIS_22G磁盤組大小為622160M,空閒大小為318776M,offline disks的數量為0,由於是外部冗余類型,故Req_mir_free_MB 為0。
ASMCMD [+ORAHIS_44G/hisrac/datafile] > ls -ls
Type Redund Striped Time Sys Block_Size Blocks Bytes Space Name
DATAFILE UNPROT COARSE MAY 28 14:00:00 Y 32768 524289 17179901952 17181966336 BILL_TS_DT1.265.622310595
DATAFILE UNPROT COARSE MAY 28 14:00:00 Y 32768 524289 17179901952 17181966336 UNDOTBS2.264.621185703
上述ls –ls命令的結果顯示ASM目錄+ORAHIS_44G/hisrac/datafile下的文件及其屬性,如文件BILL_TS_DT1.265.622310595和UNDOTBS2.264.621185703,類型為DATAFILE,由於是外部冗余方式,Redund為UNPROT,即對於ASM而言是uprotected,條帶化方式為COARSE,文件是系統創建的,塊大小為32768字節,塊數為524289,文件大小為17179901952字節。
4. 通過XML DB虛擬目錄訪問ASM文件
由於ASM 是專為處理Oracle 數據庫文件而建立的整合的文件系統與卷管理器,它不是一般意義上的文件系統或集群文件系統,因此不能使用標准的FTP和HTTP服務來訪問ASM文件,我們可以通過XML DB repository中的虛擬目錄/sys/asm來訪問ASM文件和目錄。
內容並非真正存儲在repository中,所以稱為虛擬目錄,/sys/asm提供了通過XML DB協議如FTP和HTTP/WebDAV來訪問和操作ASM文件的一種方法。1) 配置
下面以選擇FTP端口7787,HTTP/WebDAV端口8080為例進行配置(前提是已經安裝好XDB):
gdhish1:/oracle/orahis>export Oracle_SID=hisrac1
gdhish1:/Oracle/orahis>sqlplus ''/as sysdba''
sql>@?/rdbms/admin/catxdbdbca.sql 7787 8080
訪問時注意必須以擁有dba權限的數據庫用戶(非sys)登錄。
2) FTP訪問示例(通過FTP傳輸XDB.dbf文件):
zhcxxt1:/dsgh1 #FTP 130.51.5.103 7787
Connected to 130.51.5.103.
220- gdhish2
Unauthorised use of this FTP server is prohibited and may be subject to civil and criminal prosecution.
220 gdhish2 FTP Server (Oracle XML DB/Oracle Database) ready.
Name (130.51.5.103:root): system
331 pass required for SYSTEM
PassWord:
230 SYSTEM logged in
FTP> cd sys/asm
250 CWD Command successful
FTP> ls
200 PORT Command successful
150 ASCII Data Connection
ORAHIS_44G
ORAHIS_22G
226 ASCII Transfer Complete
FTP> cd ORAHIS_22G/datafile
250 CWD Command successful
FTP> bin
200 Type set
3) HTTP訪問示例:
通過類似的URL來訪問:http://130.51.5.103:8080/:
5. 小結
Oracle 數據庫10g 向DBA 提供簡化的存儲資源管理界面。自動存儲管理免除了手動I/O 性能調節的需要。它將數據庫存儲的管理虛擬化為一組磁盤組,並提供更多選項以加強保護。ASM 實現動態存儲分配,並提供自動重新平衡。它在所有可用的存儲設備中分布數據庫文件,以便優化性能和資源利用率。同時ASMCMD命令行工具使得對ASM的管理更為便捷,而通過Oracle XML DB,還可以實現對ASM存儲的FTP和HTTP訪問。
var alimama_pid="mm_1009
6109_566393_892989"; var alimama_titlecolor="0000FF"; var alimama_descolor ="000000"; var alimama_bgcolor="FFFFFF"; var alimama_bordercolor="E6E6E6"; var alimama_linkcolor="008000"; var alimama_bottomcolor="FFFFFF"; var alimama_anglesize="0"; var alimama_bgpic="0"; var alimama_icon="0"; var alimama_sizecode="11"; var alimama_width=760; var alimama_height=90; var alimama_type=2;