11.2.0.4.1RAC Installation Guid for RHEL6

时间:2022-10-13 21:18:14
文档说明:以#开始命令表示root用户执行,$开始命令以oracle/grid执行(前面都有切换用户的动作)
==================================================
一.基础环境准备
==================================================
--------------------------------------------------
1.1.操作系统检查(录屏:<nodename>_os_check.log)
--------------------------------------------------
1).内存及交换分区
====================
a).内存大小要求至少:2.5GB
--------------------
# grep MemTotal /proc/meminfo

--------------------
b).交换空间大小
--------------------
Available RAM            Swap Space Required
Between 2.5 GB and 16 GB    Equal to the size of RAM
More than 16 GB            16 GB

# free -m

--------------------
c).共享内存段
--------------------
至少要大于MEMORY_MAX_TARGET and MEMORY_TARGET
# df -m /dev/shm/

--系统默认共享内存段为内存大小一半,可以通过以下方式调整(建议不要超过内存)
# mount -t tmpfs shmfs -o size=<7g> /dev/shm

--永久生效则在/etc/fstab里面加入:
shmfs /dev/shm tmpfs size=7g 0

====================
2).文件系统
====================
a)./tmp至少1g
--------------------
# df -h /tmp

--------------------
b).安装目录40g
--------------------
# df -h

====================
3).操作系统版本
====================
--------------------
a).系统详细信息
--------------------
# cat /proc/version
--确认内核版本
--------------------
b).发行版本
--------------------
# lsb_release -id

====================
4).补丁包安装
====================
binutils-2.20.51.0.2-5.11.el6.x86_64
compat-libcap1-1.10-1.x86_64
compat-libstdc++-33-3.2.3-69.el6.x86_64
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6.x86_64
gcc-c++-4.4.4-13.el6.x86_64
glibc-2.12-1.7.el6.i686
glibc-2.12-1.7.el6.x86_64
glibc-devel-2.12-1.7.el6.x86_64
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6.i686
libgcc-4.4.4-13.el6.x86_64
libstdc++-4.4.4-13.el6.x86_64
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6.x86_64
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6.x86_64
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6.x86_64
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6.x86_64


yum -y install binutils-*.x86_64 \
compat-libcap1-*.x86_64 \
compat-libstdc++-*.x86_64 \
compat-libstdc++-*.i?86 \
gcc-*.x86_64 \
gcc-c++-*.x86_64 \
glibc-*.i?86 \
glibc-*.x86_64 \
glibc-devel-*.x86_64 \
glibc-devel-*.i?86 \
ksh \
libgcc-*.i?86 \
libgcc-*.x86_64 \
libstdc++-*.x86_64 \
libstdc++-*.i?86 \
libstdc++-devel-*.x86_64 \
libstdc++-devel-*.i?86 \
libaio-*.x86_64 \
libaio-*.i?86 \
libaio-devel-*.x86_64 \
libaio-devel-*.i?86 \
make-* \
sysstat-*.x86_64 \
unixODBC-*.x86_64 \
unixODBC-*.i?86 \
unixODBC-devel-*.x86_64 \
libXp-*.x86_64 \
libXp-*.i?86 \
elfutils-libelf-devel

--相关软件也是用yum装
rlwrap(换行的包)
cvuqdisk(GI自带,要自己装用于GI发现共享磁盘的,export CVUQDISK_GRP=oinstall)
elfutils-libelf-devel 官方未要求,但是检测的时候不通过
pdksh-5.2.14     // 此包需要手动卸载ksh后安装

====================
5).调整系统资源限制
====================
a).内核参数
--------------------
# vi /etc/sysctl.conf
--加入以下内容    
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295 #at least 1byte less than the physical memory
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
net.ipv4.conf.eth1.rp_filter = 2
net.ipv4.conf.eth0.rp_filter = 1

--下次启动读取
# chkconfig boot.sysctl on
--当前生效
# sysctl -p

