Oracle 11GR2单机一键部署(sh脚本)
【摘要】 注:本脚本只适用于新系统用于安装ORACLE的初始化。请不要用于已存在ORACLE数据库的系统,如有问题,后果自负。############################################################################################# Author:lucifer## 本文档针对 Red Hat Enterprise Lin...
注:本脚本只适用于新系统用于安装ORACLE的初始化。请不要用于已存在ORACLE数据库的系统,如有问题,后果自负。
###########################################################################################
## 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、安装rhel-server-6.8-x86_64系统(最小化安装)
2、配置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、创建安装包目录/soft
mkdir /soft
二、参数配置
################################### 请根据自己实际情况修改变量 ########################
## 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
二、环境检查
###################################################################################
## 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
三、安装前配置
###################################################################################
## 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
四、生成db.rsp静默文件
####################################################################################
# 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
五、Oracle软件静默安装
####################################################################################
# 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
六、静默建库&启动监听
####################################################################################
# 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
七、脚本使用方式
1、touch一个sh脚本,将以上所有脚本按顺序放入其中。
2、根据实际情况,修改参数配置部分的IP,主机名,ORACLE_SID,oracle用户密码,字符集。
3、挂载磁盘镜像。
4、切换到root用户下,执行脚本,根据脚本提示进行操作。
sh 11GR2_auto_install.sh|tee 11GR2_auto_install.log
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)