【背景】昨天开发要求我给他们在Red Hat Enterprise Linux 6.0上搭建一套两节点的Oracle 11gR2 RAC,用来做客服系统使用。以前大部分都在AIX上安装Oracle RAC,很少在Linux上安装Oracle RAC.虽然在操作上没有什么问题,但是有个文档参考确实方便一点。在安装的过程中自己整理了一下这个安装手册,方便在以后使用。
一、环境检查
1.检查硬件配置
检查内存:
[root@rac1 ~]# grep MemTotal /proc/meminfo
检查交换空间
[root@rac1 ~]# grep SwapTotal /proc/meminfo
检查临时文件目录(至少应有400M空闲空间)
[root@rac1 ~]# df -m /tmp
检查文件系统空间
[root@rac1 ~]# df -m
检查操作系统内核版本必须是2.6.18以上
[root@rac1 ~]# uname -r
关闭SELinux
[root@rac1 ~]# vi /etc/selinux/config,
将SELINUX 值改为 “SELINUX=disabled”.
如果原来是enabled,改为disabled,需要重启
2.配置ntpd
[root@rac1 ~]# service ntpd stop
Shutting down ntpd: [ OK ]
[root@rac1 ~]# chkconfig ntpd off
[root@rac1 ~]# mv /etc/ntp.conf /etc/ntp.conf.orig
[root@rac1 ~]# rm /var/run/ntpd.pid
If you are using NTP, you must add the “-x” option into the following line in the “/etc/sysconfig/ntpd” file.
如果要使用NTP,你必须添加-x参数到/etc/sysconfig/ntpd文件中
OPTIONS=”-x -u ntp:ntp -p /var/run/ntpd.pid”Then restart NTP.
[root@rac1 ~]# service ntpd restart
3.检查Oracle必须要安装的包
我们可以通过下面这个命令来检查,缺少那个包就安装哪个包:
[root@rac1 ~]#rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21
挂载光盘
[root@rac1 ~]# mkdir /media/disk
[root@rac1 ~]# mount /dev/cdrom /media/disk
mount: block device /dev/cdrom is write-protected, mounting read-only
如果少了哪些包,直接在光盘Server/Packages/目录下找到改包安装上就可以了。
rpm 包安装:
rpm -Uvh *.rpm –force –nodeps
4.官方安装说明必须要的包
# From Oracle Linux 6 DVD
cd /media/cdrom/Server/Packages
#rpm -Uvh binutils-2.*
#rpm -Uvh compat-libstdc++-33*
#rpm -Uvh elfutils-libelf-0.*
#rpm -Uvh libaio-0.*
rpm -Uvh libaio-devel-0.*
#rpm -Uvh sysstat-9.*
#rpm -Uvh glibc-2.*
#rpm -Uvh glibc-common-2.*
#rpm -Uvh glibc-devel-2.* glibc-headers-2.*
rpm -Uvh ksh-2*
#rpm -Uvh make-3.*
#rpm -Uvh libgcc-4.*
#rpm -Uvh libstdc++-4.*
rpm -Uvh libstdc++-4.*.i686*
#rpm -Uvh libstdc++-devel-4.*
#rpm -Uvh gcc-4.*x86_64*
#rpm -Uvh gcc-c++-4.*x86_64*
#rpm -Uvh –allfiles elfutils-libelf-0*x86_64* elfutils-libelf-devel-0*x86_64*
rpm -Uvh elfutils-libelf-0*i686* elfutils-libelf-devel-0*i686*
rpm -Uvh libtool-ltdl*i686*
rpm -Uvh ncurses*i686*
rpm -Uvh readline*i686*
rpm -Uvh unixODBC*
cd /
eject
二、系统配置
1.配置hosts(两个节点都要执行)
[root@rac1 ~]# vi /etc/hosts
#Public
192.168.1.171 rac1 rac1.localdomain
192.168.1.173 rac2 rac2.localdomain
#Private
172.168.1.191 rac1-priv rac1-priv.localdomain
172.168.1.192 rac2-priv rac2-priv.localdomain
#Virtual
192.168.1.172 rac1-vip rac1-vip.localdomain
192.168.1.174 rac2-vip rac2-vip.localdomain
#SCAN
192.168.1.176 rac-cluster rac-cluster-scan
2.创建目录、用户和赋予权限(两个节点都要执行)
[root@rac1 ~]# groupadd -g 5000 asmadmin
[root@rac1 ~]# groupadd -g 5001 asmdba
[root@rac1 ~]# groupadd -g 5002 asmoper
[root@rac1 ~]# groupadd -g 6000 oinstall
[root@rac1 ~]# groupadd -g 6001 dba
[root@rac1 ~]# groupadd -g 6002 oper
[root@rac1 ~]# useradd -m -u 1100 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid -s /bin/bash -c “Grid Infrastructure Owner” grid
[root@rac1 ~]# useradd -m -u 1101 -g oinstall -G dba,oper,asmdba -d /home/oracle -s /bin/bash -c “Oracle Software Owner” oracle
[root@rac1 ~]# mkdir -p /oracle/app/grid
[root@rac1 ~]# mkdir -p /oracle/app/11.2.0/grid
[root@rac1 ~]# mkdir -p /oracle/app/oracle
[root@rac1 ~]# passwd oracle
[root@rac1 ~]# passwd grid
[root@rac1 ~]# chown -R grid:oinstall /oracle/app/grid
[root@rac1 ~]# chmod -R 775 /oracle/app/grid
[root@rac1 ~]# chown -R grid:oinstall /oracle/app/11.2.0/grid
[root@rac1 ~]# chmod -R 775 /oracle/app/11.2.0/grid
[root@rac1 ~]# chown -R oracle:oinstall /oracle/app/oracle
[root@rac1 ~]# chmod -R 775 /oracle/app/oracle
3.验证用户 nobody 存在
安装软件之前,执行以下过程,以验证在两个 Oracle RAC 节点上存在用户 nobody:
要确定该用户是否存在,输入以下命令:
[root@rac1 ~]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
如果该命令显示了nobody 用户的信息,则无需创建该用户。
如果用户 nobody 不存在,则输入以下命令进行创建:
[root@rac1 ~]# /usr/sbin/useradd nobody
在集群中的所有其他Oracle RAC 节点上重复此过程。
4.配置环境变量
rac1节点上配置Oracle环境变量
[oracle@rac1 ~]# vi .bash_profile
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=rac1.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=RAC; export ORACLE_UNQNAME
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=RAC1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
rac2节点上配置Oracle环境变量
[oracle@rac2 ~]# vi .bash_profile
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=rac2.localdomain; export ORACLE_HOSTNAME
ORACLE_BASE=/oracle/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=RAC2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
rac1节点上配置Grid环境变量
[grid@rac1 ~]# vi .bash_profile
#Grid Settings
CRS_HOME=/oracle/app/11.2.0/grid
ORACLE_BASE=/oracle/app/grid
ORACLE_SID=+ASM1
PATH=$CRS_HOME/bin:$PATH:$Home/bin
export PATH CRS_HOME ORACLE_BASE ORACLE_SID
rac2节点上配置Grid环境变量
[grid@rac2 ~]# vi .bash_profile
#Grid Settings
CRS_HOME=/oracle/app/11.2.0/grid
ORACLE_BASE=/oracle/app/grid
ORACLE_SID=+ASM2
PATH=$CRS_HOME/bin:$PATH:$Home/bin
export PATH CRS_HOME ORACLE_BASE ORACLE_SID
5.编辑/etc/sysctl.conf(两节点都要运行)
[root@rac1 ~]# vi /etc/sysctl.conf
fs.file-max = 6815744
kernel.msgmni = 2878
kernel.msgmax = 8192
kernel.msgmnb = 65536
kernel.sem = 250 32000 100 142
kernel.shmmni = 4096
# 物理内存除以pagesize
kernel.shmall = 1073741824
# 物理内存的一半
kernel.shmmax = 4294967295
kernel.sysrq = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 3145728
net.ipv4.ip_local_port_range = 9000 65500
vm.min_free_kbytes = 51200
让配置生效:
/sbin/sysctl -p
可以使用如下命令来查看某个参数值:
/sbin/sysctl -a | grep
6.编辑/etc/security/limits.conf(两节点都要运行)
[root@rac1 ~]# vi /etc/security/limits.conf
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 3500000
oracle hard memlock 3500000
grid soft nofile 131072
grid hard nofile 131072
grid soft nproc 131072
grid hard nproc 131072
grid soft core unlimited
grid hard core unlimited
grid soft memlock 3500000
grid hard memlock 3500000
三、配置共享存储
配置共享存储请参考http://www.tianqingbo.com/rhel-udev-asm.html
四、解压介质进行安装
这些介质都是最新的。可以从MOS官方下载
[root@rac1 ~]unzip p10404530_112030_Linux-x86-64_1of7.zip
[root@rac1 ~]unzip p10404530_112030_Linux-x86-64_2of7.zip
[root@rac1 ~]unzip p10404530_112030_Linux-x86-64_3of7.zip
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23490154/viewspace-1062351/ ,如需转载,请注明出处,否则将追究法律责任。