Oracle 11GR2 single-machine one-click deployment (sh script)

Note: This script is only applicable to the initialization of the new system to install ORACLE. Please do not use it in a system that already has an ORACLE database. If you have any problems, you will be responsible for the consequences.

###########################################################################################
## Author:lucifer
## 本文档针对 Red Hat Enterprise Linux Server release 6.x 7.x 版本 进行 11GR2 单实例 部署的配置操作
## ORACLE VERSION:ORACLE 11204
###########################################################################################
##需要提前配置Public IP
##需要提前创建 /soft 目录,并提前将安装包上传到目录中
##运行:sh /soft/11204单机一键部署.sh |tee -a /soft/11204_install.log 可以追加日志
##需要创建 /soft 目录资料上传到目录中
## 0.  参数提前配置
## 1.  环境信息检查
## 2.  节点信息确认
## 3.  关闭防火墙
## 4.  关闭LINUX操作系统的SELINUX功能
## 5.  配置hosts文件
## 6.  安装必要的软件包
## 7.  关闭大页
## 8.  内核参数调整
## 9.  用户目录及Limit环境配置
## 10. Edit responseFile of db_install.rsp
## 11. 静默安装oracle软件
## 12. dbca静默建库
## 13. 启动监听
################################### 已验证 Linux 发行版 #############################
#rhel-server-6.8-x86_64
#rhel-server-6.9-x86_64
#CentOs-7.8-x86_64
#CentOS Linux release 7.6.1810 (Core)
#Red Hat Enterprise Linux Server release 7.9 (Maipo)
#ORACLE LINUX 6.8
################################### 请根据自己实际情况修改变量 ########################

1. Host configuration

1. Install rhel-server-6.8-x86_64 system (minimal installation)

2. Configure publicIP

[root@t11g ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 
[root@t11g ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
HWADDR=08:00:27:47:B9:E2
TYPE=Ethernet
UUID=037f6cb7-441b-4244-a3b8-7f7148e1ccbe
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.56.100
NETMASK=25.255.255.0
[root@t11g ~]# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 192.168.56.100 is already in use for device eth0...
                                                           [  OK  ]

3. Create the installation package directory/soft

mkdir /soft

Two, parameter configuration

################################### 请根据自己实际情况修改变量 ########################
## 0. 参数提前配置
###################################################################################

## 1. IP规划
## public IP,根据实际需要修改
PublicIP=192.168.1.120

## 2. 主机名,根据实际需要修改
HostName=g11g

## 3. 数据库实例名称,根据实际需要修改
ORACLE_SIDTemp=orcl

## 4. 密码设置
## Oracle用户密码
oraclePasswd=oracle

###################################################################################
## 以下参数如无特殊需求,可以不改
###################################################################################

## 5. 字符集
##数据库字符集
CharacterSet=AL32UTF8

##国家字符集
NationalCharacterSet=AL16UTF16

## 7. 安装软件存放目录
Soft=/soft

# oracle 根目录
OracleHomeTemp=/u01

# 安装grid时候的:ORAINVENTORY
ORAINVENTORYTemp=/u01/app/oraInventory

## 安装database时候的:Oracle Base
ORACLE_BASETemp=/u01/app/oracle

# 安装database时候的:Oracle home
ORACLE_HOMETemp=/u01/app/oracle/product/11.2.0/db

# 数据文件位置
ORADATATemp=/oradata

## 8. 安装文件名称
#ORACLE安装包名称
OracleSoft1=p13390677_112040_Linux-x86-64_1of7.zip
OracleSoft2=p13390677_112040_Linux-x86-64_2of7.zip

#通过变量给字体加颜色
#这里定义一个c1()函数,后面如果想改变字体颜色直接调用即可
c1() {
  RED_COLOR='\E[1;31m'
  GREEN_COLOR='\E[1;32m'
  YELLOW_COLOR='\E[1;33m'
  BLUE_COLOR='\E[1;34m'
  PINK_COLOR='\E[1;35m'
  WHITE_BLUE='\E[47;34m'
  DOWN_BLUE='\E[4;36m'
  FLASH_RED='\E[5;31m'
  RES='\E[0m'

  #这里判断传入的参数是否不等于2个,如果不等于2个就提示并退出
  if [ $# -ne 2 ]; then
    echo "Usage $0 content {red|yellow|blue|green|pink|wb|db|fr}"
    exit
  fi

  case "$2" in
  red | RED)
    echo -e "${RED_COLOR}$1${RES}"
    ;;
  yellow | YELLOW)
    echo -e "${YELLOW_COLOR}$1${RES}"
    ;;
  green | GREEN)
    echo -e "${GREEN_COLOR}$1${RES}"
    ;;
  blue | BLUE)
    echo -e "${BLUE_COLOR}$1${RES}"
    ;;
  pink | PINK)
    echo -e "${PINK_COLOR}$1${RES}"
    ;;
  wb | wb)
    echo -e "${WHITE_BLUE}$1${RES}"
    ;;
  db | db)
    echo -e "${DOWN_BLUE}$1${RES}"
    ;;
  fr | fr)
    echo -e "${FLASH_RED}$1${RES}"
    ;;
  *)
    echo -e "请输入指定的颜色代码:{red|yellow|blue|green|pink|wb|db|fr}"
    ;;
  esac
}

