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大页