--------------------
b).资源限制
--------------------
# vi /etc/security/limits.conf
oracle           soft    nproc   2047
oracle           hard    nproc   16384
oracle           soft    nofile  1024
oracle           hard    nofile  65536
oracle           soft    stack  10240
oracle           hard    stack  32768
grid           soft    nproc   2047
grid           hard    nproc   16384
grid           soft    nofile  1024
grid           hard    nofile  65536
grid           soft    stack  10240
grid           hard    stack  32768


====================
6).安装rlwrap
====================
yum -y install rlwrap-0.37-1.el5.x86_64.rpm

vi /home/oracle/.bash_profil
alias sqlplus='/usr/local/rlwrap/bin/rlwrap sqlplus'
alias rman='/usr/local/rlwrap/bin/rlwrap rman'

====================
7).时间同步方式
====================
a).选用ctss
--------------------
# /sbin/service ntpd stop
# chkconfig ntpd off
# mv /etc/ntp.conf  /etc/ntp.conf.bak
# mv /var/run/ntpd.pid /var/run/ntpd.pid.bak
This file maintains the pid for the NTP daemon.
安装完RAC之后检查CTSS是否运行:crsctl check ctss

--------------------
b).选用NTP
--------------------
使用NTP(需要配置成-x模式,防止时间回退)
# vi /etc/sysconfig/ntpd(SUSE操作系统修改/etc/sysconfig/ntp中为NTPD_OPTIONS="-x -u ntp")
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
SYNC_HWCLOCK=no
NTPDATE_OPTIONS=""
# service ntpd restart

--------------------------------------------------
1.2.配置IP地址解析(录屏:<node_name>_pre-install.log)
--------------------------------------------------
vi /etc/hosts

#public
192.168.100.111          node111
192.168.100.112          node112

#private
172.16.100.111          node111-priv
172.16.100.112          node112-priv

#vip
192.168.100.211          node111-vip
192.168.100.212          node112-vip

#scanip
192.168.100.213          scanip11g

注意:主机名 只能包含字母、数字、横线(-),这是Internet标准协议(RFC)中规定的,不能以数字开头
--------------------------------------------------
1.3.创建系统组、用户
--------------------------------------------------
====================
1).存在性检查
====================
--------------------
a).检查
--------------------
# id oracle
# more /etc/passwd
# more /etc/group
//如果用户已经存在,需要确认这些参数。最好是删除重建用户和组,保证正确性

--------------------
b).删除用户方案
--------------------
# userdel -r oracle
# rm -rf /home/oracle
注:跳过步骤c)到创建用户


====================
2).创建系统组、用户
====================
a).创建系统组
--------------------
/usr/sbin/groupadd -g 1000 oinstall
/usr/sbin/groupadd -g 1101 dba
/usr/sbin/groupadd -g 1102 asmadmin
/usr/sbin/groupadd -g 1103 asmdba
/usr/sbin/groupadd -g 1104 oper
/usr/sbin/groupadd -g 1105 asmoper

--------------------
b).创建用户
--------------------
/usr/sbin/useradd -m -u 1100 -g oinstall -G dba,asmdba,oper oracle
/usr/sbin/useradd -m -u 1200 -g oinstall -G asmadmin,asmdba,asmoper grid

--------------------
c).检查用户
--------------------
# id oracle
# id grid

--------------------
d).修改用户密码
--------------------
# passwd oracle
# passwd grid
# su - oracle
# su -  grid

--------------------------------------------------
1.4.创建安装目录
--------------------------------------------------
mkdir -p  /u01/app/oraInventory
mkdir -p  /u01/app/grid
chown grid:oinstall  /u01/app/grid
chmod -R 775  /u01/app/grid
chown -R grid:oinstall  /u01/app/oraInventory
chmod -R 775  /u01/app/oraInventory
mkdir -p  /u01/app/11.2.0/grid
chown -R grid:oinstall  /u01/app/11.2.0/grid
chmod -R 775  /u01/app/11.2.0/grid
mkdir -p  /u01/app/oracle
mkdir  /u01/app/oracle/cfgtoollogs
chown -R oracle:oinstall  /u01/app/oracle
chmod -R 775  /u01/app/oracle
mkdir -p  /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall  /u01/app/oracle/product/11.2.0/db_1
chmod -R 775  /u01/app/oracle/product/11.2.0/db_1

