oracle各个版本rac安装通用脚本(oracle11gR2,oracle 12.2,oracle19c) RAC

15 篇文章 0 订阅
8 篇文章 0 订阅

1、os.sh

#!/bin/bash

#mount -o loop /soft/CentOS-7-x86_64-Everything-1810.iso /mnt/
#
cd /etc/yum.repos.d
mkdir -p backup/
mv *.repo /etc/yum.repos.d/backup/
##vi /etc/yum.repos.d/file.repo
echo "[centos7-Server]">> /etc/yum.repos.d/file.repo
echo "name=centos7-Server">> /etc/yum.repos.d/file.repo
echo "baseurl=file:///mnt">> /etc/yum.repos.d/file.repo
echo "enabled=1">> /etc/yum.repos.d/file.repo
echo "gpgcheck=0">> /etc/yum.repos.d/file.repo
#
yum clean all
#
yum makecache 


postfix=`rpm -qa | grep -i postfix`
if [ "x"$postfix!="x" ];then
	rpm -e  $postfix
fi

mariadb=`rpm -qa | grep -i mariadb`
if [ "x"$mariadb!="x" ];then
	rpm -e  $mariadb
fi

yum -y install aide
yum -y install audit
yum -y install bind-utils
yum -y install expect
yum -y install ipa-client
yum -y install ksh
yum -y install mailx
yum -y install man-db
yum -y install mlocate
yum -y install nmap-ncat
#yum -y install net-snmp
yum -y install ntpdate
yum -y install openssh-clients
yum -y install openssh-server
yum -y install parted
yum -y install perl
#yum -y install postfix
yum -y install screen
yum -y install setroubleshoot-server
yum -y install sudo
yum -y install tcpdump
yum -y install vim-enhanced
yum -y install wget
yum -y install libstdc++.i686
yum -y install glibc.i686
yum -y install psmisc.x86_64
yum -y install net-tools.x86_64
yum -y install unzip.x86_64
yum -y install gcc.x86_64
yum -y install gcc-c++.x86_64
yum -y install lsof.x86_64
yum -y install bc.x86_64
yum -y install xfsdump
yum -y install chrony
yum -y install dos2unix
yum -y install nmap       

rpm -q aide \
audit \
bind-utils \
expect \
ipa-client \
ksh \
mailx \
man-db \
mlocate \
nmap-ncat \
net-snmp \
ntpdate \
openssh-clients \
openssh-server \
parted \
perl \
postfix \
screen \
setroubleshoot-server \
sudo \
tcpdump \
vim-enhanced \
wget \
libstdc++.i686 \
glibc.i686 \
psmisc.x86_64 \
net-tools.x86_64 \
unzip.x86_64 \
gcc.x86_64 \
gcc-c++.x86_64 \
lsof.x86_64 \
bc.x86_64 \
xfsdump \
chrony \
dos2unix \
nmap


#yum -y install device-mapper-multipath
#
#if [ ! -f /etc/multipath.conf ];then 
#	cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf
#fi 
#systemctl start multipathd
#
#systemctl enable multipathd


anum=`cat -n /etc/profile |grep "PS1"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ];then 
	echo "# set PS1 environment" >>/etc/profile
	echo "if [ \$UID -eq 0 ]; then" >>/etc/profile
	echo "    export PS1=\$LOGNAME@\`hostname\`['\$PWD']#" >>/etc/profile
	echo "else" >>/etc/profile
	echo "    export PS1=\$LOGNAME@\`hostname\`['\$PWD']\$" >>/etc/profile
	echo "fi" >>/etc/profile
fi 

anum=`cat -n /etc/profile |grep "HISTTIMEFORMAT"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ];then 
	echo "# set histimeformat environment" >>/etc/profile
	echo "export HISTTIMEFORMAT='%F %T '" >>/etc/profile
fi 

anum=`cat -n /etc/profile |grep "coredump_filter"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ];then 
	echo "# set CORE NO SHM" >>/etc/profile
	echo "echo 0x1 > /proc/self/coredump_filter" >>/etc/profile
fi 

source /etc/profile

anum=`cat -n /etc/selinux/config |grep "SELINUX"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ]; then
	echo "SELINUX=disabled" >> /etc/selinux/config
else
	sed -i "`cat -n /etc/selinux/config |grep "SELINUX="|grep -v "#" |awk '{print $1}'`c SELINUX=disabled" /etc/selinux/config
fi


setenforce 0

getenforce 


systemctl stop firewalld

systemctl disable firewalld

#systemctl stop NetworkManager
#systemctl disable NetworkManager


if [ ! -f /boot/grub2/grub.cfg.bak ];then 
	cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
fi 
if [ ! -f /etc/default/grub.bak ]; then 
	cp /etc/default/grub /etc/default/grub.bak
fi 
grub_cmdlinux_linux=`cat /etc/default/grub |grep GRUB_CMDLINE_LINUX`

echo $grub_cmdlinux_linux

new_str=`echo $grub_cmdlinux_linux | sed 's/\"\(\w*$\)/ transparent_hugepage=never numa=off\"\1/g'`

n_count=`cat /etc/default/grub |grep "GRUB_CMDLINE_LINUX" |grep "transparent_hugepage"|wc -l`
if [ $n_count -eq 0 ]; then
	anum=`cat -n /etc/default/grub |grep 'GRUB_CMDLINE_LINUX'|grep -v '#'|awk '{print $1}'|wc -l`
	if [ $anum -eq 0 ]; then
		echo $new_str >> /etc/default/grub
	else
		sed -i "`cat -n /etc/default/grub |grep 'GRUB_CMDLINE_LINUX'|grep -v '#'|awk '{print $1}'`c $new_str" /etc/default/grub
	fi
	
	grub2-mkconfig -o /boot/grub2/grub.cfg
