1.1 RAC架构规划
服务器主机名 | wlrac01 | wlrac02 |
---|---|---|
公共IP地址 | 192.168.1.135 | 192.168.1.136 |
虚拟IP地址 | 192.168.1.137 | 192.168.1.138 |
私有IP地址 | 172.16.1.1 | 172.16.1.2 |
Oracle RAC SID | wlracdb1 | wlracdb2 |
集群实例名称 | wlracdb | |
SCAN IP | 192.168.1.140 | |
操作系统 | RedHat6.8-x86_64 | |
存储 | Openfiler | |
Oracle版本 | Oracle 11.2.0.1 |
1.2 修改/etc/hosts文件
所有节点都要配置
[root@racnode1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#Public Network - (eth0)
192.168.1.135 wlrac01
192.168.1.136 wlrac02
#Private Interconnect - (eth1)
172.16.1.1 wlrac01-priv
172.16.1.2 wlrac02-priv
#Public Virtual IP(VIP) - (eth0:1)
192.168.1.137 wlrac01-vip
192.168.1.138 wlrac02-vip
#Single Client Access Name (SCAN)
192.168.1.140 wlrac-scan
#Storage Network for Openfiler - (eth0)
192.168.1.116 openfiler
1.3 安装所需要的软件包
所有节点都要执行
配置好yum,使用yum安装(附上redhat6.8安装yum源配置链接https://www.cnblogs.com/jjp816/p/6437558.html)
yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel 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 compat-libstdc++-33.i686 libaio.i686 libaio-devel.i686 libstdc++.i686 unixODBC.i686 unixODBC-devel.i686 glibc-devel.i686 glibc.i686 libgcc.i686 libstdc++-devel .i686 compat-libcap1 -y
1.4 添加用户,组和目录
1.4.1 RAC使用的用户与组的关系
描述 | OS组名 | 分配给该组的OS用户 | oracle权限 | oracle组名 |
---|---|---|---|---|
Oracle清单和软件所有者 | oinstall | grid、oracle | ||
Oracle自动存储管理组 | asmadmin | grid | SYSASM | OSASM |
ASM 数据库管理员组 | asmdba | grid、oracle | ASM的SYSDBA | OSDBA for ASM |
ASM 操作员组 | asmoper | grid | ASM的SYSOPER | OSOPER for ASM |
数据库管理员 | dba | Oracle、grid | SYSDBA | OSDBA |
数据库操作员 | oper | oracle | SYSOPER | OSOPER |
1.4.2 在所有节点都要执行创建用户
GRID 用户:
groupadd -g 1000 oinstall
groupadd -g 1200 asmadmin
groupadd -g 1201 asmdba
groupadd -g 1202 asmoper
groupadd -g 1300 dba
groupadd -g 1301 oper
useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,dba -d /home/grid -s /bin/bash -c “Grid Infrastructure Owner” grid
id grid
Oracle 用户:
useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash -c “Oracle Software Owner” oracle
id oracle
在所有节点上验证用户 nobody 存在
安装软件之前,执行以下过程,以验证在两个Oracle RAC 节点上存在用户nobody,要确定该用户是否存在,输入以下命令:
id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
如果该命令显示了nobody 用户的信息,则无需创建该用户。如果用户 nobody 不存在,则输入以下命令进行创建:
/usr/sbin/useradd nobody
1.4.3 在所有节点上创建安装目录
mkdir -p /u01/app/grid
mkdir -p /u01/app/11.2.0/grid
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
chown -R oracle:oinstall /u01
chmod -R 775 /u01/
1.5 配置用户环境变量
1.5.1 安装jdk
- rpm –ivh jdk-7u80-linux-x64.rpm
- 编辑vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.7.0_80
export CLASSPATH=:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH - source /etc/profile.d/java.sh
1.5.2 Grid用户环境变量:
以grid用户帐户分别登录到两个Oracle RAC节点并创建以下登录脚本 (.bash_profile)。在为每个Oracle RAC节点设置Oracle环境变量时,确保为每个RAC节点指定唯一的 Oracle SID。如:
wlrac01:ORACLE_SID=+ASM1
wlrac02:ORACLE_SID=+ASM2
# su - grid
#vi ~/.bash_profile
# —————————————————
# .bash_profile
# —————————————————
# OS User: grid
# Application: Oracle Grid Infrastructure
# Version: Oracle 11g release 2
# —————————————————
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
ORACLE_SID=+ASM1; export ORACLE_SID
JAVA_HOME=/usr/java/jdk1.7.0_80; export JAVA_HOME
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/11.2.0/grid; export ORACLE_HOME
ORACLE_PATH=/u01/app/oracle/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT=”YYYY-MM-DD HH24:MI:SS”; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
1.5.3 Oracle用户的环境变量
以oracle用户帐户分别登录到两个Oracle RAC节点并创建以下登录脚本(.bash_profile),在为每个Oracle RAC节点设置Oracle环境变量时,确保为每个RAC节点指定唯一的Oracle SID。如:
wlrac01:ORACLE_SID=wlracdb1
wlrac02:ORACLE_SID=wlracdb2
# su - oracle
#vi ~/.bash_profile
# —————————————————
# .bash_profile
# —————————————————
# OS User: oracle
# Application: Oracle Database Software Owner
# Version: Oracle 11g release 2
# —————————————————
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
ORACLE_SID=wlracdb1; export ORACLE_SID
ORACLE_UNQNAME=wlracdb; export ORACLE_UNQNAME
JAVA_HOME=/usr/java/jdk1.7.0_80; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_PATH=/u01/app/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT=”YYYY-MM-DD HH24:MI:SS”; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.AL32UTF8; export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
PATH=${PATH}:/u01/app/common/oracle/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022
1.6 配置内核参数
官网手册给出的值都是最小值,因此如果您的系统使用更大的值,则不要更改。
#vi /etc/sysctl.conf
kernel.shmmax = 107374182400
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
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
fs.aio-max-nr=1048576
注意:RedHat6.8已经配置了为以下内核参数定义的默认值:
kernel.shmall
kernel.shmmax
如果这些默认值等于或大于必需值,则使用这些默认值。
使修改的参数生效:
[root@racnode1 ~]# sysctl -p
1.7 设置系统资源限制
1.7.1 修改limits.conf文件
以root用户身份,在每个Oracle RAC节点上,在/etc/security/limits.conf 文件中添加以下内容:
# Oracle-Validated setting for nofile soft limit is 131072
oracle soft nofile 131072
grid soft nofile 131072
# Oracle-Validated setting for nofile hard limit is 131072
oracle hard nofile 131072
grid hard nofile 131072
# Oracle-Validated setting for nproc soft limit is 131072
oracle soft nproc 131072
grid soft nproc 131072
# Oracle-Validated setting for nproc hard limit is 131072
oracle hard nproc 131072
grid hard nproc 131072
# Oracle-Validated setting for core soft limit is unlimited
oracle soft core unlimited
# Oracle-Validated setting for core hard limit is unlimited
oracle hard core unlimited
# Oracle-Validated setting for memlock soft limit is 50000000
oracle soft memlock unlimited
# Oracle-Validated setting for memlock hard limit is 50000000
oracle hard memlock unlimited
# RAC grid
grid soft nofile 131072
grid hard nofile 131072
1.7.2 修改login文件
在每个Oracle RAC节点上都要执行,在/etc/pam.d/login文件中添加
session required pam_limits.so
session required /lib64/security/pam_limits.so
1.8 配置时间同步
配置网络时间协议 —(仅当不按如上所述使用CTSS时)
如果正在使用NTP,并且愿意继续使用它而不是集群时间同步服务,那么您需要修改NTP初始化文件,在其中设置-x标志,这样可避免向后调整时间。完成此任务后,重启网络时间协议后台程序。
为了在Oracle Enterprise Linux、Red Hat Linux和Asianux系统上完成此任务,编辑/etc/sysconfig/ntpd 文件,添加 -x 标志,如下例所示:
[root@rac1 mapper]# cat /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
OPTIONS=”-x -u ntp:ntp -p /var/run/ntpd.pid -g”
编辑/etc/ntp.conf,添加如下内容
wlrac01:
server 192.168.1.135
server 127.127.1.0
fudge 127.127.1.0 stratum 10
restrict 192.168.1.135 mask 255.255.255.255 nomodify notrap noquery
wlrac02:
server wlrac01
restrict wlrac01 mask 255.255.255.255 nomodify notrap noquery
然后,分别重启 NTP 服务。
# /sbin/service ntp restart
1.9 关闭系统防火墙和selinux
所有节点都要执行
service iptables stop
chkconfig iptables off
设置/etc/selinux/config文件,将SELINUX设置为disabled
以上配置都完成后,需要重启系统生效
#reboot