##示例
##c1 "程序安装报错!" red
##c1 "程序安装成功!" green
##c1 "输出相关注释信息" blue

2. Environmental inspection

###################################################################################
## 1. 环境信息检查
###################################################################################
# 请选择你的系统版本(RedHat6或者Redhat7)
read -p "系统版本为:6 or 7:" LinuxVer
if [ ${LinuxVer} -eq 6 ]; then
  c1 "您选择的系统是Linux发行版:6" blue
elif [ ${LinuxVer} -eq 7 ]; then
  c1 "您选择的系统是Linux发行版:7" blue
else
  c1 "输入错误,程序将推出" red
  exit
fi
echo
# 检查当前用户是否为root权限
if [ "$(id -u)" -eq 0 ]; then
  c1 "当前用户是root用户,将继续安装!" wb

else
  c1 "非root用户!" red
  exit 0
fi
echo
echo "##################################################################################"
echo
c1 "1. 环境信息检查:" red
echo
echo "##################################################################################"
echo
c1 "OS Release Info:" blue
echo
more /etc/system-release
echo
c1 "OS Kernel Info:" blue
uname -r
echo
cpu=$(grep "model name" /proc/cpuinfo | wc -l)
c1 "Cpu Info: " blue
echo
echo $cpu
echo
MemTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
memory=$(expr $MemTotal / 1048576)
##分配给ORACLE的内存,1/3
MemOracle=$(expr $MemTotal / 3072)
c1 "Memory Info: " blue
echo
echo $memory G
echo
SwapTotal=$(grep SwapTotal /proc/meminfo | awk '{print $2}')
swap=$(expr $SwapTotal / 1048576)
c1 "Swap Info: " blue
echo
echo $swap G
echo
c1 "ZONE:" blue
echo
if [ ${LinuxVer} -eq 6 ]; then
  more /etc/sysconfig/clock
else
  timedatectl | grep zone
fi
echo
c1 "Tmp Info:" blue
echo
df -h /tmp
echo
c1 "Disk Info:" blue
echo
df -h
echo
c1 "Network Info:" blue
echo
ip addr
echo
c1 "Transparent HugePages:" blue
echo
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
echo
#vm.min_free_kbytes,内存<=32G可以忽略设置,内存足够大时建议设置为512MB
c1 "vm.min_free_kbytes:" blue
echo
echo "vm.min_free_kbytes = $(cat /proc/sys/vm/min_free_kbytes) KB"
echo
c1 "vm.swappiness:" blue
echo
echo "vm.swappiness = $(cat /proc/sys/vm/swappiness)"
echo
c1 "Selinux:" blue
echo
grep ^SELINUX= /etc/selinux/config
echo
c1 "Firewalld:" blue
echo
if [ ${LinuxVer} -eq 6 ]; then
  service iptables status
  echo
  c1 "avahi-daemon:" blue
  echo
  service avahi-daemon status
else
  systemctl status firewalld | grep Active
  echo
  c1 "avahi-daemon:" blue
  echo
  systemctl status avahi-daemon
fi
echo
echo
sleep 1
# 输出提示,是否已设置静态公网IP并挂载光驱
echo
read -p "请确认您已经将PublicIP设置为静态公网IP并已挂载Linux安装镜像.按Enter键开始,Ctrl+C退出"
echo

Three, configuration before installation

###################################################################################
## 2. 防火墙关闭
###################################################################################

