历经波折,终于在VMWare虚拟机Redhat Enterprise Linux 6,已经安装单节点Oracle database 11G R2的状况下,成功配置了Oracle11GR2 ASM,现记录过程以下:html
环境:VMWare Player 5.0.2 build-1031769,Red hat Enterprise Linux 6.4, Oracle 11.2.0.3, Oracle Grid Infrastructure 11.2.0.3(开始使用11.2.0.1吃尽了苦头) sql
1、配置用户grid与oracle用户oracle
[grid@RHVM Desktop]$ id oracle
uid=501(oracle) gid=502(oinstall) groups=502(oinstall),501(dba),1300(asmdba),1200(asmadmin) app
oracle用户原本没有加asmadmin,可是/dev/asm*的权限是grid:asmadmin,致使没有权限不能迁移,故加上该权限。测试
[grid@RHVM Desktop]$ id grid
uid=1001(grid) gid=502(oinstall) groups=502(oinstall),501(dba),1200(asmadmin),1300(asmdba)ui
grid用户设置infrastructure的环境变量:spa
# User specific aliases and functions
ORACLE_BASE=/opt/app/oraclegrid
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid
ORACLE_SID=+ASM
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"orm
2、使用udev配置Oracle ASMserver
本部分主要参考”风哥“的”Red Hat Enterprise Linux 6使用udev设备配置Oracle ASM总结文档“,详见连接http://www.itpux.com/thread-65-1-1.html。这里使用了“多块磁盘不分区方式”:xml
1.准备如下三块磁盘(不分区),用途以下:
crsdg 10g
DGSYSTEM 10g
DGDATA 10g
[root@oradb ~]# fdisk –l
Disk /dev/sdc: 10.7 GB, 10737418240 bytes
Disk /dev/sdd: 10.7 GB, 10737418240 bytes
Disk /dev/sde: 10.7 GB, 10737418240 bytes
2.配置udev
2.1 编辑/etc/scsi_id.config文件,若是该文件不存在,则建立该文件,添加以下行:
options=--whitelisted --replace-whitespace
2.2 获取须要绑定为ASM Disk的磁盘uuid,若是使用VMWARE虚拟机,则须要在须要在vmware配置文件中加入disk.EnableUUID = "TRUE",
才能够获取uuid。 好比咱们要使用/dev/sdc做为ASM磁盘,那么获取方法以下:
scsi_id --whitelisted --replace-whitespace --device=/dev/sdc
以此获取sdc、sdd、sde的scsi id后.
2.三、编写udev rules文件,PROGRAM中写scsi_id命令,RESULT中写上面命令中返回的uuid,这跟RHEL5中没什么区别,只是scsi_id命令的语法发生变化了。
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sdc", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29b1fa3aefb13e00666faf4f81c", NAME="asm-crs-sdc", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdd", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29c913069e64a31376645383443", NAME="asm-sysdg-sdd", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sde", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c292204a4f53b2547ff4c3650776", NAME="asm-datadg-sde", OWNER="grid", GROUP="asmadmin", MODE="0660"
2.四、重启udev设备
/sbin/udevadm control --reload-rules
/sbin/start_udev
2.五、检查udev设备
[root@oradb rules.d]#ls -lsa /dev/asm*
0 brw-rw----. 1 grid asmadmin 8, 32 Jul 18 19:50 /dev/asm-crs-sdc
0 brw-rw----. 1 grid asmadmin 8, 64Jul 18 19:50 /dev/asm-datadg-sde
0 brw-rw----. 1 grid asmadmin 8, 48 Jul 18 19:50 /dev/asm-sysdg-sdd
3.测试udev设备
用udevadm 进行测试,注意udevadm 命令不接受/dev/sdc 这样的挂载设备名,必须是使用
/sys/block/sdc这样的原始设备名。
ls -lsa /dev/block/
udevadm info --query=all --path=/sys/block/sdc
udevadm info --query=all --path=/sys/block/sdd
udevadm info --query=all --path=/sys/block/sde
udevadm info --query=all --name=asm-crs-sdc
udevadm info --query=all --name=asm-datadg-sde
udevadm info --query=all --name=asm-sysdg-sdd
/dev/sdc设备在udev启动之后将会绑定为/dev/asm-crs-sdc
/dev/sdd设备在udev启动之后将会绑定为/dev/asm-sysdg-sdd
/dev/sde设备在udev启动之后将会绑定为/dev/asm-datadg-sde
/sbin/udevadm test /sys/block/sdc
/sbin/udevadm test /sys/block/sdd
/sbin/udevadm test /sys/block/sde
3、安装oracle 11g grid infrastructure:
1.运行runInstaller,而后选择"选择”configure Grid Infrastructure for a standalone server".
2.建立ASM Disk Group时,Redudency选择“External”,Add Disks选择“All Disks”,Change Discovery Path 输入/dev/asm*,而后全选建好的三个Disk Path;
3. Perform Prerequiste checks,选Ignore all;
4.安装到76%时报错:OUI-10094:Problem in saving inventory. Installation cannot continue./opt/app/oracle/orainventory/ContentsXML/comps.xml (Permission denied)
执行如下语句:
1).使用deinstall.sh删除不成功的安装;
2). 从新建立$ORACLE_HOME目录,并在该目录下Create a new oraInst.loc file:
This file should have the follow content:inventory_loc=/opt/app/oraclegrid/product/11.2.0/grid/oraInventoryinst_group=oinstall
3).start OUI with the following options:
./runInstaller -invPtrLoc $ORACLE_HOME/oraInst.locThe -invPtrLoc flag is used to locate the oraInst.loc file. 5.执行root.sh
6. 在update Inventory 报错了 [INS-20802] update Inventory failed. 网上说这是个dummy进程能够忽略,因而跳过;
7.此时 +ASM实例已自动建立,并自动启动,listener也自动启动,端口为1521,此时oracle database的listener不须要再启动,会zidon注册到这个listener中。
[grid@RHVM ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 1 21:43:49 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Automatic Storage Management option
SQL> show parameter instance
NAME TYPE
------------------------------------ ---------------------------------
VALUE
------------------------------
cluster_database_instances integer
1
instance_name string
+ASM
instance_number integer
1
instance_type string
asm
SQL>
4、将数据迁移到ASM:
1.使用sys用户登陆到EM,在server标签中选择Migrate to ASM,升级后全部文件都迁移到"+DATA"目录下:
+DATA/ipcdb/datafile/system.257.835737429
+DATA/ipcdb/datafile/sysaux.258.835737491
+DATA/ipcdb/datafile/undotbs1.259.835737555
+DATA/ipcdb/datafile/users.262.835737591
+DATA/ipcdb/datafile/user_02.261.835737589
+DATA/ipcdb/datafile/users_03.260.835737581
+DATA/ipcdb/datafile/users_04.269.835738407