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卷组来管理磁盘资源。