一、配置Clusterware安装环境

设置ssh
clusterware (CRS) Rac Database安装过程中,Oracle Universal Installer (OUI) 必须能够以 oracle 的身份自动将软件复制到所有 RAC 节点。这里我们通过配置ssh oracle用户拥有不输入密码即可访问各节点的能力。

要建立用户等效性,需要在两个节点上以 oracle 用户身份生成用户的公钥和私钥,首先在rac1执行.如下图示:

然后换rac2执行,如下图示:

切回到rac1,接着执行如下命令,如下图示:

提示:下列命令会提示你输入rac2oracle密码,按照提示输入即可,如果失败可重新尝试执行命令


两机相互执行,看看是否还需要输入密码(第一次执行可能要输入密码)
[oracle@
rac1 ~]$ ssh rac1 date
[oracle@
rac1 ~]$ ssh rac2 date
[oracle@
rac1 ~]$ ssh rac1-priv date
[oracle@rac1 ~]$ ssh rac2-priv date

切换至rac2执行
[oracle@
rac2 ~]$ ssh rac1 date
[oracle@
rac2 ~]$ ssh rac2 date
[oracle@
rac2 ~]$ ssh rac1-priv date
[oracle@
rac2 ~]$ ssh rac2-priv date

提示:
注意命令的返回信息,由于rac对节点间时间较敏感,因此如果此处显示节点单时间不一至,建议同步(一般相隔超过20秒就需要同步时间了)

配置asm
注意:必须以root身份进行

首先在rac1执行:
[root@
rac1 ~]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: [  OK  ]
Loading module "oracleasm": [  OK  ]
Mounting ASMlib driver filesystem: [  OK  ]
Scanning system for ASM disks: [  OK  ]

提示:如果本步执行出错(可能出错机率最高的是在Scanning system for ASM),不妨将转换一下命令行的执行方式,改成:
[root@
rac1 ~]# sh /etc/init.d/oracleasm configure
有可能解决你的问题!

还有可能是oracleasm版本不对,要确保版本与系统内核版本一致。

 
然后切换至rac2执行
[root@
rac2 ~]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: [  OK  ]
Loading module "oracleasm": [  OK  ]
Mounting ASMlib driver filesystem: [  OK  ]
Scanning system for ASM disks: [  OK  ]

        

