操作系统版本RHEL5.5-64bit,oracle10g,vmware workstation6.5,clusterware10.0.2版本的
两台虚拟机双网卡,本地磁盘40G,共享磁盘9G,共享磁盘选择立即分配所有磁盘空间,两台虚拟机内存都是1.5G
1.配置hosts文件可以让两台虚拟机可以通过名称互相解析
   
   
   
   
  1. 192.168.183.131  node1 
  2. 192.168.183.132  node2 
  3. 192.168.183.141  node1-vip 
  4. 192.168.183.142  node2-vip 
  5. 172.16.1.1  node1-priv 
  6. 172.16.1.2  node2-priv 
2.给虚拟机添加共享磁盘,首先在node1上面添加一块共享磁盘,选择分配全部的空间(虚拟机下一定要这么设置,否则会导致共享存储配置不成功)
node1添加共享磁盘(sharedisk.vmdk)-开机-关机,然后编辑node1的虚拟机配置文件,添加如下选项:
    
    
    
    
  1. scsi1.present = "TRUE" 
  2. scsi1.virtualDev = "lsilogic"  
  3. scsi1.sharedBus = "VIRTUAL" 
  4. scsi1:1.present = "TRUE" 
  5. scsi1:1.mode = "independent-persistent" 
  6. scsi1:1.fileName = "sharedisk.vmdk" 
  7. scsi1:1.deviceType = "disk" 
  8.  
  9. disk.locking = "FALSE" 
  10. diskLib.dataCacheMaxSize = "0"  
  11. diskLib.dataCacheMaxReadAheadSize = "0"  
  12. diskLib.dataCacheMinReadAheadSize = "0"  
  13. diskLib.dataCachePageSize = "4096"  
  14. diskLib.maxUnsyncedWrites = "0" 
然后编辑node2的虚拟机配置文件,添加如下选项:
    
    
    
    
  1. scsi1.present = "TRUE" 
  2. scsi1.virtualDev = "lsilogic"  
  3. scsi1.sharedBus = "VIRTUAL" 
  4. scsi1:1.present = "TRUE" 
  5. scsi1:1.mode = "independent-persistent" 
  6. scsi1:1.fileName = "D:\vmware workstation\node1\sharedisk.vmdk" 
  7. scsi1:1.deviceType = "disk" 
  8.  
  9. disk.locking = "FALSE" 
  10. diskLib.dataCacheMaxSize = "0"  
  11. diskLib.dataCacheMaxReadAheadSize = "0"  
  12. diskLib.dataCacheMinReadAheadSize = "0"  
  13. diskLib.dataCachePageSize = "4096"  
  14. diskLib.maxUnsyncedWrites = "0" 
关闭虚拟机软件,然后分别打开两台虚拟机的电源,共享磁盘配置完毕
3.oracle安装环境准备
这里参照我以前的文章,oracle安装前期准备工作的设置
http://lymrg.blog.51cto.com/1551327/754136
在两个节点上面创建对应文件夹
     
     
     
     
  1. [root@node1 oracle]# ll 
  2. 总计 12 
  3. drwxr-xr-x 2 oracle oinstall 4096 03-08 16:08 oraasm 
  4. drwxr-xr-x 2 oracle oinstall 4096 03-08 16:08 orabase 
  5. drwxr-xr-x 2 root oinstall 4096 03-08 16:08 oracrs 
这里oracle的变量设置做下更改
     
     
     
     
  1. PATH=$PATH:$HOME/bin  
  2. export ORACLE_BASE=/home/oracle/orabase  
  3. export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1                  
  4. export ORA_CRS_HOME=/home/oracle/oracrs/product/10.2.0/crs     
  5. export ORA_ASM_HOME=/home/oracle/oraasm/product/10.2.0/asm     
  6. export ORACLE_SID=orcl1 PATH=$PATH:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$ORA_ASM_HOME/bin      
  7. export PATH 
4.建立hangcheck模块加载(在两个节点上面操作)
 
     
     
     
     
  1. [root@node1 ~]# find /lib/modules -name "hangcheck-timer.ko" 
  2. [root@node1 ~]# vi /etc/modprobe.conf 
  3. options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 
  4. [root@node1 ~]# vi /etc/rc.local 
  5. /sbin/modprobe hangcheck_timer 
  6. 启动 /sbin/modprobe hangcheck_timer 
  7. 查看启动是否成功 
  8. [root@node1 ~]# grep hangcheck /var/log/messages|tail -2 
  9. Mar 12 15:25:47 node1 kernel: Hangcheck: starting hangcheck timer 0.9.0 (tick is 30 seconds, margin is 180 seconds). 
 