fi
echo "1.............."
anum=`cat -n /etc/rc.d/rc.local |grep "transparent_hugepage"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ];then 
	echo "# Disable Transparent HugePages" >> /etc/rc.d/rc.local
	echo "if test -f /sys/kernel/mm/transparent_hugepage/enabled; then" >> /etc/rc.d/rc.local
	echo "    echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.d/rc.local
	echo "fi" >> /etc/rc.d/rc.local
	echo "if test -f /sys/kernel/mm/transparent_hugepage/defrag; then" >> /etc/rc.d/rc.local
	echo "    echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.d/rc.local
	echo "fi" >> /etc/rc.d/rc.local
	chmod +x /etc/rc.d/rc.local
fi 

anum=`cat -n /etc/security/limits.conf |grep "Zsmart"|awk '{print $1}'|wc -l`
if [ $anum -eq 0 ];then 
	echo "# For Zsmart" >>/etc/security/limits.conf
	echo "* soft core 10485760" >>/etc/security/limits.conf
	echo "* hard core 10485760" >>/etc/security/limits.conf
fi 

#/etc/security/limits.d/20-nproc.conf
anum=`cat -n /etc/security/limits.d/20-nproc.conf |grep "Zsmart"|awk '{print $1}'|wc -l`
if [ $anum -eq 0 ];then 
	echo "# For Zsmart">>/etc/security/limits.d/20-nproc.conf
	echo "* soft nofile 65536">>/etc/security/limits.d/20-nproc.conf
	echo "* hard nofile 65536">>/etc/security/limits.d/20-nproc.conf
	echo "* soft nproc 65536">>/etc/security/limits.d/20-nproc.conf
	echo "* hard nproc 65536">>/etc/security/limits.d/20-nproc.conf
	echo "root soft nproc unlimited">>/etc/security/limits.d/20-nproc.conf
fi 

#/etc/security/limits.conf
anum=`cat -n /etc/security/limits.conf |grep "soft nofile 65536"|awk '{print $1}'|wc -l`
if [ $anum -eq 0 ];then 
	echo "# For Zsmart" >>/etc/security/limits.conf
	echo "* soft nofile 65536" >>/etc/security/limits.conf
	echo "* hard nofile 65536" >>/etc/security/limits.conf
	echo "* soft nproc 65536" >>/etc/security/limits.conf
	echo "* hard nproc 65536" >>/etc/security/limits.conf
	echo "* soft stack 10240" >>/etc/security/limits.conf
fi 

#/etc/pam.d/login
anum=`cat -n /etc/pam.d/login |grep "pam_limits.so"|grep -v "#"|awk '{print $1}'|wc -l`
if [ $anum -eq 0 ];then 
	echo "# Enbale limit setting">>/etc/pam.d/login
	echo "session required pam_limits.so" >> /etc/pam.d/login
fi

echo "22.........................."
ncount=`cat /etc/sysctl.conf |grep "kernel.shmmax" |grep -v "#"|wc -l`
if [ $ncount -eq 0 ];then
	echo "444.............."
	memnum=`free -m|grep Mem |awk '{print $2}'`
	echo "555.............."
	nshmmax=`expr $memnum \* 1024 \* 1024`
	echo "666.............."
	nshmall=`expr $nshmmax / 4096`
	echo "777.............."
	mem1=`free -g|grep Mem |awk '{print $2}'`
	echo "888.............."
	v_min_free_kbytes=2097152
	echo "999.............."
	if [ $mem1 -lt 64 ];then 
		 v_min_free_kbytes=1048576
	elif [ $mem1 -ge 64 ] && [ $mem1 -lt 128 ] ; then 
		 v_min_free_kbytes=2097152
	else
		 v_min_free_kbytes=3145728
	fi
	echo "aaaa.............."
	echo "##########Shared Memory###############" >>/etc/sysctl.conf
	echo "kernel.shmmax=$nshmmax">>/etc/sysctl.conf
	echo "kernel.shmmni=4096">>/etc/sysctl.conf
	echo "kernel.shmall=$nshmall">>/etc/sysctl.conf
	echo "##########Semaphore Arrays############">>/etc/sysctl.conf
	echo "kernel.sem=6144 50331648 4096 8192">>/etc/sysctl.conf
	echo "##########open file###################">>/etc/sysctl.conf
	echo "fs.file-max=6815744">>/etc/sysctl.conf
	echo "##########aio#########################">>/etc/sysctl.conf
	echo "fs.aio-max-nr=3145728">>/etc/sysctl.conf
	echo "##########network#####################">>/etc/sysctl.conf
	echo "net.ipv4.icmp_echo_ignore_broadcasts=1">>/etc/sysctl.conf
	echo "net.ipv4.icmp_ignore_bogus_error_responses=1">>/etc/sysctl.conf
	echo "net.ipv4.conf.all.rp_filter=1">>/etc/sysctl.conf
	echo "net.ipv4.conf.default.rp_filter=1">>/etc/sysctl.conf
	echo "net.ipv4.tcp_syncookies=1">>/etc/sysctl.conf
	echo "net.ipv4.tcp_fin_timeout=30">>/etc/sysctl.conf
	echo "net.ipv4.tcp_keepalive_time=1500">>/etc/sysctl.conf
	echo "net.ipv4.tcp_keepalive_probes=5">>/etc/sysctl.conf
	echo "net.ipv4.tcp_keepalive_intvl=60">>/etc/sysctl.conf
	echo "net.ipv4.tcp_window_scaling=1">>/etc/sysctl.conf
	echo "net.core.rmem_default=262144">>/etc/sysctl.conf
	echo "net.core.wmem_default=262144">>/etc/sysctl.conf
	echo "net.core.rmem_max=4194304">>/etc/sysctl.conf
	echo "net.core.wmem_max=4194304">>/etc/sysctl.conf
	echo "net.ipv4.tcp_rmem=8192 262144 4194304">>/etc/sysctl.conf
	echo "net.ipv4.tcp_wmem=8192 262144 4194304">>/etc/sysctl.conf
	echo "net.ipv4.ip_local_port_range=9000 65500">>/etc/sysctl.conf
	echo "##########CORE######################">>/etc/sysctl.conf
	echo "kernel.core_uses_pid=1">>/etc/sysctl.conf
	echo "##########Message Queues##############">>/etc/sysctl.conf
	echo "kernel.msgmax=655360">>/etc/sysctl.conf
	echo "kernel.msgmni=4096">>/etc/sysctl.conf
	echo "kernel.msgmnb=1024000">>/etc/sysctl.conf
	echo "##########vm config###################">>/etc/sysctl.conf
	echo "vm.min_free_kbytes=$v_min_free_kbytes">>/etc/sysctl.conf
	echo "vm.vfs_cache_pressure=200">>/etc/sysctl.conf
	echo "vm.swappiness=10">>/etc/sysctl.conf
fi

echo "333............................"
sysctl -p


systemctl status vsftpd

yum -y install ftp vsftpd
anum=`cat -n /etc/vsftpd/ftpusers |grep "root"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ]; then
	echo  "nothing need to do."
