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
    评论
中顶洗浴管理系统针对这些场所实际需求。可以灵活管理手牌和包间,并对包间及服务实现自动计时、计费,对技师排班和灵活的提成设置,管理方式灵活、实用。系统界面简洁优美,操作直观简单,无需专门培训即可正常使用。适用于洗浴中心、高档会所、澡堂、桑拿、保健按摩、足浴、娱乐等以手牌管理为主的信息化管理场所。 中顶洗浴管理系统功能模块: 前台营业,数据服务,系统设置,POS销售,技师管理,会员管理,预订管理,库存管理,员工管理,钟房管理 硬件支持 IC卡,磁卡,描扫枪,小票和票据打印机,来电显示,客显。 配套应用 钟房管理、连锁应用、点单宝、平板电脑、触摸屏、酒店餐饮娱乐综合ERP 中顶洗浴管理系统产品优势 1.开单可自动加单:为来宾开单时系统统可自动根据此手牌类型预设的开单自动加单的商品进行自动增加消费。 2. 消费时支持类似套票、时价商品、称重商品、计价商品、别名、条码、自定义商品等具有多种特性的商品,支持多种点单状态(全部单个即起,叫起等),支持赠,退,商品备注。 3.强大的出品打印功能:出品分单,总单,漏打,催打等出品单据,可按商品,按商品类别打印,并支持出品条码打印。 4.强大的账单打印功能:支持账单的自设计,根据客户的多样需求自设计出符合客户自身的账单格式。 5.支持多种付款方式:如现金、刷卡等,用户还可根据需要增加设置其它的付款方式。 6.支持部分挂账:通常是对会员或协议单位提供的一种临时记账、签单等日后再统一结算的功能。 7.支持对挂账单的批量结帐功能;同时支持对某一单位挂账总额进行部分还款的功能。 8.完善的反结帐功能:对错账、漏单账重新修正结账。 9.丰富的优惠折扣方式:可以设置任意多种折扣方案,每种折扣方案都可以设置不同的折扣比例,同时针对不同商品类型单独再设折扣或不打折;还可以针对不同会员类型的会员或操作员指定不同的折扣方案。 10.支持多菜单管理:不同的房台类型可以指定不同的菜单,不同的菜单可以有不同的售价和不同的商品,消费时不同的房台区只能看到自已对应的菜单,通过多菜单可以实现同商品不同价以及分区域消费菜单要求有区别的用户需求。 11.支持特价商品功能:灵活的的特价设置功能,可以实现每天推出不同的特价商品来吸引客人来做为提高进店率的一种经营策略。 12.商品类型的细分更明确:商品类型支持大类小类,支持商品单独的会员价功能。 13.支持POS销售:配有POS销售模块。此功能也可用做店内小超市,做为POS销售终端来使用 14.支持技师管理:支持技师状态,技师排班,技师预定管理等功能 15.支持物品寄存:此功能支持客人随身物品寄存和消费品寄存(如茶叶,酒水等) 16.房台区域化管理:可以实现不同的营业站点显示不同的区域,实现对复杂环境的简单化管理。 17支持最低消费和房台计费:支持最低消费;支持灵活多变的按时间计费房间费。 18.支持服务费的收取:服务费的收取可按人、按消费金额等多种方式算动计算收产生服务费。 19.支持计时商品:如棋牌室、提供休息的房间、计时服务等会按时长收取费用。 20.支持多种提成方式:可对值台服务生、促销员工、营销等员工等设置提成方案,充分调动员工的工作积极性,提高服务质量。 21.支持技师管理:对店内所有技师的排班、上下钟、技师预定、技师请假以及实时的技师服务状态、服务区域手牌的查询监控。 22.简单直观的预定管理,方便快速预订并快速查询客户预订情况,客人来电自动弹屏,并可快速的为客户预订指定时间可供预订的房间。 23.支持积分管理,可以支持按消费金额、按消费次数等多种积分方案。 24.库存管理支持大小单位的自动换算,方便库存管理中经常遇到的整进零售问题。 26.无论是单店,还是大型连锁企业,或者是餐饮客房洗浴等综合一体化的大型休闲娱乐中心,都提供有不同的完善的解决方案。、账务一览、押金预警、挂账单回款统计、日报月报等 27.同时支持手牌管理模式和房间管理模式 中顶洗浴管理系统截图

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值