一、安装环境

1、实验环境

虚拟机:VMware Workstation 8.0.3_64bit

ORACLEOracle Database11g11.2.0.3.0-64bit

操作系统:Red HatEnterprise Linux  6.5


2、节点配置

描述
节点一节点二节点三ISCSI存储
主机名称note1note2note3iscsi-asm
Public IP172.16.1.7(vlan3)172.16.1.8(vlan3)172.16.1.9(vlan3)172.16.1.20(vlan3)
Private IP192.168.1.11(vlan5)192.168.1.12(vlan5)192.168.1.13(vlan5)
Virtual IP172.16.1.17172.16.1.18172.16.1.19
Scan IP172.16.1.10、172.16.1.11、172.16.1.12
实例名racdb1racdb2racdb3
/etc/hosts

127.0.0.1  localhost.localdomain  localhost
 #Public IP
 172.16.1.7    note1
 172.16.1.8    note2
 172.16.1.9    note3
 #Virtual IP
 172.16.1.17   note1-vip
 172.16.1.18   note2-vip
 172.16.1.19   note3-vip
 #Private IP
 192.168.1.11  note1-priv
 192.168.1.12  note2-priv
 192.168.1.13  note3-priv
 #Scan IP (scan ip为奇数,推荐3个)
 172.16.1.10    cluster-scan
 172.16.1.11    cluster-scan

 172.16.1.12    cluster-scan

172.16.1.20  iscis-asm


以上环境配置过程略,可通过VM的Clone功能克隆多台机器之后变更IP和主机名即可。


二、系统基本配置

1、搭建存储服务器

A、添加磁盘创建软件RAID5

wKioL1cgoHPi8UF4AADBUvH0cos009.jpg

创建软件RAID5,共3块磁盘,无热备,具体请查阅相关资料

[root@iscsi-asm ~] # mdadm –Cv /dev/md0 –l5 –n3/dev/sd[bcd]1

B、配置ISCSI磁盘

安装服务器端使用的scis-target-utils包,安装前先确认以下安装包已安装:kernel-sourcekernelgccperl

[root@iscsi-asm~] # rpm –ivh scsi-target-utils*.rpm

    // RedHat 6在光盘Packages目录下

                                               // RedHat 5在光盘ClusterStorage目录下

配置服務端/etc/tgt/targets.conf文件

[root@iscsi-asm ~] # cat >> /etc/tgt/targets.conf << EOF

> <targetiqn.2016-04.com.iscsi-asm.raid5:target1>

>   backing-store  /dev/md0

> </target>

> EOF

启动ISCSI服务

[root@iscsi-asm ~] # service tgtd restart                //重启iscsi服务

[root@iscsi-asm ~] # chkconfig --level 2345 tgtd on      //设置开机自启动

[root@iscsi-asm ~] # chkconfig --list tgtd               //查看自启动项

[root@iscsi-asm ~] # tgt-admin --show target1               //查看tgtd是否配置成功

 

2、挂载ISCSI磁盘

A、节点一note1 上:

[root@note1 ~] # rpm –ivh iscsi-initiator-utils*.rpm

[root@note1 ~] # service iscsid restart                   //重启iscsi服务

[root@note1 ~] # chkconfig --level 2345 iscsid on         //设置开机自启动

[root@note1 ~] # chkconfig --list iscsid                  //查看自启动项

[root@note1 ~] # iscsiadm –m node –p 172.16.1.20 –l    //登录iscsi存储

B、节点二note2 上:

[root@note2 ~] # rpm –ivh iscsi-initiator-utils*.rpm

[root@note2 ~] # service iscsid restart                    //重启iscsi服务

[root@note2 ~] # chkconfig --level 2345 iscsid on          //设置开机自启动

[root@note2 ~] # chkconfig --list iscsid                   //查看自启动项

[root@note2 ~] # iscsiadm –m node –p 172.16.1.20 –l     //登录iscsi存储

C、节点三note3 上:

[root@note3 ~] # rpm –ivh iscsi-initiator-utils*.rpm

[root@note3 ~] # service iscsid restart                     //重启iscsi服务

[root@note3 ~] # chkconfig --level 2345 iscsid on          //设置开机自启动

[root@note3 ~] # chkconfig --list iscsid                   //查看自启动项