--------------------------------------------------
1.5.oracle用户环境变量
--------------------------------------------------
1).oracle环境变量
====================
# su - oracle
$ vi /home/oracle/.profile
--加入以下内容:
#################################
#parameter for oracle 10g       #
#################################
export ORACLE_BASE=/u01/app/oracle
#export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
#export CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
#export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs

#################################
#parameter for oracle 11g       #
#################################
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

#################################
#parameter for shareplex        #
#################################
#export SP_SYS_HOST_NAME=<hostname> #the alias for your vip or host name
export SP_BASE=/u01/app/quest/splex
export SP_SYS_PRODIR=$SP_BASE/prodir
#export SP_SYS_VARDIR=$SP_BASE/vardir22

#################################
#parameter for goldengate       #
#################################
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export OGG_HOME=/u02/goldengate

#################################
#parameter for all              #
#################################
#export ORACLE_SID=sourcedb
export ORACLE_TERM=xterm
export NLS_LANG=american_america.zhs16gbk #fit your own database
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
export PATH=$OGG_HOME:$SP_SYS_PRODIR/bin:$CRS_HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/sbin/:$PATH/sbin:$PATH

################################
#all alias                     #
################################
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'

====================
2).grid用户环境变量
====================
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/sbin/:$PATH/sbin:$PATH

--------------------------------------------------
1.6.配置互信
--------------------------------------------------
1).配置工作(需要手工配置)
====================
a).自动配置方案(RHEL6不可行)
--------------------
./sshUserSetup.sh -user grid -hosts "node111 node112" -advanced -noPromptPassphrase
./sshUserSetup.sh -user oracle -hosts "node111 node112" -advanced -noPromptPassphrase

--------------------
b).手工配置方案
--------------------
--所有节点的oracle/grid用户都需要生成秘钥
ssh-keygen -t rsa
ssh-keygen -t dsa

--node112秘钥放到node111上去
scp /home/oracle/.ssh/id_rsa.pub node111:/home/oracle/.ssh/id_rsa.pub2
scp /home/oracle/.ssh/id_dsa.pub node111:/home/oracle/.ssh/id_dsa.pub2

--在node111上生成秘钥集
cd /home/oracle/.ssh/
cat id_dsa.pub  id_dsa.pub2 id_rsa.pub  id_rsa.pub2>authorized_keys
chmod 644 authorized_keys(如果是644权限还是不能通,可以改成700进行尝试)

--将证书放到其他节点
scp authorized_keys node112:/home/oracle/.ssh

====================
2).验证(所有节点的oracle.grid)
====================
ssh node111 date
ssh node112 date
ssh node111-priv date
ssh node112-priv date

--------------------------------------------------
1.7.磁盘准备
--------------------------------------------------
1).确认当前磁盘(一个节点)
====================
fdisk -l

====================
2).磁盘分区(一个节点)
====================
fdisk /dev/sdb-->n-->p-->1-->w

====================
3).刷新分区表(所有节点)
====================
# partprobe

====================
4).创建裸设备(所有节点)
====================
# vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"

KERNEL=="raw[1-3]", OWNER="grid" GROUP="asmadmin", MODE="0660"

# start_udev

====================
5).
====================


==================================================
二.GI/RDBMS安装配置
==================================================
2.1.安装准备工作
--------------------------------------------------
1).CUV安装预检查(录屏:<nodename>_cuvout.log)
====================
$ cd /software/11204gi/grid
$ unzip p13390677_112040_AIX64-5L_3of7.zip 1>/dev/zero 2>gi.err
$ cd /software/11204gi/grid
$ ./runcluvfy.sh stage -pre crsinst -n p740a,p740b -fixup -verbose