else
	sed -i "`cat -n /etc/vsftpd/ftpusers |grep "root"|grep -v "#" |awk '{print $1}'`c #root" /etc/vsftpd/ftpusers
fi
anum=`cat -n /etc/vsftpd/user_list |grep "root"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ]; then
	echo  "nothing need to do."
else
	sed -i "`cat -n /etc/vsftpd/user_list |grep "root"|grep -v "#" |awk '{print $1}'`c #root" /etc/vsftpd/user_list
fi

anum=`cat -n /etc/vsftpd/vsftpd.conf |grep "anonymous_enable"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ]; then
	echo  "anonymous_enable=NO">> /etc/vsftpd/vsftpd.conf
else
	sed -i "`cat -n /etc/vsftpd/vsftpd.conf |grep "anonymous_enable"|grep -v "#" |awk '{print $1}'`c anonymous_enable=NO" /etc/vsftpd/vsftpd.conf
fi

anum=`cat -n /etc/vsftpd/vsftpd.conf |grep "write_enable"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ]; then
	echo  "write_enable=YES">> /etc/vsftpd/vsftpd.conf
else
	sed -i "`cat -n /etc/vsftpd/vsftpd.conf |grep "write_enable"|grep -v "#" |awk '{print $1}'`c write_enable=YES" /etc/vsftpd/vsftpd.conf
fi

anum=`cat -n /etc/vsftpd/vsftpd.conf |grep "local_enable"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ]; then
	echo  "local_enable=YES">> /etc/vsftpd/vsftpd.conf
else
	sed -i "`cat -n /etc/vsftpd/vsftpd.conf |grep "local_enable"|grep -v "#" |awk '{print $1}'`c local_enable=YES" /etc/vsftpd/vsftpd.conf
fi

anum=`cat -n /etc/vsftpd/vsftpd.conf |grep "ascii_upload_enable"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ]; then
	echo  "ascii_upload_enable=YES">> /etc/vsftpd/vsftpd.conf
else
	sed -i "`cat -n /etc/vsftpd/vsftpd.conf |grep "ascii_upload_enable"|grep -v "#" |awk '{print $1}'`c ascii_upload_enable=YES" /etc/vsftpd/vsftpd.conf
fi

anum=`cat -n /etc/vsftpd/vsftpd.conf |grep "ascii_download_enable"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ]; then
	echo  "ascii_download_enable=YES">> /etc/vsftpd/vsftpd.conf
else
	sed -i "`cat -n /etc/vsftpd/vsftpd.conf |grep "ascii_download_enable"|grep -v "#" |awk '{print $1}'`c ascii_download_enable=YES" /etc/vsftpd/vsftpd.conf
fi

