1、环境:oracle 10g +redhat linux 5 32 位1.安装 asm 所需要的支持包A.在 oracle 网站下载支持包:http:/ . x/asmlib/rhel5.htmlB.根据 linux 内核下载相应的 asm 安装包:oracleasm-2.6.18-8.el5-2.0.4-1.el5.i686.rpmoracleasm-2.6.18-8.el5PAE-2.0.4-1.el5.i686.rpmoracleasm-2.6.18-8.el5xen-2.0.4-1.el5.i686.rpmoracleasmlib-2.0.3-1.el5.i386.rpmoracleas
2、m-support-2.0.4-1.el5.i386.rpmC.安装 rpm -Uvh . -nodepsD.安装完成后对用来做 asm 的磁盘进行分区(此处我采用三块硬盘:hda,b,d):fdisk /dev/hdanp1回车回车w根据以上参数对所有硬盘都进行进行分区E. 创建 asm 磁盘/etc/init.d/oracleasm configure/etc/init.d/oracleasm createdisk ORACLEASM1 /dev/hda1/etc/init.d/oracleasm createdisk ORACLEASM2 /dev/hdb1/etc/init.d/ora
3、cleasm createdisk ORACLEASM3 /dev/hdd1F.查看 asm 磁盘:/etc/init.d/oracleasm listdisks2.安装 oracle,只装软件(安装略) ,再通过 dbca 创建 asm 和数据库3.创建 asm 实例A.在$ORACLE_HOME/dbs 下创建初始化文件 init+ASM.ora 内容如下:*.asm_diskstring=ORCL:ORACLEASM*.background_dump_dest=/oracle/app/oracle/admin/+ASM/bdump*.core_dump_dest=/oracle/app/
4、oracle/admin/+ASM/cdump*.instance_type=asm*.large_pool_size=12M*.remote_login_passwordfile=SHARED*.user_dump_dest=/oracle/app/oracle/admin/+ASM/udump说明:第一行的 ORCL:ORACLEASM*中 ORCL 为固定格式,ORACLEASM*代表 asm 磁盘,别的没有什么好说的。B.创建目录结构mkdir -p /oracle/app/oracle/admin/+ASM/udumpmkdir -p /oracle/app/oracle/admin
5、/+ASM/bdumpmkdir -p /oracle/app/oracle/admin/+ASM/cdumpC.启动实例:export ORACLE_SID=+ASMsqlplus /as sysdbastartup会报一个 ORA-29701 :unable to connect to Cluster Manager 错误此时需要切换到 root 用户执行:$ORACLE_HOME/bin/localconfig add做完后切换到 oracle 下就可以启动了,不过会报一个:ORA-15110: no diskgroups mounted因为没有创建磁盘组,那么是正常的报错。先不用例会D
6、.创建 spfile。create spfile from pfile;创建完后 spfile,关闭实例(shutdown immediate),在利用 startup 启动一下。E.创建磁盘组 (一般最好成对添加,我此处没有)SQL create diskgroup dgroup1 normal redundancy2 failgroup fgroup1 disk ORCL:ORACLEASM1,ORCL:ORACLEASM23 failgroup fgroup2 disk ORCL:ORACLEASM3;Diskgroup created.查看挂载情况:SQL select name,st
7、ate from v$asm_diskgroup;F.利用 dbca 创建正真的 oracle 数据库。NAME STATE- -DGROUP1 MOUNTED若没有自动挂在,则需要手工挂在:SQL alter diskgroup dgroup1 mount;alter diskgroup dgroup1 mount*ERROR at line 1:ORA-15032: not all alterations performedORA-15017: diskgroup “DGROUP1“ cannot be mountedORA-15030: diskgroup name “DGROUP1“ is in use by another diskgroup因为已经挂载,所以会报错,是正常的。查看参数:SQL show parameter asm_diskgroup;NAME TYPE VALUE- - -asm_diskgroups string DGROUP1G.利用 dbca 创建 oracle 数据库 .注意需要选择 asm 存放。此处需要考虑到有的时候找不到 dgroup1 组,需要输入密码创建,总是提示 spfile 正在使用,此时可以采用关闭+ASM 实例( shutdown immediate), 在重试就行了。