====================
2).清理sockets
====================
# rm -rf /tmp/.oracle
# rm –rf /var/tmp/.oracle
# rm -rf /tmp/OraInst*
# rm –rf /opt/ ORCL*

--------------------------------------------------
2.2.GI安装步骤(录屏:<nodename>_gi_isntall.log)
--------------------------------------------------
====================
1).开始安装
====================
# su - grid
$ export DISPLAY=10.1.25.30:0.0 <此IP地址为当前主机IP>
$ cd /software/11204gi/grid
$ ./runInstaller
##按照提示,【2个节点】以root执行rootpre.sh脚本
# cd /software/11204gi/grid
# ./rootpre.sh

====================
2).图形化界面
====================
-skip software updates
-Install and Configure Oracle Infrastructure for a Cluster
-Advanced Installation
-增加简体中文后下一步
-关闭GNS后设置集群名和SCAN参数
-添加添加其他节点信息(检测ssh连通性)
-配置网卡(如果有多个私有IP,则私有HA IP会在多个私有网卡上失败切换)
-选择Oracle ASM存放OCR
-选择磁盘创建磁盘组
-设置ASM密码
-不适使用IPMI
-确认系统组
-确认ORACLE_BASE和ORACLE_HOME
-确认oraInventory
-等待CUV检测
-check检测不通过问题
-确认基础信息
-等待安装过程中的脚本
-以root用户按照脚本顺序和主机顺序运行脚本(录屏:<nodename>_root_script_out.log)
-等待安装完成

====================
3).后检查工作
====================
a).检查集群状态
--------------------
$ crsctl status resource -t -init
$ crsctl check crs
--------------------
b).检查CTSSD服务
--------------------
$ crsctl check ctss
注:不使用ntp需要确保ctssd服务不是observe状态

--------------------------------------------------
2.3.安装RDBMS(oracle 用户)(录屏:<nodename>_rdbms_install.log)
--------------------------------------------------
1).开始安装
====================
# su - oracle
$ cd /software/11204db/database
$ unzip p13390677_112040_AIX64-5L_1of7.zip 1>/dev/zero 2>db1.err
$ unzip p13390677_112040_AIX64-5L_2of7.zip 1>/dev/zero 2>db2.err
$ cd /software/11204db/database
$ export DISPLAY=10.1.25.30:0.0
$ ./runInstaller

所有节点按照要求以root用户执行rootpre.sh脚本(两个节点都需要)
# cd /software/11204db/database
# ./rootpre.sh

====================
2).图形界面
====================
-不接受安全更新
-skip software updates
-Install database software only
-Oracle RAC database Installation(还要选择节点)
-增加简体中文到下一步
-选择企业版
-确认ORACLE_BASE,ORACLE_HOME无误
-确认用户组
-等待CVU检查
-检查check不通过问题
-确认配置信息
-等待安装过程
-以root用户按照主机顺序执行root脚本(录屏:<nodename>_root_script_out.log)
--------------------------------------------------
2.4.配置ASM(grid用户)
--------------------------------------------------
$ export DISPLAY=10.1.25.30:0.0
$ asmca
1).创建磁盘组

====================
2.调整ASM参数
====================
# su – grid
# sqlplus / as sysasm
# alter system set memory_max_target=4g sid='*' scope=spfile;
# alter system set memory_target=4g sid='*' scope=spfile;
# alter system  set processes=500 sid='*' scope=spfile;

==================================================
三.GI/RDBMS补丁安装(以下操作两个节点都需要进行)
==================================================
3.1.补丁准备工作录屏:(录屏:<nodename>_pre-patch.log)
--------------------------------------------------
1).停集群
====================
# /u01/app/11.2.0/grid/bin/crsctl stop crs -f
====================
2).准备介质
====================
# su - oracle
$ cd /software/112041patch
$ unzip p6880880_112000_AIX64-5L-OPatch_patch.zip 1>/dev/zero 2>optach.err
$ unzip p17478514_112040_AIX64-5L-PSU112041.zip 1>/dev/zero 2>psu.err
$ unzip p18180390_112041_AIX64-5L.zip 1>dev/zero 2>oneoff.err