anum=`cat -n /etc/vsftpd/vsftpd.conf |grep "use_localtime"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ]; then
	echo  "use_localtime=YES">> /etc/vsftpd/vsftpd.conf
else
	sed -i "`cat -n /etc/vsftpd/vsftpd.conf |grep "use_localtime"|grep -v "#" |awk '{print $1}'`c use_localtime=YES" /etc/vsftpd/vsftpd.conf
fi

systemctl restart vsftpd

##anum=`cat -n /etc/hosts |grep "10.119.193"|grep -v "#" |awk '{print $1}'|wc -l`
##if [ $anum -eq 0 ];then
##	echo "10.119.193.1   edr-app01" >>/etc/hosts
##	echo "10.119.193.2   edr-app02" >>/etc/hosts
##	echo "10.119.193.3   edr-app03" >>/etc/hosts
##	echo "10.119.193.4   edr-app04" >>/etc/hosts
##	echo "10.119.193.5   edr-app05" >>/etc/hosts
##	echo "10.119.193.6   edr-app06" >>/etc/hosts
##	echo "10.119.193.7   edr-app07" >>/etc/hosts
##	echo "10.119.193.8   edr-app08" >>/etc/hosts
##	echo "10.119.193.9   edr-app09" >>/etc/hosts
##fi 


if [ ! -f /etc/rsyslog.conf.bak ];then 
	cp /etc/rsyslog.conf /etc/rsyslog.conf.bak
fi 

a=`cat -n /etc/rsyslog.conf|grep "RULES"|awk '{print $1}'`
b=`expr $a + 1`

anum=`cat -n /etc/rsyslog.conf |grep "umask 0022"|grep -v "#" |awk '{print $1}'|wc -l`
if [ $anum -eq 0 ]; then
  echo "# set messages privilege">> /etc/rsyslog.conf
	echo  "\$umask 0022">> /etc/rsyslog.conf
else
	sed -i "`cat -n /etc/rsyslog.conf |grep "umask 0022"|grep -v "#" |awk '{print $1}'`c \$umask 0022" /etc/rsyslog.conf
fi

cp /var/log/messages /var/log/messages.bak
rm -rf /var/log/messages

systemctl restart rsyslog



yum -y install aide \
audit \
bind-utils \
expect \
ipa-client \
ksh \
mailx \
man-db \
mlocate \
nmap-ncat \
net-snmp \
ntpdate \
openssh-clients \
openssh-server \
parted \
perl \
postfix \
screen \
setroubleshoot-server \
sudo \
sysstat \
tcpdump \
vim-enhanced \
wget \
libstdc++.i686 \
glibc.i686 \
psmisc \
net-tools \
unzip \
gcc \
gcc-c++ \
lsof \
bc \
xfsdump \
chrony \
dos2unix \
nmap \
telnet \
genisoimage \
iotop \
lm_sensors \
perl-Switch \
createrepo \
dstat \
smartmontools \
pciutils \
pciutils-libs \
openssl \
openssl-devel 




#for oracle 12.2  
yum -y install bc
yum -y install binutils
yum -y install compat-libcap1
yum -y install compat-libstdc++-33
yum -y install glibc
yum -y install glibc-devel
yum -y install ksh
yum -y install libaio
yum -y install libaio-devel
yum -y install libgcc
yum -y install libstdc++
yum -y install libstdc++-devel
yum -y install libxcb
yum -y install libX11
yum -y install libXau
yum -y install libXi
yum -y install libXtst
yum -y install libXrender
yum -y install libXrender-devel
yum -y install make
yum -y install net-tools
yum -y install nfs-utils
yum -y install smartmontools
yum -y install sysstat


###for oracle 19c 
yum -y install bc
yum -y install binutils
yum -y install compat-libcap1
yum -y install compat-libstdc++
yum -y install compat-libstdc++-33
yum -y install elfutils-libelf
yum -y install elfutils-libelf-devel
yum -y install fontconfig-devel
yum -y install glibc
yum -y install glibc-devel
yum -y install ksh
yum -y install libaio
yum -y install libaio-devel
yum -y install libgcc
yum -y install librdmacm-devel
yum -y install libstdc++
yum -y install libstdc++-devel
yum -y install libxcb
yum -y install libX11
yum -y install libXau
yum -y install libXi
yum -y install libXtst
yum -y install libXrender
yum -y install libXrender-devel
yum -y install make
yum -y install net-tools
yum -y install nfs-utils
yum -y install smartmontools
yum -y install sysstat

2、os_add.sh

3、/etc/hosts
192.168.2.120  rac1
192.168.2.121  rac2

192.168.2.122  rac1-vip
192.168.2.123  rac2-vip

192.168.2.124  scan-ip

193.169.1.11  rac1-priv
193.169.1.12  rac2-priv


4、创建用户
groupadd -g 1000 oinstall
groupadd -g 1001 dba
groupadd -g 1002 oper
groupadd -g 1010 asmadmin
groupadd -g 1011 asmdba
groupadd -g 1012 asmoper

useradd -u 1000 -g oinstall -G dba,asmdba  -m oracle
useradd -u 1001 -g oinstall -G asmadmin,asmdba,asmoper -m grid

echo Grid@123|passwd --stdin grid
echo Oracle@123|passwd --stdin oracle

5、创建目录
####for oracle 19c########
mkdir -p /oracle/app/19.3.0/grid
mkdir -p /oracle/app/grid
mkdir /oracle/soft
chown grid:oinstall /oracle
chown -R grid:oinstall /oracle/app
mkdir /oracle/app/oracle
chown oracle:oinstall /oracle/app/oracle
mkdir -p /oracle/app/oracle/product/19.3.0/db
chown -R oracle:oinstall /oracle/app/oracle
chmod 775 /oracle/
chmod -R 775 /oracle/app
chmod 777 /oracle/soft

####for oracle 11g########
mkdir -p /oracle/app/11.2.0/grid
mkdir -p /oracle/app/grid
mkdir /oracle/soft
chown grid:oinstall /oracle
chown -R grid:oinstall /oracle/app
mkdir /oracle/app/oracle
chown oracle:oinstall /oracle/app/oracle
mkdir -p /oracle/app/oracle/product/11.2.0/db
chown -R oracle:oinstall /oracle/app/oracle
chmod 775 /oracle/
chmod -R 775 /oracle/app
chmod 777 /oracle/soft

6、环境变量

grid用户:
export ORACLE_SID=+ASM1
export ORACLE_BASE=/grid/grid_base
export ORACLE_HOME=/grid/app/grid
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATHF:$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib:.
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

oracle用户:
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/product/12.2/db_home
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATHF:$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib:.
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK


###for oracle19c#########
grid用户:
export ORACLE_BASE=/oracle/app/grid
export ORACLE_HOME=/oracle/app/19.3.0/grid
export ORACLE_SID=+ASM1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib:.
export SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:.
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/local/bin:/usr/bin:/usr/sbin:/usr/bin/X11:$PATH:.
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib


oracle用户:
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/19.3.0/db
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib:.
export SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:.
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/local/bin:/usr/bin:/usr/sbin:/usr/bin/X11:$PATH:.
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

###for oracle11g#########
grid用户:
export ORACLE_BASE=/oracle/app/grid
export ORACLE_HOME=/oracle/app/11.2.0/grid
export ORACLE_SID=+ASM1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib:.
export SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:.
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/local/bin:/usr/bin:/usr/sbin:/usr/bin/X11:$PATH:.
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib


oracle用户:
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/db
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib:.
export SHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:.
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/local/bin:/usr/bin:/usr/sbin:/usr/bin/X11:$PATH:.
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib


7、/etc/profile

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
                     ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
        umask 022
fi

8、配置用户限制
-----------配置用户限制 
vi /etc/security/limits.conf
===========================limit.conf=====================================
########### BEGIN DO NOT REMOVE Added by Oracle Deployment Scripts ###########

oracle     soft    core       unlimited
oracle     hard    core       unlimited
oracle     soft    nproc       131072
oracle     hard    nproc       131072
oracle     soft    nofile       65536
oracle     hard    nofile       65536
oracle     soft    memlock       793816197
oracle     hard    memlock       793816197
oracle     soft    stack       10240
oracle     hard    stack       10240
########### END DO NOT REMOVE Added by Oracle Deployment Scripts ###########
root    soft    core       unlimited
root    hard    core       unlimited
root    soft    nproc       131072
root     hard    nproc       131072
root     soft    nofile       65536
root     hard    nofile       65536 
root     soft    memlock       793816197
root     hard    memlock       793816197
########### BEGIN DO NOT REMOVE Added by Oracle Deployment Scripts ###########

grid    soft    core       unlimited
grid    hard    core       unlimited
grid    soft    nproc       131072
grid    hard    nproc       131072
grid    soft    nofile       65536
grid    hard    nofile       65536
grid    soft    memlock       793816197
grid    hard    memlock       793816197
# End of file


9、添加共享存储
注意:无论是vmware esxi还是vmware workstation都需要在创建共享磁盘的时候选择一次性分配所有磁盘空间,否则会在节点二执行root.sh脚本的时候报如下的错:
OLR initialization - successful
Adding Clusterware entries to inittab
CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node rac1, number 1, and is terminating
An active cluster was found during exclusive startup, restarting to join the cluster
Start of resource "ora.crsd" failed
CRS-2800: Cannot start resource 'ora.asm' as it is already in the INTERMEDIATE state on server 'rac2'
CRS-4000: Command Start failed, or completed with errors.
Failed to start Oracle Grid Infrastructure stack
Failed to start Cluster Ready Services at /oracle/app/11.2.0/grid/crs/install/crsconfig_lib.pm line 1353.
/oracle/app/11.2.0/grid/perl/bin/perl -I/oracle/app/11.2.0/grid/perl/lib -I/oracle/app/11.2.0/grid/crs/install /oracle/app/11.2.0/grid/crs/install/rootcrs.pl execution failed

9.1、虚机全关机
9.2、添加共享磁盘(注意要选一次性分配所有磁盘空间)
9.3、编辑虚机的.vmx文件(所有rac节点都需要添加),添加如下内容:
scsi1.sharedBus = "virtual"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.EnableUUID = "TRUE"
说明:因为虚拟机点都是使用的 scsi1 ,因此使用 scsi1.sharedBus = "virtual" 

10、分区
fdisk /dev/sdb
fdisk /dev/sdc
此处只分一个区,将全部磁盘空间分给分区1

11、添加udev规则
cd /etc/udev/rules.d
然后创建一个规则文件,后缀一定要是.rules:
vi 99-ASM.rules
写入如下内容:

没有对sdb进行分区,执行如下shell脚本,
for i in b ;
do
echo "KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" ? ? ?
done
 
对sdb 进行了分区,执行如下shell脚本,
for i in b1 c1 d1 e1
do
 echo "KERNEL==\"sd$i\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$parent\", RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd${i:0:1}`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""      
