Oracle ASM是Oracle提供的一種基于磁盤的卷管理器,在向數據庫提供訪問磁盤資源時,能夠為多種存儲配置提供相同的接口。Oracle ASM構建在Oracle Clusterware上,并提供卷管理工具、CLI(命令行界面)、圖形工具和API以便管理Oracle ASM卷和文件系統。
配置Oracle ASM需要先創建磁盤組,然后將整個磁盤組或單個磁盤分配給ASM卷組。ASM卷組是起始點,數據庫文件可以直接在上面分配數據文件、控制文件、日志文件等(ASM文件可以認為是一種基于卷的文件系統,它的文件無論在哪一臺數據庫節點上,都具有全局性,可被其他節點共享訪問)。下面是創建和配置ASM磁盤組的過程:
#查看磁盤 [root@host1 ~]# fdisk -l #將磁盤分區 [root@host1 ~]# fdisk /dev/sdb Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-1305, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305): Using default value 1305 Command (m for help): w The partition table has been altered! Calling ioctl () to re-read partition table. [root@host1 ~]# mkfs.ext4 /dev/sdb1 #格式化分區 #創建目錄,掛載分區 [root@host1 ~]# mkdir -p /u01/app/oracle/oradata [root@host1 ~]# vi /etc/fstab #添加以下內容 /dev/sdb1 /u01/app/oracle/oradata ext4 defaults 0 0 [root@host1 ~# mount -a #根據/etc/fstab文件掛載分區 #設置磁盤成為ASM庫的一部分 [root@host1 ~]# ORACLE_SID=+ASM [root@host1 ~]# export ORACLE_SID [root@host1 ~]# sqlplus / as sysasm SQL> CREATE DISKGROUP DATA EXTERNAL REDUNDANCY DISK '/u01/app/oracle/oradata';
創建成功后,我們需要創建ASM卷組,并將磁盤分配給卷組:
#設置環境變量 [root@host1 ~]# ORACLE_SID=+ASM [root@host1 ~]# export ORACLE_SID #登錄SQL [root@host1 ~]# sqlplus / as sysasm #創建ASM卷組 SQL> CREATE DISKGROUP DG_VOTE EXTERNAL REDUNDANCY DISK '/u01/app/oracle/oradata1' DISK '/u01/app/oracle/oradata2' ATTRIBUTE 'AU_SIZE'='4M'; #查看所有卷組 SQL> SELECT name, state, type, total_mb, free_mb FROM V$ASM_DISKGROUP; #將磁盤加入卷組 SQL> ALTER DISKGROUP DG_VOTE ADD DISK '/u01/app/oracle/oradata3';
這樣我們就配置好了一個ASM卷組,并將多個磁盤加入其中。在配置Oracle RAC時,需要使用多個ASM卷組來管理磁盤資源。