5.配置两台机器无密码访问,这里的配置要在两个节点上面进行
(1)以oracle 用户登录
(2)在oracle 用户的主目录内创建.ssh 目录并设置正确的权限
     
     
     
     
  1. [oracle@node1 ~]$ mkdir ~/.ssh 
  2. [oracle@node1 ~]$ chmod 700 ~/.ssh 
  3. [oracle@node1 ~]$ ssh-keygen -t rsa 
  4. Generating public/private rsa key pair. 
  5. Enter file in which to save the key (/home/oracle/.ssh/id_rsa): 
  6. Enter passphrase (empty for no passphrase): 
  7. Enter same passphrase again: 
  8. Your identification has been saved in /home/oracle/.ssh/id_rsa. 
  9. Your public key has been saved in /home/oracle/.ssh/id_rsa.pub. 
  10. The key fingerprint is
  11. 17:e4:7c:79:8d:a0:00:3b:d9:f7:7a:56:f3:ac:54:4d oracle@node1 
  12.  
  13. [oracle@node1 ~] $ cd ~/.ssh 
  14. [oracle@node1 .ssh]$ ssh node1 cat /home/oracle/.ssh/id_rsa.pub >> 
  15. authorized_keys 
  16. [oracle@node1 .ssh]$ ssh node2 cat /home/oracle/.ssh/id_dsa.pub 
  17. >>authorized_keys 
  18. [oracle@node1 .ssh]$ scp authorized_keys node2:/home/oracle/.ssh/ 
  19. [oracle@node1 .ssh]$ chmod 600 ~/.ssh/authorized_keys 
完成后,在node1 上执行:
     
     
     
     
  1. [oracle@node1 ~]$ ssh node1 date 
  2. [oracle@node1 ~]$ ssh node2 date 
如果不需要输入密码就出现系统日期,说明SSH 配置成功。
6.磁盘规划

wmware上安装oracle10g rac(一)asm+裸设备_第1张图片

这里我把共享磁盘分成6个区,sdb1和sdb2配制成裸设备,作为OCR镜像,sdb5,6,7也配置成裸设备,作votedisk镜像,sdb配置成ASM用来存放数据库
     
     
     
     
  1. fdisk -l 
  2. Disk /dev/sdb: 9663 MB, 9663676416 bytes 
  3. 255 heads, 63 sectors/track, 1174 cylinders 
  4. Units = cylinders of 16065 * 512 = 8225280 bytes 
  5.  
  6.    Device Boot      Start         End      Blocks   Id  System 
  7. /dev/sdb1               1          63      506016   83  Linux 
  8. /dev/sdb2              64         126      506047+  83  Linux 
  9. /dev/sdb3             127        1174     8418060    5  Extended 
  10. /dev/sdb5             127         189      506016   83  Linux 
  11. /dev/sdb6             190         252      506016   83  Linux 
  12. /dev/sdb7             253         315      506016   83  Linux 
  13. /dev/sdb8             316        1174     6899886   83  Linux 
 
配置裸设备
      
      
      
      
  1. vi /etc/udev/rules.d/60-raw.rules 
  2. ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N" 
  3. ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N" 
  4. ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw3 %N" 
  5. ACTION=="add", KERNEL=="sdb6", RUN+="/bin/raw /dev/raw/raw4 %N" 
  6. ACTION=="add", KERNEL=="sdb7", RUN+="/bin/raw /dev/raw/raw5 %N" 
  7. ACTION=="add", KERNEL=="sdb8", RUN+="/bin/raw /dev/raw/raw6 %N" 
  8.  
  9. KERNEL=="raw1", OWNER="root", GROUP="oinstall", MODE="660" 
  10. KERNEL=="raw2", OWNER="root", GROUP="oinstall", MODE="660" 
  11. KERNEL=="raw3", OWNER="root", GROUP="oinstall", MODE="660" 
  12. KERNEL=="raw4", OWNER="root", GROUP="oinstall", MODE="660" 
  13. KERNEL=="raw5", OWNER="root", GROUP="oinstall", MODE="660" 
  14. KERNEL=="raw6", OWNER="oracle", GROUP="oinstall", MODE="664" 
  15.  
  16. [root@node1 ~]# start_udev  
  17. 启动 udev:                                                [确定] 
  18. [root@node1 ~]# ll /dev/raw/raw* 
  19. crw-rw---- 1 root   oinstall 1621 03-11 22:43 /dev/raw/raw1 
  20. crw-rw---- 1 root   oinstall 1622 03-11 22:43 /dev/raw/raw2 
  21. crw-rw---- 1 root   oinstall 1623 03-11 22:43 /dev/raw/raw3 
  22. crw-rw---- 1 root   oinstall 1624 03-11 22:43 /dev/raw/raw4 
  23. crw-rw---- 1 root   oinstall 1625 03-11 22:43 /dev/raw/raw5 
  24. crw-rw-r-- 1 oracle oinstall 1626 03-11 22:43 /dev/raw/raw6 