done;

手工加载裸设备
/sbin/partprobe /dev/sdb1
/sbin/partprobe /dev/sdc1
/sbin/partprobe /dev/sdd1
/sbin/partprobe /dev/sde1
/sbin/partprobe /dev/sdf1
/sbin/partprobe /dev/sdg1
/sbin/partprobe /dev/sdh1
 
获取RESULT
在 Linux 7下,可以使用如下命令:
# /usr/lib/udev/scsi_id -g -u /dev/sdb

在 Linux 6下,可以使用如下命令:
# /sbin/scsi_id -g -u /dev/sdb

用udevadm进行测试,注意udevadm命令不接受/dev/sdc这样的挂载设备名,必须是使用/sys/block/sdb这样的原始设备名。
udevadm test /sys/block/sdb1
udevadm info --query=all --path=/sys/block/sdb
udevadm info --query=all --name=asm-diskb1

udevadm test /sys/block/sdc1
udevadm info --query=all --path=/sys/block/sdc
udevadm info --query=all --name=asm-diskc1

udevadm test /sys/block/sdd1
udevadm info --query=all --path=/sys/block/sdd
udevadm info --query=all --name=asm-diskd1

udevadm test /sys/block/sde1
udevadm info --query=all --path=/sys/block/sde
udevadm info --query=all --name=asm-diske1

udevadm test /sys/block/sdf1
udevadm info --query=all --path=/sys/block/sdf
udevadm info --query=all --name=asm-diskf1

udevadm test /sys/block/sdg1
udevadm info --query=all --path=/sys/block/sdg
udevadm info --query=all --name=asm-diskg1

udevadm test /sys/block/sdh1
udevadm info --query=all --path=/sys/block/sdh
udevadm info --query=all --name=asm-diskh1
 
12、启动udev
/usr/sbin/udevadm control --reload-rules
systemctl status systemd-udevd.service
systemctl enable systemd-udevd.service