[root@note3 ~] # iscsiadm –m node –p 172.16.1.20 –l     //登录iscsi存储

D、划分ISCSI磁盘

[root@note1 ~] # fdisk /dev/sdb                   //挂载iscsi存储后的磁盘,请勿格式化

wKiom1cgoiyz9hdCAABu_4hpSYY951.jpg

2、UDEV配置ASM

AASM磁盘的规划

ASM磁盘组
磁盘组大小ASM冗余ASM磁盘ISCSI磁盘路径存储存放规则
+CRS20G
EXTERN
/dev/asm-crs1
/dev/sdb1OCR、表决磁盘
+DATA60GEXTERN/dev/asm-db1/dev/sdb2数据文件
+ARCH40GEXTERN/dev/asm-db2/dev/sdb3归档文件

若表决磁盘所在磁盘组属性为EXTERNAL,为一块,若为NORMAL,则需要三块,若为HIGH,则需要五块,需要为奇数,这是为了发生脑裂时,用于表决。


B、配置UDEV

[root@note1 ~] # scsi_id –g –u –d /dev/sdb       //获取磁盘UUID

1IET_00010001

[root@note1 ~] #vim /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL==”sdb1“, BUS==”scsi”,PROGRAM==”/sbin/scsi_id -g -u -d /dev/$parent”,RESULT==” 1IET_00010001”,NAME=”asm-crs″, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″

KERNEL==”sdb2“, BUS==”scsi”, PROGRAM==”/sbin/scsi_id-g -u -d /dev/$parent”,RESULT==” 1IET_00010001”, NAME=”asm-db1”, OWNER=”grid”,GROUP=”asmadmin”, MODE=”0660″

KERNEL==”sd?1″, BUS==”scsi”,PROGRAM==”/sbin/scsi_id -g -u -d /dev/$parent”,RESULT==” 1IET_00010001”,NAME=”asm-db2″, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″

 

UDEV配置文件传到其他节点

[root@note1 ~] # rsync –r /etc/udev/rules.d/99-oracle-asmdevices.rules 172.16.1.8: /etc/udev/rules.d/

[root@note1 ~] # rsync –r /etc/udev/rules.d/99-oracle-asmdevices.rules 172.16.1.9: /etc/udev/rules.d/

 

C、启动UDEV

[root@note1 ~] #start_udev

[root@note2 ~] #start_udev

[root@note3 ~] #start_udev

wKioL1cgpTWAsrwTAACx1rN4o4U538.jpg


三、配置ORACLE軟件安裝环境

1、安裝oracle RAC所需的linux軟件包

[root@note1~] # yum –y install binutils* compat-libstdc++* elfutils-libelf* elfutils-libelf-devel* compat-libcap1 *  elfutils-libelf-devel-static* gcc* gcc-c++* glibc* glibc-common* glibc-devel* glibc-headers* ksh* libaio* libaio-devel* libgcc*libgomp* libstdc++* libstdc++-devel* make* sysstat* unixODBC * unixODBC-devel*

节点二和节点三上执行相同的命令,将所需的包安装上。


 

2、配置集群时间同步服务

