一、基本环境需求系统环境:系统版本:RHEL5U8 x86_64ORACLE版本:ORACLE 10.2.1IP地址odb1 192.168.100.144192.168.101.144odb2 192.168.100.143192.168.101.143服务器关闭Selinux/iptables二、前期准备工作修改两台计算机的主机名字odb1 odb1-priv odb1-vipobd2 odb2-priv odb2-vip配置yum源码,保证数据包都完整安装,oracleRAC最讨厌少包,确包的问题,大多数都是由于rpm包引起的分别在两台机器上创建oracle用户和oinstall dba两个组准备六块共享盘,我们在此实验中可以借助virtualbox来模拟,在环境中我们可以使用EMC netapp 来规划data×2 10G  数据盘 根据业务来划分大小ocr×2   512M  集群信息注册盘virdisk×3 512M需要注意的是 在oracle11g中不支持virtualdis 只支持asm切忌要格式创建的硬盘,格式化只需要在一台机器上配置测试就可以了配置双向SSH无密码认证,SSH需要两台机器互相连接,并且需要SSH本身能SSH连接,不然会在oracle集群节点报错创建raw(裸)设备,需要修改RAC机器的节点上的两个配置文件还需要注意raw权限的问题  chmodchown注意:需要两边的raw设备端口号一样,不然会报错,例如:我们在节点A上面RAW1对应的是port1,那么我们需要在节点B上的RAW1对应的也是port1,端口不能错误。不然会发生错误修改系统参数文件,配置oracle用户的环境变量三、实施前期准备工作1.创建oracle用户两个节点配置创建一样[root@rac2 ~]# groupadd oinstall[root@rac2 ~]# groupadd dba[root@rac2 ~]# useradd -d /home/oracle -g oinstall -G dba -s /bin/bash oracle[root@rac2 ~]# echo "123.com" | passwd --stdin oracle[root@rac1 oracle]# echo "123.com" | passwd --stdin oracleChanging password foruser oracle.passwd: all authentication tokens updated successfully.[root@rac1 oracle]#2.修改计算机名字,以及修改hosts文件[root@odb1 ~]# hostnameodb1修改计算机名字的两种方式临时修改:hostnameodb1永久修改:vim /etc/sysconfig/networkhots文件需要修改,双节点需要认证 两台机器配置是一样的,另一台机器直接scp过去就可以[root@odb1 ~]# cat /etc/hosts127.0.0.1   localhost192.168.100.144 odb1192.168.100.143 odb2192.168.101.144 odb1-priv192.168.101.143 odb2-priv192.168.100.252 odb1-vip192.168.100.253 odb2-vip[root@odb1 ~]#3.修改yum源服务器,我们做是本地yum服务器,两台机器配置完全一样,scp到新的机器就可以mount/dev/cdrom/mnt如下附件是yum本地源的配置,因为RHEL5.x系列配置公网yum比较麻烦,rpm安装更恐怖,只能本地yum配置[root@odb1 ~]# cat /etc/yum.repos.d/opensource.repo[opensource]name=opensourcebaseurl=file:///mnt/Serverenabled=1gpgcheck=0[opensource1]name=opensource1baseurl=file:///mnt/VTenabled=1gpgcheck=0[opensource2]name=opensource2baseurl=file:///mnt/Clusterenabled=1gpgcheck=0[root@odb1 ~]#4.共享共享存储磁盘的配置,我们在这里是模拟的,因此我们在第一个节点上添加硬盘共享,然后第二个节点就可以使用用到的技术 LVM 几个命令:pvcreate cgcreate lvcreate需要格式化如下是裸设备的配置修改,两台机器配置的方式一模一样;root@rac1 /home]# cat /etc/sysconfig/rawdevices# raw device bindings# format:  
#
# example: /dev/raw/raw1 /dev/sda1# /dev/raw/raw2 8 5/dev/raw/raw1/dev/sdb1/dev/raw/raw2/dev/sdc1/dev/raw/raw3/dev/sdd1/dev/raw/raw4/dev/sde1/dev/raw/raw5/dev/sdf1/dev/raw/raw6/dev/sdg1/dev/raw/raw7/dev/sdh1[root@rac1 /home]#[root@rac1 /home]# cat /etc/udev/rules.d/60-raw.rules# Enter raw device bindings here.## An example would be:# ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"# to bind /dev/raw/raw1 to /dev/sda, or# ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"# to bind /dev/raw/raw2 to the device with major 8, minorACTION=="add", KERNEL=="sdb", RUN+="/bin/raw /dev/raw/raw1 %N"ACTION=="add", KERNEL=="sdc", RUN+="/bin/raw /dev/raw/raw2 %N"ACTION=="add", KERNEL=="sdd", RUN+="/bin/raw /dev/raw/raw3 %N"ACTION=="add", KERNEL=="sde", RUN+="/bin/raw /dev/raw/raw4 %N"ACTION=="add", KERNEL=="sdf", RUN+="/bin/raw /dev/raw/raw5 %N"ACTION=="add", KERNEL=="sdg", RUN+="/bin/raw /dev/raw/raw6 %N"ACTION=="add", KERNEL=="sdh", RUN+="/bin/raw /dev/raw/raw7 %N"[root@rac1 /home]#重启服务[root@rac1 /home]# /etc/rc.d/init.d/rawdevices restartAssigning devices:/dev/raw/raw1--> /dev/sdb1/dev/raw/raw1: bound to major 8, minor 17/dev/raw/raw2--> /dev/sdc1/dev/raw/raw2: bound to major 8, minor 33/dev/raw/raw3--> /dev/sdd1/dev/raw/raw3: bound to major 8, minor 49/dev/raw/raw4--> /dev/sde1/dev/raw/raw4: bound to major 8, minor 65/dev/raw/raw5--> /dev/sdf1/dev/raw/raw5: bound to major 8, minor 81/dev/raw/raw6--> /dev/sdg1/dev/raw/raw6: bound to major 8, minor 97/dev/raw/raw7--> /dev/sdh1/dev/raw/raw7: bound to major 8, minor 113done[root@rac1 /home]#授权在两个节点都需要[root@odb1 ~]# chown -R root:oinstall /dev/raw/raw[1-2][root@odb1 ~]# chown -R oracle:oinstall /dev/raw/raw[3-5][root@odb1 ~]# chown -R oracle:dba /dev/raw/raw[6-8][root@odb1 ~]# chmod 660 /dev/raw/raw*[root@odb1 ~]# vim /etc/udev/rules.d/50-udev.rulesKERNEL=="raw[1-7]", OWNER="oracle"GROUP="dba", MODE="0660"5.配置SSH双向认证三部曲,如下三步 需要在RAC两个节点上都同时配置[oracle@odb1 ~]$ ssh-keygen -t rsa 一路回车[oracle@odb1 ~]$ cd.ssh/[oracle@odb1 .ssh]$ ssh-copy-id-i id_rsa.pub oracle@192.168.100.143[oracle@odb1 .ssh]$ ssh-copy-id-i id_rsa.pub oracle@192.168.100.144需要注意,在配置完成之后,需要SSH手动连接测试,保证正常因为有的会是yes因为如果在RAC节点检查的时候,没有安装会报错两台节点在oracle用户下操作sshodb1sshodb2sshodb1-privsshodb2-priv6.yum安装oracle需要使用的包yum -y installinstallcompat-db.* binutils* binutils-devel.* control-center.* control-center-devel.* control-center.* gcc gcc-c++ glibc-utils glibc.* glibc-common.* glibc-devel.* glibc-headers.* compat-glibc.* glibc-common libstdc++.* libstdc++-devel.* libstdc++44-devel.* makesetarch installcompat-db.* compat-db binutils control-center gcc gcc-c++ glibc glibc-devel glibc-common libstdc++ libstdc++-devel makeopenmotif setarch libaio compat-libstdc++ compat-gcccompat- libXp openmotif22 compat-db7.配置环境变量配置环境变量su - oraclevim .bashrc 两个节点配置完全一样,只需要修改SID就可以exportORACLE_BASE=/u01/app/oracleexportORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1exportORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1exportPATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$PATHexportORACLE_OWNER=oracleexportORACLE_SID=odb1exportORACLE_TERM=vt100exportTHREADS_FLAG=nativeexportLD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATHexportLANG=en_USumask0228.创建环境变量节点 两个节点都需要创建[root@odb1 ~]# mkdir /u01[root@odb1 ~]# chown oracle:oinstall /u01/ -R[oracle@odb1 ~]$ mkdir$ORACLE_BASE/admin-p[oracle@odb1 ~]$ mkdir-p $ORACLE_HOME[oracle@odb1 ~]$ mkdir-p $ORA_CRS_HOME[oracle@odb1 ~]$ mkdir-p $ORACLE_BASE/oradata/r10g9.修改oracle最大连接数文件(两台节点都需要修改)cat/etc/security/limits.comoracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 6553610.添加oracle的pam认证模块cat/etc/pam.d/loginsession required /lib/security/pam_limits.so11.修改内核参数 两台节点都配置vim /etc/sysctl.confkernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file‐max = 65536net.ipv4.ip_local_port_range = 1024 65000net.core.rmem_default = 1048576net.core.rmem_max = 1048576net.core.wmem_default = 262144net.core.wmem_max = 262144sysctl -p 生效12.修改hangcheck time内核参数 两台节点都安装vim /etc/modprobe.conf 最后面添加如下一行options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180然后生效:modprobe -vhangcheck-timer13.自己搭建NTP时间服务器,要么自己来inetrnet时间服务器ntpdate ntp.api.bz关于搭建NTP时间服务器,查看我的博文;时间服务器每小时同步一样crontab-e* 1 * * * ntpdate -s ntp.api.bz至此准备环境配置完成,接下来安装RAC安装