再切换回rac1执行
[root@
rac1 ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdd1
Marking disk "/dev/sdd1" as an ASM disk: [  OK  ]
[root@
rac1 ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sde1
Marking disk "/dev/sde1" as an ASM disk: [  OK  ]
[root@node1 linux-patch]# /etc/init.d/oracleasm scandisks
Scanning system for ASM disks: [  OK  ]

查看一下当前的磁盘组:
Scanning system for ASM disks: [  OK  ]
[root@
rac1 ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2

rac2上也查看一下当前磁盘组:
[root@
rac2 ~]# /etc/init.d/oracleasm scandisks
Scanning system for ASM disks: [  OK  ]
[root@
rac2 ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2

配置完成,准备进入到crs的安装阶段.

 

二、安装Clusterware

注意,在这项配置中,除非特别说明,所有操作都是基于oracle用户的。

检查安装环境
在安装crs之前,建议先利用CVU(Cluster Verification Utility)检查 CRS 的安装前环境
[oracle@
rac1 cluvfy]$ /u01/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n rac1,rac2 –verbose

需要注意几点,其返回的信息中有几个错误可忽略~~

.
VIP 查找一组适合的接口有关,错误信息如下:
错误信息如下:
ERROR:
Could not find a suitable set of interfaces for VIPs.

这是一个bug可以忽略该错误,没什么问题。

.
有一堆包的验证会出现错误,要么提示找不到,要么是版本不对。例如:
Check: Package existence for "compat-gcc-7.3-2.96.128"
  Node Name                       Status                          Comment         
  ------------------------------  ------------------------------  ----------------
  
rac2                           missing                         failed         
  
rac1                           missing                         failed         
Result: Package existence check failed for "compat-gcc-7.3-2.96.128".

Check: Package existence for "compat-gcc-c++-7.3-2.96.128"
  Node Name                       Status                          Comment         
  ------------------------------  ------------------------------  ----------------
  
rac2                           missing                         failed         
  
rac1                           missing                         failed         
Result: Package existence check failed for "compat-gcc-c++-7.3-2.96.128".
...........
...........
这之类的吧

不用管它们,这也是一个BUG,只要确认节点中都已经安装了正确版本的 compat-* 包即可。

 

开始安装crs
rac
的安装并没有太明显的主从关系,一般我们认为,在哪个上面执行了安装,哪个就是主(实际也不完全是这样,主节点安装的时候,也会自动将文件复制到其它节点的)
这里我们选择rac1进行安装,下面的操作需要在图形界面操作,如下图示:

执行安装命令
注意xhost +先,另外由于我们使用了RHEL5,并不被oracle10g所支持,因此在执行安装时需要指定-ignoreSysPrereqs跳过安装时的操作系统检查。

看到欢迎界面,点击next

选择安装临时目录,这里选择默认,如下图示:

选择crs安装目录,如下图示:

环境检查,一般会报系统不符合要求,可以忽略,如下图示:

添加rac2,如下图示:

设置网卡,此处指定eth0Public地址,如下图示:

指定OCR的存储位置,OCR大概需要100M的空间,这里选择External Redundancy,如下图示:

选择voting disk的位置,voting大概需要至少200M的空间,如下图示:


下图为最后的摘要:


没问题就开始安装:

安装最后会跳出需要在每个节点执行的脚本,脚本的执行顺序及输出内容如下示:

执行顺序






rac2节点执行第二个脚本root.sh时最后报了个错,如上图最后三行所示,其解决方法如下:

修改vipca文件
[root@
rac2 opt]# vi /u01/app/oracle/product/10.2.0.1/crs/bin/vipca
找到如下内容:
       Remove this workaround when the bug 3937317 is fixed
       arch=`uname -m`
       if [ "$arch" = "i686" -o "$arch" = "ia64" ]
       then
            LD_ASSUME_KERNEL=2.4.19
            export LD_ASSUME_KERNEL
       fi
       #End workaround
fi后新添加一行:
unset LD_ASSUME_KERNEL

以及srvctl文件
[root@
rac2 opt]# vi /u01/app/oracle/product/10.2.0.1/crs/bin/srvctl
找到如下内容:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
同样在其后新增加一行:
unset LD_ASSUME_KERNEL

保存退出,然后在rac2重新执行root.sh
当然,既然我们已经知道了有这个问题,建议最好在rac2执行root.sh之前,首先修改vipca

其实同时需要你改的还有$ORACLE_HOME/bin/srvctl文件不然等装完数据库之后,srvctl命令也是会报这个错误现在才安装到crs还没有create db以等到创建完数据库,待到需要管理时再修改该文件。

再次执行root.sh结果如下图示:

切换至rac1点击OK完成安装,但会报下面的错误,如下图示:

其实这个错误和在节点rac2上执行脚本root.sh可能遇到的一个错误是一样的,都是因为VIPCA配置失败。可能的错误提示如下示:

****************************************************************************************

The given interface(s), "eth0" is not public. Public interfaces should be used to configure virtual IPs.

****************************************************************************************   

检查这个文件,发现失败的命令是和VIP配置有关的。如下图示:                                                                                                                                     

现在解决VIPCA失败问题。先不要关闭上图中错误的窗口,在rac2节点图形界面上以root身分执行$CRS_HOME/bin/vipca,出现VIP配置助手欢迎界面,如下图示,单击next按钮进入下一个窗口。

在下图中,可以选择要把VIP绑定在哪一个网卡,这里当然选择eth0了,然后单击next


进入下图所示的界面,填入每个VIPIP地址,只需要在IP Alias Name中填入名称,然后使用Tab键,IP Address栏中会自动填入,这些信息都是来自于/etc/hosts,然后单击netx


下图列出配置的总结信息。


开始进行配置,显示配置进度界面如下图所示。可以看到,会配置VIPGSDONS3Application Resource并启动它们。


配置完成后,单击OK按钮,会弹出配置结果窗口,显示VIPCA配置成功,如下图所示:


这时再返回到rac1节点的安装页,重新执行安装后的检查,这时就没有错了,oracle  clusterware安装成功了,如下图所示:


最后可以通过这样的几个命令确认clusterware安装成功,如下图示:


八、安装database软件

还是在rac1上操作,执行安装命令,注意xhost +先,另外由于我们使用了RHEL5,并不被oracle10g所支持,因此在执行安装时需要指定-ignoreSysPrereqs跳过安装时的操作系统检查。如下图示:

欢迎界面,直接next


选择安装类型,这里我们选择企业版安装。如下图示:


选择安装目录,如下图所示:


选择节点安装,同时选择所有节点,如下图所示:

安装环境检查,根据情况修正或忽略。这里我全忽略了,如下图所示:

在安装过程中,选择是否建库,推荐在完成安装后再建库,所以这里选择Install databases software only选项,只安装软件即可,如下图所示:


摘要信息,如下图所示,确认一下设置,没问题就点击install进行安装。

开始进行安装,这个安装进度界面中显示正在运行Remote operation in progress,含义和clusterware中相同,也是把本地$ORACLE_HOME目录下所有内容打包,通过scp复制到其他节点,并解压到相同目录。如下图所示:


安装最后会弹出一个提示窗口,如下图所示,提示在两个节点执行root.sh这时要执行的是$ORACLE_HOME下的root.sh,先在哪个节点执行都可以。



两个节点都执行完root.sh后,单击ok按钮,安装完毕,如下图所示。