这里使用集群时间同步服务(CTSS),需要卸载网络时间协议(NTP

[root@note1 ~] #service ntpd stop

[root@note1 ~] #chkconfig –level 2345 ntpd off

[root@note1 ~] #rm –rf /etc/ntp.conf

节点二和节点三上执行相同的命令,卸载NTP

在集群安装完后,要确认ctssd是否处于活动状态

[grid@note1 ~] #crsctl check ctss


1、  配置内核参数

三个节点执行如下脚本:

#!/bin/bash
prepareSystem(){
# Set SElinux to disabled mode regardless of its initial value
  sed -i -e's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
  setenforce 0
# stop iptables
  /etc/init.d/iptables stop
  chkconfig --level 0123456 iptables off
  chkconfig --level 0123456 ip6tablesoff
}
 
Configure1(){
    cat >> /etc/sysctl.conf<<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF
}
Configure2(){
    cat >>/etc/security/limits.conf <<EOF
oracle   soft  nproc  2047
oracle   hard  nproc  16384
oracle   soft  nofile 1024
oracle   hard  nofile 65536
grid   soft  nproc  2047
grid   hard  nproc  16384
grid   soft  nofile 1024
grid   hard  nofile 65536
EOF
}
Configure3(){
    cat >> /etc/pam.d/login<<EOF
session    required     pam_limits.so
EOF
}
 
prepareSystem
Configure1 && sysctl -p
Configure2
Configure3

[root@note1 ~] # sh configure.sh

[root@note2 ~] # sh configure.sh

[root@note3 ~] # sh configure.sh


2、  创建RAC相关权限组,用户和目录

A、  创建相关组(三个节点上执行)

[root@note1 ~] # groupadd oinstall

[root@note1 ~] # groupadd asmadmin

[root@note1 ~] # groupadd asmdba

[root@note1 ~] # groupadd asmoper

[root@note1 ~] # groupadd dba

[root@note1 ~] # groupadd oper


B、  创建grid用户:

节点一ORACLE_SID=+ASM1

[root@note1 ~] # useradd -g oinstall -G asmadmin,asmdba,asmoper grid

[root@note1 ~] # passwd grid

节点二ORACLE_SID=+ASM2

[root@note2 ~] # useradd -g oinstall -G asmadmin,asmdba,asmoper grid

[root@note2 ~] # passwd grid

节点三ORACLE_SID=+ASM3

[root@note3 ~] # useradd -g oinstall -G asmadmin,asmdba,asmoper grid

[root@note3 ~] # passwd grid

编辑grid用户的环境配置文件(~/.bash_profile,加入如下内容

export PS1="`/bin/hostname -s`-> "

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=+ASM1   #节点二为+ASM2,节点三为+ASM3

export ORACLE_BASE=/u/app/grid

export ORACLE_HOME=/u/app/11.2.0/grid

export ORACLE_TERM=xterm

export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'

export TNS_ADMIN=$ORACLE_HOME/network/admin

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

umask 022


C、  创建ORACLE用户

节点一:ORACLE_SID=racdb1

[root@note1 ~] # usermodd -g oinstall -G dba,oper,asmdba oracle

[root@note1 ~] # passwd oracle

节点二:ORACLE_SID=racdb2

[root@note2 ~] # usermodd -g oinstall -G dba,oper,asmdba oracle

[root@note2 ~] # passwd oracle

节点三:ORACLE_SID=racdb3

[root@note3 ~] # usermodd –g oinstall -G dba,oper,asmdba oracle

[root@note3 ~] # passwd oracle

编辑oracle用户的环境配置文件(~/.bash_profile,加入如下内容

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_SID=racdb1  #节点二为racdb2,节点三为racdb3

export ORACLE_BASE=/u/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_UNQNAME=racdb

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORACLE_TERM=xterm

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/jdbc/lib

exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'

umask 022

 

5、创建软件安装目录

在三个节点上执行以下命令:

[root@note1 ~] # mkdir -p/u/app/grid

[root@note1 ~] # mkdir -p/u/app/11.2.0/grid

[root@note1 ~] # chown -Rgrid:oinstall /u/app

[root@note1 ~] # mkdir -p/u/app/oracle

[root@note1 ~] # chown oracle:oinstall/u/app/oracle

[root@note1 ~] # chmod -R775 /u



四、安装RAC集群软件

1、  安装cvuqdisk

Cvuqdisk rpm包在gridrpm目录中

三个节点上执行:

[root@note1 ~] # CVUQDISK_GRP=oinstall;export CVUQDISK_GRP

[root@note1 ~] # rpm -ivh cvuqdisk-1.0.9-1.rpm

[root@note2 ~] # CVUQDISK_GRP=oinstall;export CVUQDISK_GRP

[root@note2 ~] # rpm -ivh cvuqdisk-1.0.9-1.rpm

[root@note3 ~] # CVUQDISK_GRP=oinstall;export CVUQDISK_GRP

[root@note3 ~] # rpm -ivh cvuqdisk-1.0.9-1.rpm


2、  安装Grid软件

许多文档都在安装之前配置了各节点之间oraclegrid用户的SSH信任关系,这里使用软件配置选项进行配置。其实就是使用了grid软件包中sshsetup目录下的sshUserSetup.sh脚本。

[root@note1 ~]#export display=0.0

[root@note1 ~]#xhost +

[root@note1 ~]#su - grid

[grid@note1 grid]#./runInstaller

wKiom1cgpkqSdvTCAAEgvkIEX9Q465.jpg

wKiom1cgpqfBvwOIAADmyGe4Mwc612.jpg



SCAN Name/etc/hosts与里面scanname一样,否则报[INS-40718]错误

wKiom1cgp0HyMcdMAAFZX4D1i5w261.jpg


添加其它两个节点,设置SSH,输入密码之后点击设置

wKiom1cgp5nC2CniAAHROxCG7XA043.jpg

wKioL1cgqbrww3t3AAEvLFkC7Xo375.jpg


wKiom1cgqPCSMKO4AAD2kgAj688160.jpg


wKiom1cgqPGAh8UtAAF_AVlneYE417.jpg


wKiom1cgqPKimq57AACg1yiZOR0594.jpg


wKioL1cgqb3Tn359AAEgP-bMBBA013.jpg


wKioL1cgqb6zU9pZAAEYTpCWzSU444.jpg


因未配置DNS,此错误可以忽略。忽略报错会弹窗,问是否忽略错误,确认就好。

wKioL1cgqb-yQkzIAAEzduB9CN4985.jpg


wKiom1cgqPWT-j3kAAHzMjhP4g0572.jpg


第一个脚本,在三个节点上依次执行:

[root@note1~]# sh /u/app/oraInventory/orainstRoot.sh

[root@note2~]# sh /u/app/oraInventory/orainstRoot.sh

[root@note3~]# sh /u/app/oraInventory/orainstRoot.sh

第二個腳本,在三个节点上依次執行

[root@note1~]# sh /u/app/11.2.0/grid/root.sh   //执行要一定的时间,

[root@note2~]# sh /u/app/11.2.0/grid/root.sh

[root@note3~]# sh /u/app/11.2.0/grid/root.sh

执行以上的脚本,一定要按照顺序来,先在各节点上执行第一脚本,之后再执行第二个,一个节点一个节点执行完之后,再到下个一个节点执行,这个很重要。

 

接下来还会包一个错误,如下图所示,造成原因是因为没有配置DNS,在这里可以忽略


wKioL1cgq8nAWYaLAAF__1GxV-0321.jpg


在节点一grid用户上:执行crs_stat –t,查看集群服务的开启情况,其中以gsd结尾的为兼容9i的服务,可以不启用。

wKiom1cgqwCy6aRrAAJ1QsV9YJw931.jpg


1、 安装oracle软件

为节省篇幅,我只截了部分较重要的图

wKioL1cgrNTy-jTqAADwbmzL9D8307.jpg

配置ORACLE用户的SSH信任关系

wKiom1cgrAmzZJoZAAEn1QaSJK8005.jpg

ORACLE软件的安装目录

wKiom1cgrAqxlSyTAAEaoD-9m6c914.jpg


wKiom1cgrAuzTsx_AAElVV3qPFE447.jpg


造成原因是因为没有配置DNS,在这里可以忽略

wKiom1cgrAuTchBSAAEoDduJr1Y986.jpg


wKiom1cgrA3xhPXOAAHAUKdM7do721.jpg


执行脚本:

[root@note1~]# sh/u/app/oracle/product/11.2.0/db_1/root.sh

[root@note2~]# sh /u/app/oracle/product/11.2.0/db_1/root.sh

[root@note3~]# sh /u/app/oracle/product/11.2.0/db_1/root.sh

 

五、创建ASM磁盘组

[root@note1~]#xhost +

[root@note1~]#su – grid

[grid@note1 ~]#asmca

wKiom1cgrQaxOPI9AAH5efJENyg361.jpg


wKioL1cgrdPhkQyaAAG8Z68H0Z4902.jpg


wKiom1cgrQjj1xR2AAE_VyxBsgg220.jpg


  六、创建数据库

[root@note1~]#xhost +

[root@note1~]#su – oracle

[oracle@note1~]#dbca

wKiom1cgrh_SwwQMAAE8bTSQVnY669.jpg


wKioL1cgruqAr3ZZAAD1lfDN7IE305.jpg


wKioL1cgruyCwxl_AAHKGguGDEM710.jpg


wKioL1cgru2QjPtsAAHXVYfdnOM401.jpg


wKioL1cgru7g1eHWAAFYascKRnY584.jpg


至此,基本设置已经完成,接下来就是下一步,下一步的事,相关的参数自行调整。