13、检查设备是否正确绑定
ls -l /dev/asm* /dev/sd*
root@rac1[/root]#ls -l /dev/asm* /dev/sd*
lrwxrwxrwx 1 root root         4 Aug  7 15:25 /dev/asm-diskb1 -> sdb1
lrwxrwxrwx 1 root root         4 Aug  7 15:25 /dev/asm-diskc1 -> sdc1
lrwxrwxrwx 1 root root         4 Aug  7 15:25 /dev/asm-diskd1 -> sdd1
lrwxrwxrwx 1 root root         4 Aug  7 15:25 /dev/asm-diske1 -> sde1
brw-rw---- 1 root disk     8,  0 Aug  7 15:25 /dev/sda
brw-rw---- 1 root disk     8,  1 Aug  7 15:25 /dev/sda1
brw-rw---- 1 root disk     8,  2 Aug  7 15:25 /dev/sda2
brw-rw---- 1 root disk     8, 16 Aug  7 15:25 /dev/sdb
brw-rw---- 1 grid asmadmin 8, 17 Aug  7 15:25 /dev/sdb1
brw-rw---- 1 root disk     8, 32 Aug  7 15:25 /dev/sdc
brw-rw---- 1 grid asmadmin 8, 33 Aug  7 15:25 /dev/sdc1
brw-rw---- 1 root disk     8, 48 Aug  7 15:25 /dev/sdd
brw-rw---- 1 grid asmadmin 8, 49 Aug  7 15:25 /dev/sdd1
brw-rw---- 1 root disk     8, 64 Aug  7 15:25 /dev/sde
brw-rw---- 1 grid asmadmin 8, 65 Aug  7 15:25 /dev/sde1
注意后面创建asm磁盘组的时候,要将asm_strings搜索字符串设置为:/dev/sd*
注意:
brw-rw---- 1 grid asmadmin 8, 17 Aug  7 15:25 /dev/sdb1
裸设备文件的权限是
brw-rw----
后面不能带.
brw-rw----. 1 grid asmadmin 8, 49 Aug  7 15:25 /dev/sdd1
后面带.了就说明selinux没关,记得关了重启一下主机


13、安装vnc
yum groupinstall "X Window System"
yum -y install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
yum install -y tigervnc-server 
启动vnc
vncserver 
输入连接时的密码即可。

14、免密
==============ssh=================================================
两节点都执行
mkdir ~/.ssh/
chmod -R 700 ~/.ssh/
ssh-keygen -t rsa
ssh-keygen -t dsa

只在节点rac01上执行
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh orac02 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh orac02 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys orac02:~/.ssh/

在两节点上都执行
su - grid
chmod 600 ~/.ssh/authorized_keys
chmod -R 700 ~/.ssh/
chmod 700 /grid   #(后面的目录是用户的home目录)一定要执行,否则免密会在/var/log/secure文件里面报orac02 sshd[8875]: Authentication refused: bad ownership or modes for directory /grid这个错


两节点都执行(上面做完即可测试免密是否正常,如果正常本不忽略)
ssh-copy-id -i /grid/.ssh/id_rsa.pub  grid@orac01
ssh-copy-id -i /grid/.ssh/id_rsa.pub  grid@orac02
ssh-copy-id -i /grid/.ssh/id_dsa.pub  grid@orac01
ssh-copy-id -i /grid/.ssh/id_dsa.pub  grid@orac02

免密测试
su - grid
ssh orac01 date 
ssh orac02 date
ssh orac01-priv date 
ssh orac02-priv date

15、安装介质(安装介质存储位置自定义,不一定需要放/grid目录)
cd /grid
root@orac01[/grid]#ll
total 5368284
-rw-r--r-- 1 grid oinstall 2380448122 May 30 11:46 p32540149_122010_Linux-x86-64.zip
-rw-r--r-- 1 grid oinstall  121981878 May 30 11:39 p6880880_122010_Linux-x86-64.zip
-rw-r--r-- 1 grid oinstall 2994687209 May 29 21:51 V840012-01.zip
grid安装包:V840012-01.zip
OPatch:p6880880_122010_Linux-x86-64.zip
PSU:p32540149_122010_Linux-x86-64.zip

16、解压
unzip V840012-01.zip -d $ORACLE_HOME/
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_20210729
unzip p6880880_122010_Linux-x86-64.zip -d $ORACLE_HOME/
unzip p32540149_122010_Linux-x86-64.zip -d /grid/

17、安装
##for oracle 12.2 rac安装
cd $ORACLE_HOME
./gridSetup.sh -applyPSU /grid/32540149
这条命令需要确保$ORACLE_HOME目录可用空间在22G以上(4倍的psu的大小),否则会失败。
这种安装方式是在安装的时候,就把补丁打上,否则原安装包有bug,会报错
执行图形化界面安装的时候,如果指定了
./runInstaller -jreLoc /usr/lib/jvm/jre-1.8.0
选项,则两个节点都必须要有这个java目录,也就是两个节点都能同步安装java,否则会在节点二报错。
SEVERE: Remote 'AttachHome' failed on nodes: 'rac2'. Refer to '/oracle/app/oraInventory/logs/installActions2021-08-06_07-14-26PM.log' for details.
It is recommended that the following command needs to be manually run on the failed nodes:
 /oracle/app/11.2.0/grid/oui/bin/runInstaller -attachHome -noClusterEnabled ORACLE_HOME=/oracle/app/11.2.0/grid ORACLE_HOME_NAME=Ora11g_gridinfrahome1 CLUSTER_NODES=rac1,rac2 "INVENTORY_LOCATION=/oracle/app/oraInventory" LOCAL_NODE=<node on which command is to be run>.
Please refer 'AttachHome' logs under central inventory of remote nodes where failure occurred for more details.

