一、安装环境
1、实验环境
虚拟机:VMware Workstation 8.0.3_64bit
ORACLE:Oracle Database11g11.2.0.3.0-64bit
操作系统:Red HatEnterprise Linux 6.5
2、节点配置
描述 |
节点一 | 节点二 | 节点三 | ISCSI存储 |
主机名称 | note1 | note2 | note3 | iscsi-asm |
Public IP | 172.16.1.7(vlan3) | 172.16.1.8(vlan3) | 172.16.1.9(vlan3) | 172.16.1.20(vlan3) |
Private IP | 192.168.1.11(vlan5) | 192.168.1.12(vlan5) | 192.168.1.13(vlan5) | |
Virtual IP | 172.16.1.17 | 172.16.1.18 | 172.16.1.19 | |
Scan IP | 172.16.1.10、172.16.1.11、172.16.1.12 |
|||
实例名 | racdb1 | racdb2 | racdb3 | |
/etc/hosts | 127.0.0.1 localhost.localdomain localhost 172.16.1.12 cluster-scan |
172.16.1.20 iscis-asm |
以上环境配置过程略,可通过VM的Clone功能克隆多台机器之后变更IP和主机名即可。
二、系统基本配置
1、搭建存储服务器
A、添加磁盘创建软件RAID5
创建软件RAID5,共3块磁盘,无热备,具体请查阅相关资料
[root@iscsi-asm ~] # mdadm –Cv /dev/md0 –l5 –n3/dev/sd[bcd]1
B、配置ISCSI磁盘
安装服务器端使用的scis-target-utils包,安装前先确认以下安装包已安装:kernel-source、kernel、gcc、perl
[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
>
> backing-store /dev/md0
>
> 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存储后的磁盘,请勿格式化
2、UDEV配置ASM
A、ASM磁盘的规划
ASM磁盘组 |
磁盘组大小 | ASM冗余 | ASM磁盘 | ISCSI磁盘路径 | 存储存放规则 |
+CRS | 20G |
EXTERN |
/dev/asm-crs1 |
/dev/sdb1 | OCR、表决磁盘 |
+DATA | 60G | EXTERN | /dev/asm-db1 | /dev/sdb2 | 数据文件 |
+ARCH | 40G | EXTERN | /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
三、配置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<>/etc/security/limits.conf < > /etc/pam.d/login< [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包在grid的rpm目录中
三个节点上执行:
[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软件
许多文档都在安装之前配置了各节点之间oracle和grid用户的SSH信任关系,这里使用软件配置选项进行配置。其实就是使用了grid软件包中sshsetup目录下的sshUserSetup.sh脚本。
[root@note1 ~]#export display=0.0
[root@note1 ~]#xhost +
[root@note1 ~]#su - grid
[grid@note1 grid]#./runInstaller
SCAN Name要/etc/hosts与里面scanname一样,否则报[INS-40718]错误
添加其它两个节点,设置SSH,输入密码之后点击设置
因未配置DNS,此错误可以忽略。忽略报错会弹窗,问是否忽略错误,确认就好。
第一个脚本,在三个节点上依次执行:
[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,在这里可以忽略。
在节点一grid用户上:执行crs_stat –t,查看集群服务的开启情况,其中以gsd结尾的为兼容9i的服务,可以不启用。
1、 安装oracle软件
为节省篇幅,我只截了部分较重要的图
配置ORACLE用户的SSH信任关系
ORACLE软件的安装目录
造成原因是因为没有配置DNS,在这里可以忽略
执行脚本:
[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
六、创建数据库
[root@note1~]#xhost +
[root@note1~]#su – oracle
[oracle@note1~]#dbca
至此,基本设置已经完成,接下来就是下一步,下一步的事,相关的参数自行调整。