在node2上面执行 partprobe,然后同样建立裸设备
7.在两个节点上面安装,注意要下载和自己内核版本对应的包
      
      
      
      
  1. rpm -ivh oracleasm-support-2.1.7-1.el5.x86_64.rpm 
  2. rpm -ivh oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm 
  3. rpm -ivh oracleasmlib-2.0.4-1.el5.x86_64.rpm 
在两个节点上面执行/etc/init.d/oracleasm configure
分别输入oracle,dba,y,y
在node1上面配置ASM
       
       
       
       
  1. [root@node1 ~]#/etc/init.d/oracleasm createdisk VOL1 /dev/sdb8 
  2. [root@node1 ~]#/etc/init.d/oracleasm scandisks 
  3. [root@node1 ~]#/etc/init.d/oracleasm listdisks 
  4. VOL1 
在node2上面执行扫描(不需要配置)
       
       
       
       
  1. /etc/init.d/oracleasm scandisks 
  2. /etc/init.d/oracleasm listdisks 
  3. VOL1 
8.开启安装进程,在两个节点上面以root用户身份运行
然后切换到oracle用户,开始安装clusterware
1)选择CRS的安装目录

wmware上安装oracle10g rac(一)asm+裸设备_第2张图片

2)两个集群节点的配置

wmware上安装oracle10g rac(一)asm+裸设备_第3张图片

3)选择eth0网卡为公网IP

wmware上安装oracle10g rac(一)asm+裸设备_第4张图片

4)配置OCR存储位置

wmware上安装oracle10g rac(一)asm+裸设备_第5张图片

5)配置votedisk存储位置

wmware上安装oracle10g rac(一)asm+裸设备_第6张图片

6)安装

wmware上安装oracle10g rac(一)asm+裸设备_第7张图片

7)执行最后的安装脚本

在节点node1上面执行

       
       
       
       
  1. [root@node1 oracrs]# /home/oracle/orabase/oraInventory/orainstRoot.sh 
  2.  
  3. Changing permissions of /home/oracle/orabase/oraInventory to 770. 
  4.  
  5. Changing groupname of /home/oracle/orabase/oraInventory to oinstall. 
  6.  
  7. The execution of the script is complete 

在节点node2上面执行

       
       
       
       
  1. [root@node2 oracrs]# /home/oracle/orabase/oraInventory/orainstRoot.sh 
  2.  
  3. Changing permissions of /home/oracle/orabase/oraInventory to 770. 
  4.  
  5. Changing groupname of /home/oracle/orabase/oraInventory to oinstall. 
  6.  
  7. The execution of the script is complete 

在节点node1上面执行

       
       
       
       
  1. [root@node1 oracle]# /home/oracle/oracrs/product/10.2.0/crs/root.sh 

在节点node2上面执行

       
       
       
       
  1. [root@node2 oracle]# /home/oracle/oracrs/product/10.2.0/crs/root.sh 

安装结束,查看节点状态

       
       
       
       
  1. [root@node2 bin]# ./crs_stat -t 
  2. Name           Type           Target    State     Host         
  3. ------------------------------------------------------------ 
  4. ora.node1.gsd  application    ONLINE    ONLINE    node1        
  5. ora.node1.ons  application    ONLINE    ONLINE    node1        
  6. ora.node1.vip  application    ONLINE    ONLINE    node1        
  7. ora.node2.gsd  application    ONLINE    ONLINE    node2        
  8. ora.node2.ons  application    ONLINE    ONLINE    node2        
  9. ora.node2.vip  application    ONLINE    ONLINE    node2