注:确认所有.err的日志输出文件中无报错

--------------------------------------------------
3.2.安装Opatch(录屏:<nodename>_opatch-patch.log)
--------------------------------------------------
1).OPatch安装(两个节点root)
====================
a).备份原有OPatch并确认
--------------------
# mv /u01/app/11.2.0/grid/OPatch /u01/app/11.2.0/grid/OPatch_old
# mv /u01/app/oracle/product/11.2.0/db_1/OPatch /u01/app/oracle/product/11.2.0/db_1/OPatch_old
# ls -ltr /u01/app/11.2.0/grid/ |grep OPatch
# ls -ltr /u01/app/oracle/product/11.2.0/db_1/ |grep OPatch

--------------------
b).patch安装
--------------------
# cp -r OPatch /u01/app/11.2.0/grid/
# cp -r OPatch /u01/app/oracle/product/11.2.0/db_1/
# chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1/OPatch
# chown -R grid:oinstall /u01/app/11.2.0/grid/OPatch

====================
2).OPatch版本确认
====================
分别以grid和oracle确认opatch 版本
$ opatch lsinventory

--------------------------------------------------
3.3.安装PSU
--------------------------------------------------
1).清理Lib
====================
a).清理
--------------------
# slibclean

--------------------
b).确认lib是否被占用
--------------------
# genkld |grep oracle
注:需要没有返回结果

====================
2).GI PSU安装(录屏:<nodename>_gi-psu-patch.log)
====================
a).GI_HOME解锁
--------------------
# /orastg/app/11.2.0/grid/crs/install/rootcrs.pl -unlock

--------------------
b).PSU安装检测
--------------------
# su - grid
$ opatch prereq CheckConflictAgainstOHWithDetail -ph /software/112041patch/17478514

--------------------
c).正式安装
--------------------
$ opatch apply -oh /u01/app/11.2.0/grid -local /software/112041patch/17478514

--------------------
d).完成
--------------------
# /u01/app/11.2.0/grid/crs/install/rootcrs.pl -patch
# su - grid
$ opatch lsinventory

====================
3).RDBMS PSU安装(录屏:<nodename>_rdbms-psu-patch.log)
====================
a).停集群
--------------------
# /u01/app/11.2.0/grid/bin/crsctl stop crs

--------------------
b).PSU安装检测
--------------------
# su - oracle
$ opatch prereq CheckConflictAgainstOHWithDetail -ph /software/112041patch/17478514

-------------------
c).正式安装
-------------------
$ opatch apply -oh /u01/app/oracle/product/11.2.0/db_1 -local /software/112041patch/17478514
--检查日志:
cat <file_name> |grep -i error
cat <file_name> |grep -i warning|grep -iv error|grep -v 773|grep -v 224|grep -v 345|grep -v 783|grep -v 415
--------------------
d).完成
--------------------
opatch lsinventory

--------------------------------------------------
3.4.安装one-off补丁(录屏:<nodename>_rdbms-oneoff-patch.log)
--------------------------------------------------
# su - oracle
$ opatch prereq CheckConflictAgainstOHWithDetail -ph /software/112041patch/18180390
$ opatch apply -oh /u01/app/oracle/product/11.2.0/db_1 -local /software/112041patch/18180390

--------------------------------------------------
3.5.完成Patch安装(录屏:<nodename>_finish-patch.log)
--------------------------------------------------
1).确认所有Patch
====================
在各个节点以oracle、grid都执行
$ opatch lsinventory

====================
2).启动集群
====================
# /orastg/app/11.2.0/grid/bin/crsctl start crs