echo "###################################################################################"
echo
c1 "2. 防火墙关闭:" red
echo
echo "###################################################################################"
echo
if [ ${LinuxVer} -eq 6 ]; then
  service iptables stop
  chkconfig iptables off
  c1 "Iptables Check:" blue
  echo
  service iptables status
else
  systemctl stop firewalld
  systemctl disable firewalld
  systemctl stop avahi-daemon >/dev/null 2>&1
  systemctl disable avahi-daemon >/dev/null 2>&1
  c1 "Firewalld Check:" blue
  echo
  systemctl status firewalld | grep Active
  echo
  c1 "avahi-daemon Check:" blue
  echo
  systemctl status avahi-daemon

fi

###################################################################################
## 3. 关闭LINUX操作系统的SELINUX功能
###################################################################################
echo
echo "###################################################################################"
echo
c1 "3. 关闭LINUX操作系统的SELINUX功能 禁用ZEROCONF:" red
echo
echo "###################################################################################"
echo
##禁用SELINUX
SELINUX=$(grep ^SELINUX= /etc/selinux/config)
if [ $SELINUX != "SELINUX=disabled" ]; then
  cp /etc/selinux/config /etc/selinux/config.bak
  sed -i 's/^SELINUX=/#SELINUX=/g' /etc/selinux/config
  sed -i '$a SELINUX=disabled' /etc/selinux/config
else
  echo "SELINUX is already disabled"
fi
c1 "SELINUX Check:" blue
grep ^SELINUX= /etc/selinux/config

##禁用ZEROCONF
echo
NOZEROCONF=$(grep ^NOZEROCONF= /etc/sysconfig/network)
if [[ $NOZEROCONF != "" ]]; then
  cp /etc/sysconfig/network /etc/sysconfig/network.bak
  sed -i 's/^NOZEROCONF=/#NOZEROCONF=/g' /etc/sysconfig/network
  sed -i '$a NOZEROCONF=yes' /etc/sysconfig/network
else
  sed -i '$a NOZEROCONF=yes' /etc/sysconfig/network
fi
echo
c1 "NOZEROCONF Check:" blue
echo
grep ^NOZEROCONF= /etc/sysconfig/network

###################################################################################
## 4. 配置hosts文件和主机名
###################################################################################
echo "###################################################################################"
echo
c1 "4. 配置hosts文件和主机名:" red
echo
echo "###################################################################################"
HOSTNAME=$(grep "HOSTNAME" /etc/sysconfig/network)
if [ ${LinuxVer} -eq 6 ]; then
  if [[ $HOSTNAME != "" ]]; then
    echo "HOSTNAME is already set"
  else
    hostname ${HostName}
    sed -i "/HOSTNAME=/c HOSTNAME=${HostName}" /etc/sysconfig/network
  fi
else
  hostnamectl set-hostname $HostName
fi
echo
c1 "HOSTNAME Check:" blue
echo
hostname
echo
cat <<EOF >/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
$PublicIP $HostName
EOF
echo
c1 "Hosts Check:" blue
echo
cat /etc/hosts
echo

###################################################################################
## 5. 安装必要的软件包
###################################################################################

