ITPub博客

首页 > 数据库 > Oracle > 在RHEL6.0搭建Oracle 11gR2 RAC生产环境

在RHEL6.0搭建Oracle 11gR2 RAC生产环境

Oracle 作者:us_yunleiwang 时间:2013-12-05 14:33:28 0 删除 编辑

【背景】昨天开发要求我给他们在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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-03-15

  • 博文量
    198
  • 访问量
    1393180