1、红帽 5.4 企业版下 创建 asm 数据库1、操作系统:redhat 5数据库 :oracle 11G R12、查看系统内核,安装 asm 需要根据系统内核,安装相应的 rpm 包rootlocalhost # uname -r2.6.18-8.el53、下载并安装 rpm 包下载地址:http:/ rpm 包:oracleasm-support-2.1.7-1.el5.ia64.rpmoracleasmlib-2.0.4-1.el5.ia64.rpmoracleasm-2.6.18-8.el5-2.0.4-1.el5.i686.rpm前两个 rpm 是通用的,最后一个分内核下载;4、 在进
2、行此步骤前请先确认/etc/sysconfig/selinux 文件中的 SELINUX=disable否则在接下在的配置后会报 Initializing the Oracle ASMLib driver: FAILED错误。设置系统启动自动挂载 asm 磁盘/etc/init.d/oracleasm configure输入这条命令后,会让你输入用户和组名,数据库通常都安装在 oracle 用户 oinstall 组下,这里我们只要输入 oracle 和 oinstall 即可:5、创建 asm 磁盘dd if=/dev/zero f=/home/asmdg/sdb1 bs=1M count=
3、5000dd if=/dev/zero f=/home/asmdg/sdb2 bs=1M count=5000dd if=/dev/zero f=/data/asmdg/sdb3 bs=1M count=5000dd if=/dev/zero f=/data/asmdg/sdb4 bs=1M count=5000将 dd 得到的文件虚拟成循环设备:/sbin/losetup /dev/loop1 /home/asmdg/sdb1/sbin/losetup /dev/loop2 /home/asmdg/sdb2/sbin/losetup /dev/loop3 /data/asmdg/sdb3/s
4、bin/losetup /dev/loop4 /data/asmdg/sdb4创建 asm 磁盘/etc/init.d/oracleasm createdisk V1 /dev/loop1/etc/init.d/oracleasm createdisk V2 /dev/loop2/etc/init.d/oracleasm createdisk V3 /dev/loop3/etc/init.d/oracleasm createdisk V4 /dev/loop4以上步骤三个步骤千万不能出错,如果出错,及时重建,否则会影响后面的 asm 磁盘挂载6、添加 oracleasm 磁盘cd $ORACL
5、E_HOME/bin./localconfig add7、磁盘创建至此,已经结束,接下来 就可以使用 dbca 来创建管理 asm 磁盘并创建数据库,注意:此时创建的 asm 磁盘,在系统重启后将会消失,因此,我们需要修改系统文件配置,使其在重启时自动挂载并创建修改/etc/rc.local 文件,把刚才创建 asm 的语句都放在上面就可以了:rootlocalhost # cat /etc/rc.local#!/bin/sh# This script. will be executed *after* all the other init scripts.# You can put your
6、 own initialization stuff in here if you dont# want to do the full Sys V style. init stuff.touch /var/lock/subsys/local/sbin/losetup /dev/loop1 /home/sdb1/sbin/losetup /dev/loop1 /home/sdb2/etc/init.d/oracleasm createdisk V1 /dev/loop1/etc/init.d/oracleasm createdisk V2 /dev/loop2保存退出后,重启一下机器,查看磁盘是否
7、正常挂载。8、第七步的时候,如果我们不方面启动图形界面,我们也可以通过手工用命令创建(以下内容 配置+asm 参数文件-init+ASM.ora-INSTANCE_TYPE=ASM DB_UNIQUE_NAME=+ASMLARGE_POOL_SIZE=12M ASM_DISKSTRING=/dev/oracleasm/disks/V1,/dev/oracleasm/disks/V2_ASM_ALLOW_ONLY_RAW_DISKS=FALSE注意:在配置好参数文件, startup nomount 时,可能出现ORA-00845: MEMORY_TARGET not supported on
8、this system 错误,这个问题是由于设置SGA 的大小超过了操作系统/dev/shm 的大小:修改/etc/fstab 表,添加-tmpfs /dev/shm tmpfs defaults,size=10240M 0 0-这个值的大小可以自己根据实际情况调节,系统为内存的一半,我们可以适当的放大;然后执行:umount /dev/shmmount /dev/shmdf -k /dev/shm执行完这些操作后,再次 startup 问题解决。-启动+ASM 实例到 nomount 状态后,创建逻辑卷组有一个 asm 组时执行 create diskgroup grouptest exte
9、rnal redundancy disk /dev/oracleasm/disks/VOL1;多个 asm 组 执行 create diskgroup DGROUP1 normal redundancy disk /dev/oracleasm/disks/V1,/dev/oracleasm/disks/V2;create diskgroup DGROUP2 normal redundancy disk /dev/oracleasm/disks/V3,/dev/oracleasm/disks/V4;create diskgroup DGROUP3 normal redundancy disk /
10、dev/oracleasm/disks/V5,/dev/oracleasm/disks/V6,/dev/oracleasm/disks/V7;Diskgroup created.创建成功后,查看逻辑卷 挂载状态。select path,mount_status from v$asm_disk;9、关闭+ASM 实例,在参数文件上添加参数,添加后,下次磁盘组讲自动挂载ASM_DISKGROUPS=DGROUP1,DGROUP210、启动+ASM 实例,测试是否可以一次性到 mount。create spfile from pfile;startup11、创建 asm 磁盘相关命令:手工挂载 as
11、m 磁盘alter diskgroup dgroup1 mount;alter diskgroup dgroup2 mount;查看 css 状态crsctl check cssd删除 diskgroupdrop diskgroup DATA including contents;- 对于多结点的 diskgroup, 只能有在一个 asm 实例上挂载之后才能被 dorp, 其他结点必须 dismount。为 diskgroup 增加 diskSQL alter diskgroup DATA add disk /dev/oracleasm/VOL5 nameVOL5,/dev/oracleasm/VOL6 name VOL6;从 diskgroup 删除 diskSQL alter diskgroup DATA drop disk VOL5;