echo "###################################################################################"
echo
c1 "5. 安装必要的软件包:" red
echo
echo "###################################################################################"
echo
mount /dev/cdrom /media/ >/dev/null 2>&1
rm -rf /etc/yum.repos.d/*
cat >>/etc/yum.repos.d/local.repo <<"EOF"
[base]
name=base
baseurl=file:///media
enabled=1
gpgcheck=0
EOF
yum clean all >/dev/null 2>&1     #清理本地缓存
yum clean plugins >/dev/null 2>&1 #清理插件缓存
c1 "正在安装依赖包......" fr
echo
yum install -y binutils compat-libcap1 elfutils-libelf-devel compat-libstdc++* gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat readline* unzip device-mapper* smartmontools openssh-clients --skip-broken >/dev/null 2>&1
echo
c1 "RPM Check:" blue
echo
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils compat-libcap1 elfutils-libelf-devel compat-libstdc++ gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat readline
echo
c1 "依赖包安装完成" blue
echo

###################################################################################
## 6. Disable HugePage
###################################################################################
echo "################################################################################"
echo
c1 "6. Disable Transparent HugePages:" blue
echo
echo "################################################################################"
echo
if [ ${LinuxVer} -eq 6 ]; then
  cat >>/etc/rc.d/rc.local <<EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
  echo
else
  sed -i 's/quiet/quiet transparent_hugepage=never/' /etc/default/grub
  grub2-mkconfig -o /boot/grub2/grub.cfg >/dev/null 2>&1
fi

#临时生效:
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo never >/sys/kernel/mm/transparent_hugepage/defrag
echo
c1 "Transparent HugePages Check:" blue
echo
cat /sys/kernel/mm/transparent_hugepage/enabled
echo

###################################################################################
## 7. 内核参数调整
###################################################################################

echo "#################################################################################"
echo
c1 "7. 内核参数调整:" red
echo
echo "#################################################################################"
cp /etc/sysctl.conf /etc/sysctl.conf.bak
cat >/etc/sysctl.conf <<EOF
##################### Sysctl Add #####################
kernel.shmall = 2097152
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
##################### Sysctl End #####################
EOF
echo
c1 "SYSCTL Check:" blue
echo
sysctl -p
echo

###################################################################################
## 8. 用户、目录及Limit环境配置
###################################################################################

echo "###################################################################################"
echo
c1 "8. 用户、目录及Limit环境配置:" red
echo
echo "###################################################################################"
echo
c1 "8.1 创建用户组和用户:" blue
echo
OINSTALL=$(grep "oinstall" /etc/group)
DBA=$(grep "dba" /etc/group)
OPER=$(grep "oper" /etc/group)
ORACLE=$(grep "oracle" /etc/passwd)

if [[ $OINSTALL != "" ]]; then
  echo "GROUP OINSTALL is already create"
else
  groupadd oinstall
fi
echo
if [[ $DBA != "" ]]; then
  echo "GROUP DBA is already create"
else
  groupadd dba
fi
echo
if [[ $OPER != "" ]]; then
  echo "GROUP OPER is already create"
else
  groupadd oper
fi
echo
if [[ $ORACLE != "" ]]; then
  echo "USER ORACLE is already create"
else
  useradd -g oinstall -G dba,oper -u 1000 oracle
  echo $oraclePasswd | passwd --stdin oracle
fi
echo
c1 "Users Check:" blue
echo
id oracle
echo

c1 "8.2 创建目录:" blue
echo $ORAINVENTORYTemp
echo $ORACLE_BASETemp
echo $ORACLE_HOMETemp
echo $ORADATATemp
echo
mkdir -p $ORACLE_BASETemp
mkdir -p $ORACLE_HOMETemp
mkdir -p $ORADATATemp
mkdir -p $ORAINVENTORYTemp
chown -R oracle:oinstall $ORADATATemp
chown -R oracle:oinstall $ORAINVENTORYTemp
chown -R oracle:oinstall $ORACLE_BASETemp
chmod -R 775 $OracleHomeTemp

c1 "8.3 修改会话限制:" blue
echo
cp /etc/security/limits.conf /etc/security/limits.conf.bak
cat >/etc/security/limits.conf <<"EOF"
############### Limits Add ##########################
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
############### Limits End ##########################
EOF
c1 "Limits Check:" blue
echo
grep -v "#" /etc/security/limits.conf
echo
PAM_LIMITS=$(grep "pam_limits.so" /etc/pam.d/login)

if [[ $PAM_LIMITS != "" ]]; then
  echo "PAM_LIMITS is already set"
else
  cat >>/etc/pam.d/login <<"EOF"
################# Pam_limits Add ####################
session    required     pam_limits.so
################# Pam_limits End ####################
EOF
fi
echo
c1 "Pam_limits Check:" blue
echo
grep "pam_limits.so" /etc/pam.d/login
echo
c1 "8.4 编辑root用户环境变量:" blue
echo
ALIAS=$(grep "alias" /etc/profile)
if [[ $ALIAS != "" ]]; then
  echo "ROOT PROFILE is already set"
else
  cat >>/etc/profile <<"EOF"
################# Root Rrofile Add ############################
if [ $USER = "oracle" ] || [ $USER = "root" ]; then
        if  [ $SHELL = "/bin/ksh" ];  then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi
alias so='su - oracle'
################# Root Rrofile End ############################
EOF
fi
echo
c1 "8.5 编辑oracle用户环境变量:" blue
echo
ALIAS=$(grep "alias" /home/oracle/.bash_profile)
if [[ $ALIAS != "" ]]; then
  echo "ORACLE PROFILE is already set"
else
  cat <<EOF >>/home/oracle/.bash_profile
################ Oracle Profile Add #########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_BASE=$ORACLE_BASETemp
export ORACLE_HOME=$ORACLE_HOMETemp
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=$ORACLE_SIDTemp
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwrap lsnrctl'
alias asmcmd='rlwrap asmcmd'
alias adrci='rlwrap adrci'
alias sas='sqlplus / as sysdba'
alias ggsci='rlwrap ggsci'
alias alert='tail -500f \$ORACLE_BASE/diag/rdbms/$ORACLE_SIDTemp/$ORACLE_SIDTemp/trace/alert_$ORACLE_SIDTemp.log|more'
################ Oracle Profile End #########################
EOF
fi
echo
c1 "Oracle Profile Check:" blue
echo
cat /home/oracle/.bash_profile
echo
sleep 1
read -p "请检查以上设置是否存在错误,如发现错误,请修改后重新执行该脚本,如没有错误请按Enter键继续,Ctrl+C退出"
sleep 1
###################################################################################
## 9. 解压Oracle安装包
###################################################################################

echo
echo "###################################################################################"
echo
c1 "9. 解压Oracle安装包:" red
echo
echo "###################################################################################"
echo
c1 "需要提前上传的安装包:" blue
echo
c1 "p13390677_112040_Linux-x86-64_1of7.zip" red
c1 "p13390677_112040_Linux-x86-64_2of7.zip" red
c1 "pdksh-5.2.14-37.el5.x86_64.rpm" red
c1 "rlwrap-0.42.tar.gz" blue
echo
sleep 3
echo
read -p "请确认您已经将ORACLE安装包上传至$Soft,上传后按Enter键继续"
c1 "安装包正在解压中,等待时间比较久......" fr
cd $Soft
rpm -e ksh-20120801-33.el6.x86_64 >/dev/null 2>&1
rpm -ivh $Soft/pdksh-5.2.14-37.el5.x86_64.rpm >/dev/null 2>&1
unzip -q $Soft/$OracleSoft1
unzip -q $Soft/$OracleSoft2
tar -zxvf $Soft/rlwrap-0.42.tar.gz -C $Soft >/dev/null 2>&1
cd $Soft/rlwrap-0.42/
./configure >/dev/null 2>&1
make >/dev/null 2>&1
make install >/dev/null 2>&1
c1 "安装包解压完成!" blue
echo

Four, generate db.rsp silent file

####################################################################################
# 10. Edit ResponseFile Of Db.rsp
####################################################################################

echo "###################################################################################"
echo
c1 "10. Edit ResponseFile Of Db.rsp:" red
echo
echo "###################################################################################"
echo
su - -c "echo 'oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.option=INSTALL_DB_SWONLY' >> ${Soft}/db.rsp"
su - -c "echo 'ORACLE_HOSTNAME='${HostName} >> ${Soft}/db.rsp"
su - -c "echo 'UNIX_GROUP_NAME=oinstall' >> ${Soft}/db.rsp"
su - -c "echo 'INVENTORY_LOCATION='$ORAINVENTORYTemp >> ${Soft}/db.rsp"
su - -c "echo 'SELECTED_LANGUAGES=en' >> ${Soft}/db.rsp"
su - -c "echo 'ORACLE_HOME='${ORACLE_HOMETemp} >> ${Soft}/db.rsp"
su - -c "echo 'ORACLE_BASE='${ORACLE_BASETemp}>> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.InstallEdition=EE' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.EEOptionsSelection=false' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.optionalComponents=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.DBA_GROUP=dba' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.OPER_GROUP=oper' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.CLUSTER_NODES=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.isRACOneInstall=false' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.racOneServiceName=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.type=GENERAL_PURPOSE' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.installExampleSchemas=false' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.enableSecuritySettings=true' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.globalDBName=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.SID=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.characterSet=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.memoryOption=false' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.memoryLimit=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.password.ALL=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.password.SYS=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.password.SYSTEM=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.password.SYSMAN=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.password.DBSNMP=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.control=DB_CONTROL' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.automatedBackup.enable=false' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.automatedBackup.osuid=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.automatedBackup.ospwd=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.storageType=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.install.db.config.asm.diskGroup=' >> ${Soft}/db.rsp"
su - -c "echo 'MYORACLESUPPORT_USERNAME=' >> ${Soft}/db.rsp"
su - -c "echo 'MYORACLESUPPORT_PASSWORD=' >> ${Soft}/db.rsp"
su - -c "echo 'SECURITY_UPDATES_VIA_MYORACLESUPPORT=false' >> ${Soft}/db.rsp"
su - -c "echo 'DECLINE_SECURITY_UPDATES=true' >> ${Soft}/db.rsp"
su - -c "echo 'PROXY_HOST=' >> ${Soft}/db.rsp"
su - -c "echo 'PROXY_PORT=' >> ${Soft}/db.rsp"
su - -c "echo 'PROXY_USER=' >> ${Soft}/db.rsp"
su - -c "echo 'PROXY_PWD=' >> ${Soft}/db.rsp"
su - -c "echo 'PROXY_REALM=' >> ${Soft}/db.rsp"
su - -c "echo 'COLLECTOR_SUPPORTHUB_URL=' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.installer.autoupdates.option=SKIP_UPDATES' >> ${Soft}/db.rsp"
su - -c "echo 'oracle.installer.autoupdates.downloadUpdatesLoc=' >> ${Soft}/db.rsp"
su - -c "echo 'AUTOUPDATES_MYORACLESUPPORT_USERNAME=' >> ${Soft}/db.rsp"
su - -c "echo 'AUTOUPDATES_MYORACLESUPPORT_PASSWORD=' >> ${Soft}/db.rsp"
echo
cat ${Soft}/db.rsp
echo
chown -R oracle:oinstall $Soft
echo

Five, Oracle software silent installation

####################################################################################
# 11. 静默安装ORACLE软件
####################################################################################

echo
echo "###################################################################################"
echo
c1 "11. 静默安装ORACLE软件:" red
echo
echo "###################################################################################"
echo
su - oracle -c "${Soft}/database/runInstaller -silent -showProgress -ignoreSysPrereqs -ignorePrereq -responseFile ${Soft}/db.rsp"
echo
c1 "等待Successfully Setup Software.出现时,请按回车键继续" fr
echo
sleep 1
echo
read -p "Oracle Software正在安装......"
echo
##自动执行root.sh
$ORAINVENTORYTemp/orainstRoot.sh
$ORACLE_HOMETemp/root.sh
##设置sqlplus显示格式
echo set sqlprompt '&_user.@&_connect_identifier.>' >>$ORACLE_HOMETemp/sqlplus/admin/glogin.sql
echo
sleep 1
read -p "Oracle Software安装完成!按Enter键继续,Ctrl+C退出"
echo

Six, silently build a library & start monitoring

####################################################################################
# 12. dbca静默建库
####################################################################################
echo "###################################################################################"
echo "12. dbca静默建库"
echo
echo
su - oracle -c "dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname $ORACLE_SIDTemp -sid $ORACLE_SIDTemp -sysPassword $oraclePasswd -systemPassword $oraclePasswd -responseFile NO_VALUE -datafileDestination $ORADATATemp -redoLogFileSize 50 -storageType FS -listeners LISTENER -characterSet $CharacterSet -nationalCharacterSet $NationalCharacterSet -sampleSchema true -memoryPercentage 30 -totalMemory $MemOracle -databaseType OLTP -emConfiguration NONE"
echo
echo

####################################################################################
# 13. 启动监听
####################################################################################
echo "###################################################################################"
echo "13. 启动监听"
echo
echo
sleep 1
echo
read -p "请确认数据库实例已成功创建,按Enter键开始,Ctrl+C退出"
echo
##如果监听文件已创建,则启动监听,否则静默创建监听
if [ -f /$ORACLE_HOMETemp/network/admin/listener.ora ]; then
  su - oracle -c "lsnrctl start"
else
  su - oracle -c "netca -silent -responsefile ${Soft}/database/response/netca.rsp"
fi
echo
echo
c1 "恭喜您,数据库已创建成功!" red
echo

Seven, script usage

1. Touch a sh script and put all the above scripts in it in order.

2. According to the actual situation, modify the IP, host name, ORACLE_SID, oracle user password, and character set of the parameter configuration part.

3. Mount the disk image.

4. Switch to the root user, execute the script, and operate according to the script prompts.

sh 11GR2_auto_install.sh|tee 11GR2_auto_install.log

 

Guess you like

Origin blog.csdn.net/m0_50546016/article/details/115324065