如果执行root脚本失败卸载可以这样,然后重启启动图形化界面安装
rm -rf $ORACLE_HOME/*
rm -rf $ORACLE_BASE/*
rm -rf /etc/ora*

rm -rf /tmp/var/.oracle/

安装完成执行root第二个脚本报错:
2021/05/30 13:49:07 CLSRSC-614: failed to get the list of configured diskgroups
Died at /grid/app/grid/crs/install/oraasm.pm line 2069.
The command '/grid/app/grid/perl/bin/perl -I/grid/app/grid/perl/lib -I/grid/app/grid/crs/install /grid/app/grid/crs/install/rootcrs.pl ' execution failed

grid@rac01[/grid/app/grid]$asmcmd lsdg
kgfnGetConnDetails requires 4 parameters at /grid/app/grid/lib/asmcmdbase.pm line 5704.

vi /grid/app/grid/lib/asmcmdbase.pm
搜索"ASMCMDGetConnDetails",将该函数的最后一个参数"$listener"去掉

然后再次执行root脚本就可以了:
grid@rac01[/grid/app/grid]$asmcmd lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     16380    16088                0           16088              0             Y  CRSDG/

##for oracle11.2 rac安装
在第一个节点执行root.sh脚本的时候就报错:
Adding Clusterware entries to inittab
ohasd failed to start
Failed to start the Clusterware. Last 20 lines of the alert log follow: 
2021-08-08 01:07:54.264: 
[client(29576)]CRS-2101:The OLR was formatted using version 3.

/oracle/app/11.2.0/grid/perl/bin/perl -I/oracle/app/11.2.0/grid/perl/lib -I/oracle/app/11.2.0/grid/crs/install /oracle/app/11.2.0/grid/crs/install/rootcrs.pl execution failed
只需要重新开个窗口,用root用户执行如下命令(该命令执行不会退出)
dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
然后在直接重新运行root.sh脚本即可成功。
第二个节点执行root.sh脚本一样会报错,只需要在
  profile reader root cert TP
  pa root cert TP
  peer pa cert TP
  pa peer cert TP
  profile reader pa cert TP
  profile reader peer cert TP
  peer user cert
  pa user cert
Adding Clusterware entries to inittab
执行到这一步(这一步将会执行很长时间,所以不用太着急)的时候,新开一个窗口,同样用root用户执行上面那个dd命令即可保证避免上面那个报错。


17、图形界面最后一步会报一个错,查询日志是由于scan-ip无法正常解析造成的,只要ping scan-ip能通,这个报错可以忽略:
##for oracle 11.2 rac
INFO: -Doracle.installer.unixVersion=3.10.0-957.el7.x86_64
"/oracle/app/oraInventory/logs/installActions2021-08-08_12-40-20AM.log" [readonly] 14641L, 1129029C
INFO: PRVF-4657 : Name resolution setup check for "scan-ip" (IP address: 192.168.7.252) failed
INFO: ERROR:
INFO: PRVF-4664 : Found inconsistent name resolution entries for SCAN name "scan-ip"
INFO: Verification of SCAN VIP and Listener setup failed

18、安装完成继续执行
asmcmd
创建DATADG,建完就这样:
grid@rac01[/grid/app/grid]$asmcmd lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     16380    16032                0           16032              0             Y  CRSDG/
MOUNTED  EXTERN  N         512             512   4096  4194304    102396   102264                0          102264              0             N  DATADG/

19、安装crs完成更改crs参数
查看css参数
crsctl get css misscount      #misscount建议值90 
crsctl get css disktimeout    #disktimeout建议值200

如不符合上诉建议值
其中一个节点运行
crsctl set  css misscount 90
crsctl set  css disktimeout 200
####################################################################################################
关闭crs的随系统自启动
crsctl disable crs


20、修改磁盘组属性值(一个节点改就行了,两个节点都会变)
修改磁盘组兼容性参数版本
set line 200
col value for a20
col name for a40
col DISKGROUP_NAME for a20
select a.GROUP_NUMBER,a.name DISKGROUP_NAME,b.name,value from v$asm_diskgroup a,v$asm_attribute b where a.GROUP_NUMBER=b.GROUP_NUMBER and b.name like 'compatible%';

11gR2:
ALTER DISKGROUP OCRDG SET ATTRIBUTE 'compatible.rdbms' = '11.2.0.0.0';
ALTER DISKGROUP SYSDG SET ATTRIBUTE 'compatible.rdbms' = '11.2.0.0.0';
ALTER DISKGROUP ARCHDG SET ATTRIBUTE 'compatible.rdbms' = '11.2.0.0.0';
ALTER DISKGROUP DATADG SET ATTRIBUTE 'compatible.rdbms' = '11.2.0.0.0';

ALTER DISKGROUP CRSDG SET ATTRIBUTE 'compatible.asm' = '19.3.0.0.0';

12cR2
ALTER DISKGROUP DATADG SET ATTRIBUTE 'compatible.rdbms' = '12.2.0.0.0';
ALTER DISKGROUP DATADG SET ATTRIBUTE 'compatible.asm' = '12.2.0.0.0';

19C
ALTER DISKGROUP CRSDG SET ATTRIBUTE 'compatible.rdbms' = '12.2.0.0.0';
ALTER DISKGROUP DATADG01 SET ATTRIBUTE 'compatible.rdbms' = '12.2.0.0.0';
ALTER DISKGROUP DATADG02 SET ATTRIBUTE 'compatible.rdbms' = '12.2.0.0.0';
ALTER DISKGROUP ARCH01 SET ATTRIBUTE 'compatible.rdbms' = '12.2.0.0.0';
ALTER DISKGROUP ARCH02 SET ATTRIBUTE 'compatible.rdbms' = '12.2.0.0.0';

查看diskgroup的repair_time
col name for a20
col value for a20
col DISKGROUP_NAME for a20
select a.GROUP_NUMBER,a.name DISKGROUP_NAME ,b.name,value from v$asm_diskgroup a,v$asm_attribute b where a.GROUP_NUMBER=b.GROUP_NUMBER and b.name like 'disk_repair_time%';

GROUP_NUMBER DISKGROUP_NAME       NAME                 VALUE
------------ -------------------- -------------------- --------------------
           1 CRSDG                disk_repair_time     72h
           2 DATADG               disk_repair_time     72h

SQL> 

修改disk_repair_time 
alter diskgroup CRSDG set ATTRIBUTE 'disk_repair_time'='72h' ;
alter diskgroup DATADG01 set ATTRIBUTE 'disk_repair_time'='72h' ;
alter diskgroup DATADG02 set ATTRIBUTE 'disk_repair_time'='72h' ;
alter diskgroup ARCH01 set ATTRIBUTE 'disk_repair_time'='72h' ;
alter diskgroup ARCH02 set ATTRIBUTE 'disk_repair_time'='72h' ;

21、修改asm实例隐含参数(两节点都执行)
su - grid
sqlplus / as sysasm
添加到failgroup的磁盘大小一致性和个数检查设置为不检查
alter system set "_asm_disable_failgroup_size_checking"=true ;  
alter system set "_asm_disable_dangerous_failgroup_checking"=true;  
设置v$asm_hidden_paras
alter system set "_asm_storagemaysplit"=TRUE scope=spfile ;
alter system set "_asm_hbeatiowait" = 95 scope=spfile sid='*'; 

SQL>alter system set "_asm_storagemaysplit"=TRUE scope=spfile ;   #PST Split Possible
SQL>alter system set "_asm_hbeatiowait" = 95 scope=spfile sid='*';   #number of secs to wait for PST Async Hbeat IO return 
SQL>show parameter _asm_storagemaysplit
SQL>show parameter "_asm_hbeatiowait"
关库重启集群
crsctl stop crs
crsctl start crs

22、安装oracle数据库
==============ssh=================================================
两节点都执行
su - oracle
rm -rf .ssh
mkdir ~/.ssh/
chmod 700 ~/.ssh/
ssh-keygen -t rsa
ssh-keygen -t dsa

只在节点rac01上执行
cat /oracle/.ssh/id_rsa.pub >> /oracle/.ssh/authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh rac02 cat /oracle/.ssh/id_rsa.pub >> /oracle/.ssh/authorized_keys
ssh rac02 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp /oracle/.ssh/authorized_keys rac02:/oracle/.ssh/

在两节点上都执行
su - oracle
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh/

两节点都执行
ssh-copy-id -i /oracle/.ssh/id_rsa.pub  oracle@rac01
ssh-copy-id -i /oracle/.ssh/id_rsa.pub  oracle@rac02
ssh-copy-id -i /oracle/.ssh/id_dsa.pub  oracle@rac01
ssh-copy-id -i /oracle/.ssh/id_dsa.pub  oracle@rac02

免密测试
su - oracle
ssh rac01 date 
ssh rac02 date
ssh rac01-priv date 
ssh rac02-priv date

vi /etc/ssh/sshd_config
注释打开:
PubkeyAuthentication yes

systemctl restart sshd
systemctl reload sshd

免密登陆失败的时候,可以在目标端看这个地方的日志,一般会报失败的原因:
tailf -200 /var/log/secure


23、安装oracle软件
su - root
vncserver

登陆vnc客户端:
su - root
xhost +

su - oracle
export DISPLAY=localhost:1
unzip V839960-01.zip
cd database
./runInstaller

24、升级grid补丁(升级grid要在安装完db软件之后做,否则没有ocm.rsp文件)
##for 11.2 rac
安装完grid直接升级grid的补丁,需要这两个包p6880880_112000_Linux-x86-64.zip是OPatch 版本
su - grid
$ORACLE_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.28
p31718723_112040_Linux-x86-64.zip是最新的psu,应该是2020年4月的
-rw-r--r-- 1 grid oinstall 1319414278 Aug  7 03:54 p31718723_112040_Linux-x86-64.zip
-rw-r--r-- 1 grid oinstall  122739146 Aug  8 03:48 p6880880_112000_Linux-x86-64.zip
su - oracle
cd /home/oracle
/oracle/app/oracle/product/11.2.0/db/ccr/bin/emocmrsp
oracle@rac1[/home/oracle]$ll
-rw-r--r-- 1 oracle oinstall        623 Aug  8 06:50 ocm.rsp
su - root
cp /home/oracle/ocm.rsp /home/grid/ocm.rsp 
chown grid:oinstall /home/grid/ocm.rsp 
##测试补丁兼容性
su - grid
$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /home/grid/31718723/29509309 -oh $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /home/grid/31718723/29938455 -oh $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /home/grid/31718723/31537677 -oh $ORACLE_HOME
#都需要成功才说明补丁匹配
#升级
su - root
#节点1
/oracle/app/11.2.0/grid/OPatch/opatch auto /home/grid/31718723 -oh /oracle/app/11.2.0/grid -ocmrf /home/grid/ocm.rsp
root@rac1[/root]#/oracle/app/11.2.0/grid/OPatch/opatch auto /home/grid/31718723 -oh /oracle/app/11.2.0/grid -ocmrf /home/grid/ocm.rsp
Executing /oracle/app/11.2.0/grid/perl/bin/perl /oracle/app/11.2.0/grid/OPatch/crs/patch11203.pl -patchdir /home/grid -patchn 31718723 -oh /oracle/app/11.2.0/grid -ocmrf /home/grid/ocm.rsp -paramfile /oracle/app/11.2.0/grid/crs/install/crsconfig_params

This is the main log file: /oracle/app/11.2.0/grid/cfgtoollogs/opatchauto2021-08-08_07-00-07.log

This file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/oracle/app/11.2.0/grid/cfgtoollogs/opatchauto2021-08-08_07-00-07.report.log

2021-08-08 07:00:08: Starting Clusterware Patch Setup
Using configuration parameter file: /oracle/app/11.2.0/grid/crs/install/crsconfig_params

Stopping CRS...
Stopped CRS successfully

patch /home/grid/31718723/29938455  apply successful for home  /oracle/app/11.2.0/grid 
patch /home/grid/31718723/31537677  apply successful for home  /oracle/app/11.2.0/grid 
patch /home/grid/31718723/29509309  apply successful for home  /oracle/app/11.2.0/grid 

Starting CRS...
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.

opatch auto succeeded.
#检查升级情况
su - grid
$ORACLE_HOME/OPatch/opatch lsinv 

#升级节点2
#上面的过程从头到尾在节点2上做一遍就行了

alter system set log_archive_dest_1='location=+ARCH01/orcl/arch'  scope=spfile;

25、新增redo日志组数量和大小

26、新增控制文件数量

27、开归档

28、开hugepage大页
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值