Oracle 11g/12c/19c单机自动安装脚本

6 篇文章 0 订阅
#!/bin/bash

#Creation Data: 2019-06-26
#Last-Modified Date: 2020-06-05
#Author: Create by xiaoxuesong
#Mail: xiaoxuesong@longigroup.com
#Function: Oracle 11g/12c/19c install on Linux 6/7(oracle linux && redhat)
#version: 1.0 初版编写
#version: 1.1 加入判断是否归档模式,修改一些bug
#version: 1.2 加入安装目录判断,增加一些注释
#version: 1.3 加入字符集判断,设置默认字符集为AL32UTF8;丰富安装日志;增加GLOBLE_DBName环境变量;修改一些bug
#version: 2.0 判断OS版本,增加Linux 7的安装;判断DB版本,增加12.2.0.1的安装
#version: 3.0 使用function重构代码;增加安装判断;增加国家字符集判断;调整依赖的rpm包;自动判断OS版本;增加内存百分比设置参数;修改linux7 hostname目录;设置审计为none;设置DB密码不过期
#version: 3.1 修改一些配置项
#version: 3.2 增加了yum配置选项
#version: 4.0 增加19c安装配置,增加OS配置
#--可以完善的内容
#version: X   初始化变量输入时,加入不合理变量判断(比如判断Oracle_SID是否超过8个字符、密码合规性检查)
#			  判断是否创建CDB


#Readme :需要准备和确认的事情
#1,修改主机名/etc/sysconfig/network(linux6) 或者 /etc/hostname(linux7)
#2,软件安装路径和数据文件路径要提前规划好
#3,软件安装会自动下载到/tmp目录
#4,准备好yum源、NTP配置文件
#5,准备好监控脚本
#6,脚本必须放在Oracle用户有权访问的位置下执行,如/tmp目录


#****************************************************************************************************************#
#-------------------------#
# judge what needs to be done
# v3.0
#-------------------------#
INPUT_Flag=true
read -p "choice what will you do?: configOS/installSoftwareOnly/createDB/removeDB [createDB]? " INPUT_CHOICE  
while $INPUT_Flag #判断输入是否正确
do
	if [[ -z "${INPUT_CHOICE}" ]] || [[ $INPUT_CHOICE = "createDB" ]] || [[ $INPUT_CHOICE = "y" ]] || [[ $INPUT_CHOICE = "Y" ]];then
		INPUT_CHOICE=createDB
		INPUT_Flag=false
	elif [[ $INPUT_CHOICE = "installSoftwareOnly" ]];then
		DB_VERSION=installSoftwareOnly
		INPUT_Flag=false
	elif [[ $INPUT_CHOICE = "configOS" ]];then
		DB_VERSION=configOS
		INPUT_Flag=false
	elif [[ $INPUT_CHOICE = "removeDB" ]];then
		INPUT_Flag=false
	else 
		echo -e "\033[37;31;5mInput error!!!\033[39;49;0m"
		read -p "What will you do?: configOS/installSoftwareOnly/createDB [createDB]? " INPUT_CHOICE  
		INPUT_Flag=true
	fi
done

#-------------------------#
# remove database
#-------------------------#
function removeDB(){
read -p "if the DB install directory: /u01/app (y/n) [y]? " INSTALL_DIR
if [[ -z "${INSTALL_DIR}" ]] || [[ $INSTALL_DIR = "/u01/app" ]] || [[ $INSTALL_DIR = "y" ]] || [[ $INSTALL_DIR = "Y" ]];then
	INSTALL_DIR=/u01/app
elif [[ $INSTALL_DIR = "n" ]] || [[ $INSTALL_DIR = "N" ]];then
	read -p "please input DB install directory: " INSTALL_DIR
fi

su - oracle -c "sqlplus -s / as sysdba" <<EOF
select open_mode from v\$database;
shutdown abort;
EXIT
EOF

su - oracle -c "lsnrctl stop"

rm -rf ${INSTALL_DIR}
rm -rf /usr/local/bin/dbhome
rm -rf /usr/local/bin/oraenv
rm -rf /usr/local/bin/coraenv
rm -rf /etc/oratab
rm -rf /etc/oraInst.loc
rm -rf /opt/oraInventory/ContentsXML/inventory.xml
userdel -rf oracle
groupdel oinstall
groupdel dba
ps -ef|grep -v grep |grep ora|awk '{print $2}'|xargs kill -9
}

if [[ $INPUT_CHOICE = "removeDB" ]];then
	echo -e "\033[37;31;5mbegin remove database...\033[39;49;0m"
	removeDB
	echo -e "\033[37;31;5mremove complate! 886...\033[39;49;0m"
	exit
fi


#-------------------------#
# set initialization parameters
#-------------------------#
read -p "please input globle_dbname: " GLOBLE_DBName	#v1.3
read -p "please input ORACLE_SID: " ORACLE_SID
if [[ $INPUT_CHOICE = "createDB" ]];then
	read -p "please input SYSTEM PASSWD: " SYSTEM_PASSWD
fi
read -p "please input IPADDR: " hostip
read -p "please input ORACLE PASSWD: " ORAPASSWD



#set variable
SCRIPT_DIR=`pwd`
#SCRIPT_DIR=/root/scripts
hostname_long=`hostname`
host_name=`hostname|cut -f 1 -d '.'`
DNS='10.0.1.33'
SITE='10.0.3.243'
SITE2='66.0.193.30'
DATETIME=`date +%Y%m%d`
RELS=`more /etc/system-release`
OS_VER_PRI=`echo ${RELS#*release} |awk '{print $1}' | cut -f 1 -d '.'`

#-------------------------#
# judge OS VERSION
# v2.0
#	v3.0
#-------------------------#
if [ $OS_VER_PRI -eq 7 ];then
	OS_VERSION=linux7
elif [ $OS_VER_PRI -eq 6 ];then
	OS_VERSION=linux6
else 
	echo "sorry, this operating system is not supported!!!"
	exit
fi

#-------------------------#
# input DB_VERSION
# v2.0
#	v4.0
#-------------------------#
read -p "please input DB VERSION: 11g/12c/19c [19c]? " V_DB_VERSION    
if [[ -z "${V_DB_VERSION}" ]] || [[ $V_DB_VERSION = "19c" ]] || [[ $V_DB_VERSION = "19C" ]] || [[ $V_DB_VERSION = "19" ]];then
	DB_VERSION=19.3.0.0
elif [[ $V_DB_VERSION = "12c" ]] || [[ $V_DB_VERSION = "12C" ]] || [[ $V_DB_VERSION = "12" ]];then
	DB_VERSION=12.2.0.1
elif [[ $V_DB_VERSION = "11g" ]] || [[ $V_DB_VERSION = "11G" ]] || [[ $V_DB_VERSION = "11" ]];then
	DB_VERSION=11.2.0.4
else 
	echo "DB version input error!!!"
	exit
fi

#-------------------------#
# set archiveLogMode
#-------------------------#
if [[ $INPUT_CHOICE = "createDB" ]];then
	read -p "please input ARCH MODE: true/false [Y]? " V_ARCH_MODE    #v1.1
	if [[ -z "${V_ARCH_MODE}" ]] || [[ $V_ARCH_MODE = "true" ]] || [[ $V_ARCH_MODE = "y" ]] || [[ $V_ARCH_MODE = "Y" ]];then
		ARCH_MODE=true
	elif [[ $V_ARCH_MODE = "false" ]] || [[ $V_ARCH_MODE = "n" ]] || [[ $V_ARCH_MODE = "N" ]];then
		ARCH_MODE=false
	else 
		echo "archiveLogMode input error!!!"
		exit
	fi
fi

#-------------------------#
# set install directory 
# v1.2
#-------------------------#
read -p "if the DB install directory: /u01/app (y/n) [y]? " INPUT_ENVDIR
if [[ -z "${INPUT_ENVDIR}" ]] || [[ $INPUT_ENVDIR = "/u01/app" ]] || [[ $INPUT_ENVDIR = "y" ]] || [[ $INPUT_ENVDIR = "Y" ]];then
	ENV_BASE_DIR=/u01/app
elif [[ $INPUT_ENVDIR = "n" ]] || [[ $INPUT_ENVDIR = "N" ]];then
	read -p "please input DB install directory: " ENV_BASE_DIR
else 
	ENV_BASE_DIR=$INPUT_ENVDIR
fi


#-------------------------#
# set CHARACTERSET
# v1.3
#	v3.0
#-------------------------#
if [[ $INPUT_CHOICE = "createDB" ]];then
	read -p "please input character set: AL32UTF8/ZHS16GBK/OTHERS[AL32UTF8]? " INPUT_NLS_LANG    #v1.3
	if [[ -z "${INPUT_NLS_LANG}" ]] || [[ $INPUT_NLS_LANG = "true" ]] || [[ $INPUT_NLS_LANG = "y" ]] || [[ $INPUT_NLS_LANG = "Y" ]];then
		NLS_LANG=AL32UTF8
	else
		NLS_LANG=$INPUT_NLS_LANG
	fi
fi

#-------------------------#
# set NATIONALCHARACTERSET
# add by v3.0
#-------------------------#
if [[ $INPUT_CHOICE = "createDB" ]];then
	read -p "please input national character set: AL16UTF16/UTF8[AL16UTF16]? " INPUT_NLS_NCHAR_CHAR
	if [[ -z "${INPUT_NLS_NCHAR_CHAR}" ]] || [[ $INPUT_NLS_NCHAR_CHAR = "true" ]] || [[ $INPUT_NLS_NCHAR_CHAR = "y" ]] || [[ $INPUT_NLS_NCHAR_CHAR = "Y" ]];then
		NLS_NCHAR_CHAR=AL16UTF16
	else
		NLS_NCHAR_CHAR=UTF8
	fi
fi


#-------------------------#
# set percentageMemory
# add by v3.0
#-------------------------#
if [[ $INPUT_CHOICE = "createDB" ]];then
	INPUT_MemPercent_Flag=true
	read -p "please input DB memory as a percentage of the OS: [60]? " INPUT_MemPercent
	if [[ -z "${INPUT_MemPercent}" ]] || [[ $MemPercent = "true" ]] || [[ $MemPercent = "y" ]] || [[ $MemPercent = "Y" ]];then
		MemPercent=60
	else
		while $INPUT_MemPercent_Flag #判断输入值是否为整数
		do
			expr $INPUT_MemPercent + 0 &>/dev/null
			[ $? -eq 0 ] && INPUT_MemPercent_Flag=false || read -p "please input DB memory as a percentage of the OS: [60]? " INPUT_MemPercent
		done
		MemPercent=$INPUT_MemPercent
	fi
fi

#-------------------------#
# Configure yum
# v3.2
#-------------------------#
read -p "Do you need to Configure yum(y/n) [y]? " INPUT_YUM
if [[ -z "${INPUT_YUM}" ]] || [[ $INPUT_YUM = "y" ]] || [[ $INPUT_YUM = "Y" ]];then
	if [ `find /etc/yum.repos.d/ -maxdepth 1 |xargs grep -ri "10.0.3.243" | wc -l` -gt 0 ]; then
	#这个查找会遍历/etc/yum.repos.d/所有子目录,参数-maxdepth 1无效
		echo "yum checked, already configed ----- Not Modified" >> ${SCRIPT_DIR}/install.log
	else
		YUM_DIR=/etc/yum.repos.d
		YUM_CONF=$YUM_DIR/longi_yum_conf.repo
		OS_TYPE=`more /etc/system-release |awk '{print $1 $2}'`
		RELS=`more /etc/system-release`
		OS_VER=`echo ${RELS#*release} |awk '{print $1}'`
		
		#判断OS版本
		if [ ${OS_TYPE} = "CentOSLinux" ]; then
			OS_VER=`echo ${RELS#*release} |awk '{print $1}'`
			OS_VER_2=`echo ${OS_VER:0:1}`
			OS_NAME=centos${OS_VER_2}
			#echo $OS_NAME
		elif [ ${OS_TYPE} = "OracleLinux" ]; then
			OS_VER=`echo ${RELS#*release} | awk '{print $1}' | sed 's/\.//g'`
			OS_VER_2=`echo ${OS_VER:0:1}`
			OS_NAME=oel${OS_VER}
			#echo $OS_NAME
		elif [ ${OS_TYPE} = "RedHat" ]; then
			OS_VER=`echo ${RELS#*release} | awk '{print $1}' | sed 's/\.//g'`
			OS_VER_2=`echo ${OS_VER:0:1}`
			OS_NAME=rhel${OS_VER}
			#echo $OS_NAME
		fi
		
		
		# mv old repo config file to bak
		if [ ! -d ${YUM_DIR}/old_bak ]; then
			mkdir ${YUM_DIR}/old_bak
		fi
		repo_num=$(ls *.repo 2> /dev/null | wc -l)
		if [ "$repo_num" != "0" ]; then
				mv ${YUM_DIR}/*.repo ${YUM_DIR}/old_bak/
		fi
		
		
		## Create my conf file
		if [ ${OS_TYPE} = "CentOSLinux" ]; then
			cat >> $YUM_CONF <<EOF
[${OS_NAME}-local-base]
name=${OS_NAME}-local-base
baseurl=http://10.0.3.243/${OS_NAME}/base
enabled=1
gpgcheck=0

[${OS_NAME}-local-updates]
name=${OS_NAME}-local-updates
baseurl=http://10.0.3.243/${OS_NAME}/updates
enabled=1
gpgcheck=0

[${OS_NAME}-local-extras]
name=${OS_NAME}-local-extras
baseurl=http://10.0.3.243/${OS_NAME}/extras
enabled=1
gpgcheck=0

[epel${OS_VER_2}-local]
name=epel${OS_VER_2}-local
baseurl=http://10.0.3.243/epel${OS_VER_2}
enabled=1
gpgcheck=0
EOF
		elif [ ${OS_TYPE} = "OracleLinux" ]; then
			cat >> $YUM_CONF <<EOF
[${OS_NAME}-local-base]
name=${OS_NAME}-local-base
baseurl=http://10.0.3.243/${OS_NAME}
enabled=1
gpgcheck=0

[epel${OS_VER_2}-local]
name=epel${OS_VER_2}-local
baseurl=http://10.0.3.243/epel${OS_VER_2}
enabled=1
gpgcheck=0
EOF
		elif [ ${OS_TYPE} = "RedHat" ]; then
			cat >> $YUM_CONF <<EOF
[${OS_NAME}-local-base]
name=${OS_NAME}-local-base
baseurl=http://10.0.3.243/${OS_NAME}
enabled=1
gpgcheck=0

[epel${OS_VER_2}-local]
name=epel${OS_VER_2}-local
baseurl=http://10.0.3.243/epel${OS_VER_2}
enabled=1
gpgcheck=0
EOF
		fi
		echo "yum confige ----- SUCCEEDED" >> ${SCRIPT_DIR}/install.log
	fi
fi


#-------------------------#
# judge if need to download software package
# v3.0
#   v4.0
#-------------------------#
if [[ $INPUT_CHOICE = "createDB" ]] || [[ $INPUT_CHOICE = "installSoftwareOnly" ]];then
	read -p "Do you need to download database package(y/n) [y]? " INPUT_DIR
	if [[ -z "${INPUT_DIR}" ]] || [[ $INPUT_DIR = "y" ]] || [[ $INPUT_DIR = "Y" ]];then
		#download database software package v2.0
		if [ ${DB_VERSION} = "11.2.0.4" ];then
			wget -O /tmp/p13390677_112040_Linux-x86-64_1of7.zip http://${SITE}/OracleSoftware/11g/p13390677_112040_Linux-x86-64_1of7.zip
			wget -O /tmp/p13390677_112040_Linux-x86-64_2of7.zip http://${SITE}/OracleSoftware/11g/p13390677_112040_Linux-x86-64_2of7.zip
		elif [ ${DB_VERSION} = "12.2.0.1" ];then
			wget -O /tmp/linuxx64_12201_database.zip http://${SITE}/OracleSoftware/12c/linuxx64_12201_database.zip
		elif [ ${DB_VERSION} = "19.3.0.0" ];then
			wget -O /tmp/LINUX.X64_193000_db_home.zip http://${SITE}/OracleSoftware/19c/LINUX.X64_193000_db_home.zip
		else
			echo "Error database version! please check again!"
			exit
		fi
	elif [[ $INPUT_DIR = "n" ]] || [[ $INPUT_DIR = "N" ]];then
		echo -e "\033[37;33;5mMake sure the database installation package is in the\033[39;49;0m \033[37;31;5m/tmp\033[39;49;0m \033[37;33;5mdirectory. press any key for continue.\033[39;49;0m"
	fi
fi


#-------------------------#
# install rpm 
# v3.2
#-------------------------#
yum install -y wget
yum install -y unzip
if [ ${OS_VERSION} = linux7 ]; then
	wget -O /tmp/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm http://${SITE}/OracleSoftware/rpm/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
	wget -O /tmp/compat-libstdc++-33-3.2.3-72.el7.i686.rpm http://${SITE}/OracleSoftware/rpm/compat-libstdc++-33-3.2.3-72.el7.i686.rpm
	yum install -y /tmp/compat-libstdc++-33-3.2.3-72.el7.i686.rpm
	yum install -y /tmp/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
fi


#-------------------------#
# verify rpm
# modified by v3.0
#-------------------------#
echo "#################################" > rpm.log
echo "check rpm: " >> rpm.log
if [ ${DB_VERSION} = 12.2.0.1 ] && [ ${OS_VERSION} = linux6 ]; then
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' bc \
	binutils \
	compat-libcap1 \
	compat-libstdc++-33 \
	e2fsprogs \
	e2fsprogs-libs \
	glibc \
	glibc-devel \
	ksh \
	libaio \
	libaio-devel \
	libX11 \
	libXau \
	libXi \
	libXtst \
	libXrender \
	libXrender-devel \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	libxcb \
	make \
	net-tools \
	nfs-utils \
	smartmontools \
	sysstat >> rpm.log
elif [ ${DB_VERSION} = 12.2.0.1 ] && [ ${OS_VERSION} = linux7 ]; then
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' bc \
	binutils \
	compat-libcap1 \
	compat-libstdc++-33 \
	glibc \
	glibc-devel \
	ksh \
	libaio \
	libaio-devel \
	libX11 \
	libXau \
	libXi \
	libXtst \
	libXrender \
	libXrender-devel \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	libxcb \
	make \
	nfs-utils \
	net-tools \
	smartmontools \
	sysstat >> rpm.log
elif [ ${DB_VERSION} = 19.3.0.0 ] && [ ${OS_VERSION} = linux7 ]; then
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' bc \
	binutils \
	compat-libcap1 \
	compat-libstdc++-33 \
	elfutils-libelf \
	fontconfig-devel \
	gcc \
	gcc-c++ \
	glibc \
	glibc-devel \
	ksh \
	libaio \
	libaio-devel \
	libX11 \
	libXau \
	libXi \
	libXtst \
	libXrender \
	libXrender-devel \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	libxcb \
	make \
	smartmontools \
	sysstat >> rpm.log
elif [ ${DB_VERSION} = 11.2.0.4 ] && [ ${OS_VERSION} = linux6 ]; then
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
	compat-libstdc++-33 \
	compat-libcap1 \
	gcc \
	gcc-c++ \
	glibc \
	glibc-devel \
	ksh \
	libaio \
	libaio-devel \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	make \
	sysstat >> rpm.log
elif [ ${DB_VERSION} = 11.2.0.4 ] && [ ${OS_VERSION} = linux7 ]; then
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
	compat-libstdc++-33 \
	compat-libcap1 \
	elfutils-libelf \
	elfutils-libelf-devel \
	gcc \
	gcc-c++ \
	glibc \
	glibc-devel \
	ksh \
	libaio \
	libaio-devel \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	libXi \
	libXtst \
	make \
	sysstat >> rpm.log
fi
echo "#################################" >> rpm.log
if [ `grep "not installed" $SCRIPT_DIR/rpm.log | wc -l` -gt 0 ]; then
	if [ ${DB_VERSION} = 12.2.0.1 ] && [ ${OS_VERSION} = linux6 ]; then
		yum install -y bc
		yum install -y binutils
		yum install -y compat-libcap1
		yum install -y compat-libstdc++-33.*i686
		yum install -y compat-libstdc++-33.*x86_64
		yum install -y e2fsprogs.*x86_64
		yum install -y e2fsprogs-libs.*x86_64
		yum install -y glibc.*i686
		yum install -y glibc.*x86_64
		yum install -y glibc-devel.*i686
		yum install -y glibc-devel.*x86_64
		yum install -y ksh
		yum install -y libaio.*i686
		yum install -y libaio.*x86_64
		yum install -y libaio-devel*i686
		yum install -y libaio-devel*x86_64
		yum install -y libX11.*i686
		yum install -y libX11.*x86_64
		yum install -y libXau.*i686
		yum install -y libXau.*x86_64
		yum install -y libXi.*i686
		yum install -y libXi.*x86_64
		yum install -y libXtst.*i686
		yum install -y libXtst.*x86_64
		yum install -y libgcc.*i686
		yum install -y libgcc.*x86_64
		yum install -y libstdc++.*i686
		yum install -y libstdc++.*x86_64
		yum install -y libstdc++-devel.*i686
		yum install -y libstdc++-devel.*x86_64
		yum install -y libxcb.*i686
		yum install -y libxcb.*x86_64
		yum install -y libXrender.*i686
		yum install -y libXrender.*x86_64
		yum install -y libXrender-devel.*i686
		yum install -y libXrender-devel.*x86_64
		yum install -y make
		yum install -y net-tools  
		yum install -y nfs-utils
		yum install -y smartmontools
		yum install -y sysstat
	elif [ ${DB_VERSION} = 12.2.0.1 ] && [ ${OS_VERSION} = linux7 ]; then
		yum install -y bc
		yum install -y binutils
		yum install -y compat-libcap1
		yum install -y compat-libstdc++-33.*i686
		yum install -y compat-libstdc++-33.*x86_64
		yum install -y glibc.*i686
		yum install -y glibc.*x86_64
		yum install -y glibc-devel.*i686
		yum install -y glibc-devel.*x86_64
		yum install -y ksh
		yum install -y libaio.*i686
		yum install -y libaio.*x86_64
		yum install -y libaio-devel*i686
		yum install -y libaio-devel*x86_64
		yum install -y libgcc.*i686
		yum install -y libgcc.*x86_64
		yum install -y libstdc++.*i686
		yum install -y libstdc++.*x86_64
		yum install -y libstdc++-devel.*i686
		yum install -y libstdc++-devel.*x86_64
		yum install -y libxcb.*i686
		yum install -y libxcb.*x86_64
		yum install -y libX11.*i686
		yum install -y libX11.*x86_64
		yum install -y libXau.*i686
		yum install -y libXau.*x86_64
		yum install -y libXi.*i686
		yum install -y libXi.*x86_64
		yum install -y libXtst.*i686
		yum install -y libXtst.*x86_64
		yum install -y libXrender.*i686
		yum install -y libXrender.*x86_64
		yum install -y libXrender-devel.*i686
		yum install -y libXrender-devel.*x86_64
		yum install -y make
		yum install -y net-tools  
		yum install -y nfs-utils
		yum install -y smartmontools
		yum install -y sysstat
	elif [ ${DB_VERSION} = 11.2.0.4 ] && [ ${OS_VERSION} = linux6 ]; then
		yum install -y binutils
		yum install -y compat-libcap1
		yum install -y compat-libstdc++-33.*i686
		yum install -y compat-libstdc++-33.*x86_64
		yum install -y gcc
		yum install -y gcc-c++
		yum install -y glibc.*i686
		yum install -y glibc.*x86_64
		yum install -y glibc-devel.*i686
		yum install -y glibc-devel.*x86_64
		yum install -y ksh
		yum install -y libgcc.*i686
		yum install -y libgcc.*x86_64
		yum install -y libstdc++.*i686
		yum install -y libstdc++.*x86_64
		yum install -y libstdc++-devel.*i686
		yum install -y libstdc++-devel.*x86_64
		yum install -y libaio.*i686
		yum install -y libaio.*x86_64
		yum install -y libaio-devel*i686
		yum install -y libaio-devel*x86_64
		yum install -y make
		yum install -y sysstat
	elif [ ${DB_VERSION} = 11.2.0.4 ] && [ ${OS_VERSION} = linux7 ]; then
		yum install -y binutils
		yum install -y compat-libcap1
		yum install -y compat-libstdc++-33.*i686
		yum install -y compat-libstdc++-33.*x86_64
		yum install -y elfutils-libelf
		yum install -y elfutils-libelf-devel
		yum install -y gcc
		yum install -y gcc-c++
		yum install -y glibc.*i686
		yum install -y glibc.*x86_64
		yum install -y glibc-devel.*i686
		yum install -y glibc-devel.*x86_64
		yum install -y ksh
		yum install -y libaio.*i686
		yum install -y libaio.*x86_64
		yum install -y libstdc++-devel.*i686
		yum install -y libstdc++-devel.*x86_64
		yum install -y libgcc.*i686
		yum install -y libgcc.*x86_64
		yum install -y libstdc++.*i686
		yum install -y libstdc++.*x86_64
		yum install -y libaio-devel*i686
		yum install -y libaio-devel*x86_64
		yum install -y libXi.*i686
		yum install -y libXi.*x86_64
		yum install -y libXtst.*i686
		yum install -y libXtst.*x86_64
		yum install -y make
		yum install -y sysstat
	elif [ ${DB_VERSION} = 19.3.0.0 ] && [ ${OS_VERSION} = linux7 ]; then
		yum install -y bc
		yum install -y binutils
		yum install -y compat-libcap1
		yum install -y compat-libstdc++-33.*i686
		yum install -y compat-libstdc++-33.*x86_64
		yum install -y gcc
		yum install -y gcc-c++
		yum install -y elfutils-libelf
		yum install -y elfutils-libelf-devel
		yum install -y fontconfig-devel
		yum install -y glibc.*i686
		yum install -y glibc.*x86_64
		yum install -y glibc-devel.*i686
		yum install -y glibc-devel.*x86_64
		yum install -y ksh
		yum install -y libaio.*i686
		yum install -y libaio.*x86_64
		yum install -y libaio-devel*i686
		yum install -y libaio-devel*x86_64
		yum install -y libgcc.*i686
		yum install -y libgcc.*x86_64
		yum install -y libstdc++.*i686
		yum install -y libstdc++.*x86_64
		yum install -y libstdc++-devel.*i686
		yum install -y libstdc++-devel.*x86_64
		yum install -y libxcb.*i686
		yum install -y libxcb.*x86_64
		yum install -y libX11.*i686
		yum install -y libX11.*x86_64
		yum install -y libXau.*i686
		yum install -y libXau.*x86_64
		yum install -y libXi.*i686
		yum install -y libXi.*x86_64
		yum install -y libXtst.*i686
		yum install -y libXtst.*x86_64
		yum install -y libXrender.*i686
		yum install -y libXrender.*x86_64
		yum install -y libXrender-devel.*i686
		yum install -y libXrender-devel.*x86_64
		yum install -y make
		yum install -y net-tools  
		yum install -y nfs-utils
		yum install -y smartmontools
		yum install -y sysstat
	fi
fi

#verify rpm
echo "#################################" > rpm.log
echo "check rpm: " >> rpm.log
if [ ${DB_VERSION} = 12.2.0.1 ] && [ ${OS_VERSION} = linux6 ]; then
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' bc \
	binutils \
	compat-libcap1 \
	compat-libstdc++-33 \
	e2fsprogs \
	e2fsprogs-libs \
	glibc \
	glibc-devel \
	ksh \
	libaio \
	libaio-devel \
	libX11 \
	libXau \
	libXi \
	libXtst \
	libXrender \
	libXrender-devel \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	libxcb \
	make \
	net-tools \
	nfs-utils \
	smartmontools \
	sysstat >> rpm.log
elif [ ${DB_VERSION} = 12.2.0.1 ] && [ ${OS_VERSION} = linux7 ]; then
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' bc \
	binutils \
	compat-libcap1 \
	compat-libstdc++-33 \
	glibc \
	glibc-devel \
	ksh \
	libaio \
	libaio-devel \
	libX11 \
	libXau \
	libXi \
	libXtst \
	libXrender \
	libXrender-devel \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	libxcb \
	make \
	nfs-utils \
	net-tools \
	smartmontools \
	sysstat >> rpm.log
elif [ ${DB_VERSION} = 19.3.0.0 ] && [ ${OS_VERSION} = linux7 ]; then
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' bc \
	binutils \
	compat-libcap1 \
	compat-libstdc++-33 \
	elfutils-libelf \
	fontconfig-devel \
	gcc \
	gcc-c++ \
	glibc \
	glibc-devel \
	ksh \
	libaio \
	libaio-devel \
	libX11 \
	libXau \
	libXi \
	libXtst \
	libXrender \
	libXrender-devel \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	libxcb \
	make \
	smartmontools \
	sysstat >> rpm.log
elif [ ${DB_VERSION} = 11.2.0.4 ] && [ ${OS_VERSION} = linux6 ]; then
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
	compat-libstdc++-33 \
	compat-libcap1 \
	gcc \
	gcc-c++ \
	glibc \
	glibc-devel \
	ksh \
	libaio \
	libaio-devel \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	make \
	sysstat >> rpm.log
elif [ ${DB_VERSION} = 11.2.0.4 ] && [ ${OS_VERSION} = linux7 ]; then
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
	compat-libstdc++-33 \
	compat-libcap1 \
	elfutils-libelf \
	elfutils-libelf-devel \
	gcc \
	gcc-c++ \
	glibc \
	glibc-devel \
	ksh \
	libaio \
	libaio-devel \
	libgcc \
	libstdc++ \
	libstdc++-devel \
	libXi \
	libXtst \
	make \
	sysstat >> rpm.log
fi
echo "#################################" >> rpm.log
if [ `grep "not installed" $SCRIPT_DIR/rpm.log | wc -l` -gt 0 ]; then
	echo -e "################################################### \033[5m"
    echo -e "\033[33m some RPM package is not installed, please check! \033[0m"
	echo "###################################################"
	exit
else
	cat $SCRIPT_DIR/rpm.log > install.log
	rm -rf $SCRIPT_DIR/rpm.log
fi
echo "RPM is installed ----- SUCCEEDED" >> install.log

#-------------------------#
# Initializes system parameters
#-------------------------#
#ENV_BASE_DIR=/u01/app
ENV_ORACLE_BASE=$ENV_BASE_DIR/oracle
##set ENV_ORACLE_HOME  #v2.0
if [ ${DB_VERSION} = "12.2.0.1" ];then
	ENV_ORACLE_HOME=$ENV_ORACLE_BASE/product/12.2.0/db_1
elif [ ${DB_VERSION} = "11.2.0.4" ];then
	ENV_ORACLE_HOME=$ENV_ORACLE_BASE/product/11.2
elif [ ${DB_VERSION} = "19.3.0.0" ];then
	ENV_ORACLE_HOME=$ENV_ORACLE_BASE/product/19.3.0/db_1
else 
	echo "Error database version! please check again!"
	exit
fi

#-------------------------#
# set memory variable
#-------------------------#
#ENV_NLS_LANG=AMERICAN_AMERICA.${NLS_LANG}  #AMERICAN_AMERICA.ZHS16GBK
yum -y install bc
MemTotalKB=`awk '/MemTotal/{print $2}' /proc/meminfo`
MemTotalMB=`echo "scale=0;$MemTotalKB / 1024 * ${MemPercent} / 100"| bc`

#-------------------------#
#Configure the hostname,modify /etc/hosts file
#-------------------------#
if [ $host_name = "localhost.localdomain" ]; then
	#To be updated
	echo "current hostname is localhost.localdomain, please rename in file /etc/sysconfig/network"
	if [ ${OS_VERSION} = linux6 ]; then
		read -p "please input hostname: " INPUT_HOSTNAME
		host_name=${INPUT_HOSTNAME}
		sed -i "s/localhost.localdomain/${host_name}/g" /etc/sysconfig/network
		hostname ${host_name}
		cp /etc/hosts /etc/hosts.bak
		echo "${hostip}	${host_name}" >> /etc/hosts
		echo "modify /etc/hosts ----- SUCCEEDED" >> install.log
	elif [ ${OS_VERSION} = linux7 ]; then
		read -p "please input hostname: " INPUT_HOSTNAME
		host_name=${INPUT_HOSTNAME}
		sed -i "s/localhost.localdomain/${host_name}/g" /etc/hostname
		hostname ${host_name}
		cp /etc/hosts /etc/hosts.bak
		echo "${hostip}	${host_name}" >> /etc/hosts
		echo "modify /etc/hosts ----- SUCCEEDED" >> install.log
	else 
		echo "OS VERSION error!!!"
		exit 
	fi
else
	if [ `grep ${host_name} /etc/hosts | wc -l` -gt 0 ]; then
		echo "hostname ${host_name} is exist in file /etc/hosts ----- Not Modified" >> install.log
	else
		cp /etc/hosts /etc/hosts.bak
		echo "${hostip}	${host_name}" >> /etc/hosts
		echo "modify /etc/hosts ----- SUCCEEDED" >> install.log
	fi
fi
#-------------------------#
#Configure the network
#-------------------------#
#Turn off the firewall
if [ ${OS_VERSION} = linux6 ]; then
	#Turn off the firewall(Linux 6)
	if [ `chkconfig --list | grep tables | grep on | wc -l` -gt 0 ]; then
		service iptables stop
		chkconfig --level 2345 iptables off
		service ip6tables stop
		chkconfig --level 2345 ip6tables off
		service network restart
		echo "Firewall closed ----- SUCCEEDED" >> install.log
	else
		echo "Firewall checked, not turned on ----- Not Modified" >> install.log
	fi
elif [ ${OS_VERSION} = linux7 ]; then
	#Turn off the firewall(Linux 7)
	if [ `systemctl status firewalld.service | grep running | wc -l` -gt 0 ]; then
		systemctl stop firewalld.service
		systemctl disable firewalld.service
		service network restart
		echo "Firewall closed ----- SUCCEEDED" >> install.log
	else
		echo "Firewall checked, not turned on ----- Not Modified" >> install.log
	fi
else 
	echo "OS VERSION error!!!"
	exit 
fi

#-------------------------#
#Turn off the NetworkManager
#-------------------------#
if [ ${OS_VERSION} = linux6 ]; then
	#Turn off the NetworkManager(Linux 6)
	if [ `chkconfig --list | grep NetworkManager | grep on | wc -l` -gt 0 ]; then
		service NetworkManager stop
		chkconfig --level 2345 NetworkManager off
		service NetworkManager off
		service network restart
		echo "NetworkManager closed ----- SUCCEEDED" >> install.log
	else
		echo "NetworkManager checked, not turned on ----- Not Modified" >> install.log
	fi
elif [ ${OS_VERSION} = linux7 ]; then
	#Turn off the NetworkManager(Linux 7)
	if [ `systemctl status NetworkManager.service | grep running | wc -l` -gt 0 ]; then
		systemctl stop NetworkManager.service
		systemctl disable NetworkManager.service
		service network restart
		echo "NetworkManager closed ----- SUCCEEDED" >> install.log
	else
		echo "NetworkManager checked, not turned on ----- Not Modified" >> install.log
	fi
fi

#-------------------------#
#config NTP service
#-------------------------#
if [ ${OS_VERSION} = linux6 ]; then
	# Config NTP service for Linux 5/6
	if [ `cat /etc/ntp.conf | grep 10.0.1.33 | wc -l` -gt 0 ]; then
		echo "NTP checked, already on ----- Not Modified" >> install.log
	else
		wget http://${SITE2}/Tools/NTP/ntp.conf -O /etc/ntp.conf
		chkconfig ntpd on
		service ntpd stop; ntpd -qg ; service ntpd start
		echo "NTP configure ----- SUCCEEDED" >> install.log
	fi
elif [ ${OS_VERSION} = linux7 ]; then
	# Config NTP service for Linux 7
	if [ `cat /etc/chrony.conf | grep 10.0.1.33 | wc -l` -gt 0 ]; then
		echo "NTP checked, already on ----- Not Modified" >> install.log
	else
		wget http://${SITE2}/Tools/NTP/chrony.conf -O /etc/chrony.conf
		systemctl enable chronyd.service
		systemctl start chronyd.service
		echo "NTP configure ----- SUCCEEDED" >> install.log
	fi
fi

#-------------------------#
#config time synchronization  v2.0
#-------------------------#
/usr/sbin/ntpdate -u ${DNS}
#如果不是虚拟机,设置硬件时钟同步
if [ `dmidecode | grep "Product" | grep "VMware" | wc -l` -eq 0 ]; then
	echo '#!/bin/sh ' > /etc/sync_hw_clock.sh
	echo '## Sync time from system time to hardware clock.  Add by OracleInstall.sh.  ${DATETIME}' >> /etc/sync_hw_clock.sh
	echo '/usr/sbin/hwclock  -w ' >> /etc/sync_hw_clock.sh
	chmod +x /etc/sync_hw_clock.sh
	echo  '*/5 * * * * /etc/sync_hw_clock.sh > /dev/null 2>&1'  >> /var/spool/cron/root
fi

#-------------------------#
#Create group
#-------------------------#
if [ `grep "^dba:" /etc/group | wc -l` -gt 0 ]; then
	echo "dba group is exist ----- Not Modified" >> install.log
else
	groupadd dba
	echo "dba group is created ----- SUCCEEDED" >> install.log
fi
if [ `grep "^oinstall:" /etc/group | wc -l` -gt 0 ]; then
	echo "oinstall group is exist ----- Not Modified" >> install.log
else
	groupadd oinstall
	echo "oinstall group is created ----- SUCCEEDED" >> install.log
fi

#-------------------------#
#Create user
#-------------------------#
if [ `grep "^oracle:" /etc/passwd | wc -l` -gt 0 ]; then
	echo "oracle user is exist ----- Not Modified" >> install.log
else
	useradd oracle -g oinstall -G dba
	echo "oracle user is created ----- SUCCEEDED" >> install.log
	echo "${ORAPASSWD}" |passwd --stdin oracle
	echo "oracle password is updated ----- SUCCEEDED" >> install.log
fi

#-------------------------#
#Configure /etc/sysctl.conf file
#	v3.1
#-------------------------#
# kernel.shmall取总内存的页数(每页4K),kernel.shmmax取内存同样大小数值
if [ ${OS_VERSION} = linux6 ]; then
	if [ `grep "^net.core.wmem_max" /etc/sysctl.conf | wc -l` -gt 0 ]; then
		echo "/etc/sysctl.conf file is modified ----- Not Modified" >> install.log
	else
		cp /etc/sysctl.conf  /etc/sysctl.conf.bak
		shmall=$(($MemTotalKB / 4))
		# v4.0 修改512 --> 1024
		shmmax=$(($MemTotalKB * 1024))
		cat >> /etc/sysctl.conf<<EOF

# modify for oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
#kernel.shmall = ${shmall}
kernel.shmmax = ${shmmax}
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.panic_on_oops = 1
EOF
		sysctl -p
		echo "/etc/sysctl.conf file is modified ----- SUCCEEDED" >> install.log
	fi
elif [ ${OS_VERSION} = linux7 ]; then
	if [ -e /etc/sysctl.d/97-oracledatabase-sysctl.conf ] && [ `grep "^net.core.wmem_max" /etc/sysctl.d/97-oracledatabase-sysctl.conf | wc -l` -gt 0 ]; then
		echo "/etc/sysctl.conf file is modified ----- Not Modified" >> install.log
	else
		shmall=$(($MemTotalKB / 4))
		# v4.0
		shmmax=$(($MemTotalKB * 1024))
		cat >> /etc/sysctl.d/97-oracledatabase-sysctl.conf<<EOF

# modify for oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
#kernel.shmall = ${shmall}
kernel.shmmax = ${shmmax}
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.panic_on_oops = 1
EOF
		/sbin/sysctl --system
		echo "/etc/sysctl.conf file is modified ----- SUCCEEDED" >> install.log
	fi
fi


##-------------------------#
##关闭透明大页
##	v4.0
##-------------------------#
#if [ ${OS_VERSION} = linux6 ]; then
#
#elif [ ${OS_VERSION} = linux7 ]; then
#	if [ `grep AnonHugePages /proc/meminfo | grep -v grep | awk '{print $2}'` -gt 0 ]; then
#		echo "/etc/default/grub file is modified ----- Not Modified" >> install.log
#	else
#		cp /etc/default/grub /etc/default/grub.bak
#		cat >> /etc/default/grub<<EOF
#
## modify for oracle
#GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg_root/lv_root rd.lvm.lv=vg_root/lv_swap rhgb quiet transparent_hugepage=never"
#EOF
#		grub2-mkconfig -o /boot/grub2/grub.cfg
#		echo "/etc/default/grub file is modified ----- SUCCEEDED" >> install.log
#	fi
#fi

#-------------------------#
#Configure /etc/security/limits.conf file
#-------------------------#
#if [ `grep "^oracle	soft	nproc	2047" /etc/security/limits.conf | wc -l` -gt 0 ]


if [ ${DB_VERSION} = 11.2.0.4 ]; then
	if [ `grep "16384" /etc/security/limits.conf | wc -l` -gt 0 ]; then
		echo "/etc/security/limits.conf file is modified ----- Not Modified" >> install.log
	else
		cp /etc/security/limits.conf  /etc/security/limits.conf.bak
		cat >> /etc/security/limits.conf<<EOF

# modify for oracle
*	hard	nofile	65536
*	soft	nofile	65536
*	hard	nproc	16384
*	soft	nproc	16384
*	hard	stack	32768
*	soft	stack	10240
EOF
		echo "/etc/security/limits.conf file is modified ----- SUCCEEDED" >> install.log
	fi
elif [[ ${DB_VERSION} = 12.2.0.1 ]] || [[ ${DB_VERSION} = 19.3.0.0 ]]; then
	if [ `grep "16384" /etc/security/limits.conf | wc -l` -gt 0 ]; then
		echo "/etc/security/limits.conf file is modified ----- Not Modified" >> install.log
	else
		cp /etc/security/limits.conf  /etc/security/limits.conf.bak
		cat >> /etc/security/limits.conf<<EOF

# modify for oracle
*	hard	nofile	65536
*	soft	nofile	65536
*	hard	nproc	16384
*	soft	nproc	16384
*	hard	stack	32768
*	soft	stack	10240
oracle	soft	memlock	3145728
oracle	hard	memlock	3145728

EOF
		echo "/etc/security/limits.conf file is modified ----- SUCCEEDED" >> install.log
	fi
fi


#-------------------------#
#Configure /etc/pam.d/login file
#-------------------------#
if [ `grep "pam_limits.so" /etc/pam.d/login | wc -l` -gt 0 ]; then
	echo "/etc/pam.d/login file is modified ----- Not Modified" >> install.log
else
	cp /etc/pam.d/login  /etc/pam.d/login.bak
	echo "session	required	pam_limits.so" >> /etc/pam.d/login
	echo "/etc/pam.d/login file is modified ----- SUCCEEDED" >> install.log
fi

#-------------------------#
#Create oracle directory
#-------------------------#
if [ ! -d "${ENV_ORACLE_HOME}" ]; then
	mkdir -p ${ENV_ORACLE_HOME}
	chown -R oracle:oinstall ${ENV_BASE_DIR}
	chmod -R 775 ${ENV_BASE_DIR}
	echo "directory ${ENV_ORACLE_HOME} is created ----- SUCCEEDED" >> install.log
else    
	echo "directory ${ENV_ORACLE_HOME} is exist ----- Not Modified" >> install.log
fi

#-------------------------#
#Create OraInventory
#-------------------------#
if [ ${DB_VERSION} = 12.2.0.1 ]; then
	touch /etc/oraInst.loc
	echo "inventory_loc=/opt/oraInventory" >> /etc/oraInst.loc
	echo "inst_group=oinstall" >> /etc/oraInst.loc
	mkdir -p /opt/oraInventory
	chmod -R a+rw /opt/oraInventory
fi

#-------------------------#
#Configure oracle's ENV
#-------------------------#
if [ ${DB_VERSION} = 12.2.0.1 ]; then
	if [ `grep "export ORACLE" /home/oracle/.bash_profile | wc -l` -gt 0 ]; then
		echo "variable ORACLE ENV is exist ----- Not Modified" >> install.log
	else    
		cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak
		echo "" >> /home/oracle/.bash_profile
		echo "export ORACLE_SID=${ORACLE_SID}" >> /home/oracle/.bash_profile
		echo "export GLOBLE_DBName=${GLOBLE_DBName}" >> /home/oracle/.bash_profile
		echo "export ORACLE_BASE=${ENV_ORACLE_BASE}" >> /home/oracle/.bash_profile
		echo 'export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1' >> /home/oracle/.bash_profile
		echo 'export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH' >> /home/oracle/.bash_profile
		#v1.3 <db_name>/<ORACLE_SID>
		echo "TRACE=$ENV_ORACLE_BASE/diag/rdbms/$GLOBLE_DBName/$ORACLE_SID/trace" >> /home/oracle/.bash_profile
		source /home/oracle/.bash_profile
		echo "variable ORACLE ENV is modified ----- SUCCEEDED" >> install.log
	fi
elif [ ${DB_VERSION} = 11.2.0.4 ]; then
	if [ `grep "export ORACLE" /home/oracle/.bash_profile | wc -l` -gt 0 ]; then
		echo "variable ORACLE ENV is exist ----- Not Modified" >> install.log
	else    
		cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak
		echo "" >> /home/oracle/.bash_profile
		echo "export ORACLE_SID=${ORACLE_SID}" >> /home/oracle/.bash_profile
		echo "export GLOBLE_DBName=${GLOBLE_DBName}" >> /home/oracle/.bash_profile
		echo "export ORACLE_BASE=${ENV_ORACLE_BASE}" >> /home/oracle/.bash_profile
		echo 'export ORACLE_HOME=$ORACLE_BASE/product/11.2' >> /home/oracle/.bash_profile
		echo 'export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH' >> /home/oracle/.bash_profile
		#v1.3 <db_name>/<ORACLE_SID>
		echo "TRACE=$ENV_ORACLE_BASE/diag/rdbms/$GLOBLE_DBName/$ORACLE_SID/trace" >> /home/oracle/.bash_profile
		source /home/oracle/.bash_profile
		echo "variable ORACLE ENV is modified ----- SUCCEEDED" >> install.log
	fi
elif [ ${DB_VERSION} = 19.3.0.0 ]; then
	if [ `grep "export ORACLE" /home/oracle/.bash_profile | wc -l` -gt 0 ]; then
		echo "variable ORACLE ENV is exist ----- Not Modified" >> install.log
	else    
		cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak
		echo "" >> /home/oracle/.bash_profile
		echo "export ORACLE_SID=${ORACLE_SID}" >> /home/oracle/.bash_profile
		echo "export GLOBLE_DBName=${GLOBLE_DBName}" >> /home/oracle/.bash_profile
		echo "export ORACLE_BASE=${ENV_ORACLE_BASE}" >> /home/oracle/.bash_profile
		echo 'export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1' >> /home/oracle/.bash_profile
		echo 'export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH' >> /home/oracle/.bash_profile
		echo "TRACE=$ENV_ORACLE_BASE/diag/rdbms/$GLOBLE_DBName/$ORACLE_SID/trace" >> /home/oracle/.bash_profile
		source /home/oracle/.bash_profile
		echo "variable ORACLE ENV is modified ----- SUCCEEDED" >> install.log
	fi
fi

#-------------------------#
# judge software package directory
# v1.0
#	v3.0
#	  v4.0
#-------------------------#
if [[ $INPUT_CHOICE = "createDB" ]] || [[ $INPUT_CHOICE = "installSoftwareOnly" ]];then
	read -p "Do you want to use the default path of the database package (y/n) [y]? " INPUT_DIR
	if [[ -z "${INPUT_DIR}" ]] || [[ $INPUT_DIR = "/tmp" ]] || [[ $INPUT_DIR = "y" ]] || [[ $INPUT_DIR = "Y" ]];then
		SOFTWATE_DIR=/tmp
		#download database software package v2.0
		if [ ${DB_VERSION} = "11.2.0.4" ];then
			unzip -o ${SOFTWATE_DIR}/p13390677_112040_Linux-x86-64_1of7.zip -d ${SOFTWATE_DIR}
			unzip -o ${SOFTWATE_DIR}/p13390677_112040_Linux-x86-64_2of7.zip -d ${SOFTWATE_DIR}
		elif [ ${DB_VERSION} = "12.2.0.1" ];then
			unzip -o ${SOFTWATE_DIR}/linuxx64_12201_database.zip -d ${SOFTWATE_DIR}
		elif [ ${DB_VERSION} = "19.3.0.0" ];then
			unzip -o ${SOFTWATE_DIR}/LINUX.X64_193000_db_home.zip -d ${ENV_ORACLE_HOME}
			chown -R oracle:oinstall ${ENV_ORACLE_HOME}
			
		else
			echo "Error database version! please check again!"
			exit
		fi
	elif [[ $INPUT_DIR = "n" ]] || [[ $INPUT_DIR = "N" ]];then
		read -p "please input software directory: " SOFTWATE_DIR
		echo -e "\033[37;31;5mMake sure the database installation package is in the ${SOFTWATE_DIR} directory\033[39;49;0m"
		#download database software package v2.0
		if [ ${DB_VERSION} = "11.2.0.4" ];then
			unzip -o ${SOFTWATE_DIR}/p13390677_112040_Linux-x86-64_1of7.zip -d ${SOFTWATE_DIR}
			unzip -o ${SOFTWATE_DIR}/p13390677_112040_Linux-x86-64_2of7.zip -d ${SOFTWATE_DIR}
		elif [ ${DB_VERSION} = "12.2.0.1" ];then
			unzip -o ${SOFTWATE_DIR}/linuxx64_12201_database.zip -d ${SOFTWATE_DIR}
		elif [ ${DB_VERSION} = "19.3.0.0" ];then
			unzip -o ${SOFTWATE_DIR}/LINUX.X64_193000_db_home.zip -d ${ENV_ORACLE_HOME}
			chown -R oracle:oinstall ${ENV_ORACLE_HOME}
		else
			echo "Error database version! please check again!"
			exit
		fi
	else 
		SOFTWATE_DIR=$INPUT_DIR
		echo -e "\033[37;31;5mMake sure the database installation package is in the ${SOFTWATE_DIR} directory\033[39;49;0m"
		#download database software package v2.0
		if [ ${DB_VERSION} = "11.2.0.4" ];then
			unzip -o ${SOFTWATE_DIR}/p13390677_112040_Linux-x86-64_1of7.zip -d ${SOFTWATE_DIR}
			unzip -o ${SOFTWATE_DIR}/p13390677_112040_Linux-x86-64_2of7.zip -d ${SOFTWATE_DIR}
		elif [ ${DB_VERSION} = "12.2.0.1" ];then
			unzip -o ${SOFTWATE_DIR}/linuxx64_12201_database.zip -d ${SOFTWATE_DIR}
		elif [ ${DB_VERSION} = "19.3.0.0" ];then
			unzip -o ${SOFTWATE_DIR}/LINUX.X64_193000_db_home.zip -d ${ENV_ORACLE_HOME}
			chown -R oracle:oinstall ${ENV_ORACLE_HOME}
		else
			echo "Error database version! please check again!"
			exit
		fi
	fi
fi

#Check installation log
echo "#################################"
cat install.log
echo "#################################"


function installDBsoftware(){
#定义install应答文件
if [ ${DB_VERSION} = 12.2.0.1 ]; then
cat > db_install.rsp<<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
oracle.install.option=INSTALL_DB_SWONLY
#ORACLE_HOSTNAME=$host_name
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=${ENV_BASE_DIR}/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=$ENV_ORACLE_HOME
ORACLE_BASE=$ENV_ORACLE_BASE
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oinstall
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
#oracle.install.db.DBA_GROUP=dba
#oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.isRACOneInstall=false
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=$GLOBLE_DBName
oracle.install.db.config.starterdb.SID=$ORACLE_SID
oracle.install.db.ConfigureAsContainerDB=false
#oracle.install.db.config.starterdb.characterSet=${NLS_LANG}
oracle.install.db.config.starterdb.memoryOption=true
#oracle.install.db.config.starterdb.memoryLimit=$MemTotalMB
oracle.install.db.config.starterdb.installExampleSchemas=false
#oracle.install.db.config.starterdb.enableSecuritySettings=false
#oracle.install.db.config.starterdb.password.ALL=$SYSTEM_PASSWD
oracle.install.db.config.starterdb.managementOption=DEFAULT
#oracle.install.db.config.starterdb.control=DB_CONTROL
#oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
#oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true
#oracle.installer.autoupdates.option=SKIP_UPDATES
EOF
elif [ ${DB_VERSION} = 11.2.0.4 ]; then
cat > db_install.rsp<<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=$host_name
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=${ENV_BASE_DIR}/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=$ENV_ORACLE_HOME
ORACLE_BASE=$ENV_ORACLE_BASE
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.isRACOneInstall=false
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=$GLOBLE_DBName
oracle.install.db.config.starterdb.SID=$ORACLE_SID
#oracle.install.db.config.starterdb.characterSet=${NLS_LANG}
oracle.install.db.config.starterdb.memoryOption=true
#oracle.install.db.config.starterdb.memoryLimit=$MemTotalMB
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=false
#oracle.install.db.config.starterdb.password.ALL=$SYSTEM_PASSWD
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES
EOF
elif [ ${DB_VERSION} = 19.3.0.0 ]; then
cat > db_install.rsp<<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
oracle.install.option=INSTALL_DB_SWONLY
#ORACLE_HOSTNAME=$host_name
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=${ENV_BASE_DIR}/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=$ENV_ORACLE_HOME
ORACLE_BASE=$ENV_ORACLE_BASE
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oinstall
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
#oracle.install.db.DBA_GROUP=dba
#oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.isRACOneInstall=false
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=$GLOBLE_DBName
oracle.install.db.config.starterdb.SID=$ORACLE_SID
oracle.install.db.ConfigureAsContainerDB=false
#oracle.install.db.config.starterdb.characterSet=${NLS_LANG}
oracle.install.db.config.starterdb.memoryOption=true
#oracle.install.db.config.starterdb.memoryLimit=$MemTotalMB
oracle.install.db.config.starterdb.installExampleSchemas=false
#oracle.install.db.config.starterdb.enableSecuritySettings=false
#oracle.install.db.config.starterdb.password.ALL=$SYSTEM_PASSWD
oracle.install.db.config.starterdb.managementOption=DEFAULT
#oracle.install.db.config.starterdb.control=DB_CONTROL
#oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
#oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true
#oracle.installer.autoupdates.option=SKIP_UPDATES
EOF
fi


#Install Database software
chown oracle.oinstall $SCRIPT_DIR/db_install.rsp

if [[ ${DB_VERSION} = 12.2.0.1 ]] || [[ ${DB_VERSION} = 11.2.0.4 ]]; then
su - oracle <<EOF
cd $SOFTWATE_DIR/database;
./runInstaller -silent -force -ignoreSysPrereqs -responseFile $SCRIPT_DIR/db_install.rsp -ignorePrereq
EOF
elif [ ${DB_VERSION} = 19.3.0.0 ]; then
su - oracle <<EOF
cd ${ENV_ORACLE_HOME};
./runInstaller -silent -force -responseFile $SCRIPT_DIR/db_install.rsp -ignorePrereq
EOF
fi


if [ ${DB_VERSION} = 12.2.0.1 ]; then
	#睡眠10分钟
	sleep 10m
	sh $ENV_BASE_DIR/oracle/product/12.2.0/db_1/root.sh  #v2.0
elif [ ${DB_VERSION} = 11.2.0.4 ]; then
	#睡眠10分钟
	sleep 10m
	sh $ENV_BASE_DIR/oraInventory/orainstRoot.sh  #v1.1
	sh $ENV_BASE_DIR/oracle/product/11.2/root.sh  #v1.1
elif [ ${DB_VERSION} = 19.3.0.0 ]; then
	#睡眠10分钟
	sleep 10m
	sh $ENV_BASE_DIR/oraInventory/orainstRoot.sh  #v4.0
	sh $ENV_BASE_DIR/oracle/product/19.3.0/db_1/root.sh
fi
echo "Database software is installed ----- SUCCEEDED" >> install.log
}


function createDB(){
#定义dbca应答文件
if [ ${DB_VERSION} = 12.2.0.1 ]; then
cat > dbca.rsp<<EOF
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=${GLOBLE_DBName}
sid=${ORACLE_SID}
databaseConfigType=SI
createAsContainerDatabase=false
templateName=ORCL_TEMPLATE.dbt
storageType=FS
datafileDestination=${ENV_ORACLE_BASE}/oradata/${ORACLE_SID}
characterSet=${NLS_LANG}
nationalCharacterSet=${NLS_NCHAR_CHAR}
memoryPercentage=${MemPercent}
totalMemory=${MemTotalMB}
initParams=audit_trail=none
#automaticMemoryManagement=TRUE
sysPassword=${SYSTEM_PASSWD}
systemPassword=${SYSTEM_PASSWD}
databaseType=OLTP
#variables=DB_UNIQUE_NAME=${ORACLE_SID},ORACLE_BASE=${ENV_ORACLE_BASE},PDB_NAME=,DB_NAME=${ORACLE_SID},ORACLE_HOME=${ENV_ORACLE_HOME},SID=${ORACLE_SID}
EOF
elif [ ${DB_VERSION} = 11.2.0.4 ]; then
cat > dbca.rsp<<EOF
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "$GLOBLE_DBName"
SID = "$ORACLE_SID"
TEMPLATENAME = "ORCL_TEMPLATE.dbt"
STORAGETYPE=FS
DATAFILEDESTINATION = "$ENV_ORACLE_BASE/oradata/$ORACLE_SID"
CHARACTERSET = "${NLS_LANG}"
NATIONALCHARACTERSET= "${NLS_NCHAR_CHAR}"
LISTENERS = LISTENER
MEMORYPERCENTAGE = "${MemPercent}"
TOTALMEMORY = "$MemTotalMB"
#AUTOMATICMEMORYMANAGEMENT = "TRUE"
SYSPASSWORD = "$SYSTEM_PASSWD"
SYSTEMPASSWORD = "$SYSTEM_PASSWD"
databaseType=OLTP
EOF
elif [ ${DB_VERSION} = 19.3.0.0 ]; then
cat > dbca.rsp<<EOF
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=${GLOBLE_DBName}
sid=${ORACLE_SID}
databaseConfigType=SI
createAsContainerDatabase=false
templateName=ORCL_TEMPLATE.dbt
storageType=FS
datafileDestination=${ENV_ORACLE_BASE}/oradata/${ORACLE_SID}
characterSet=${NLS_LANG}
nationalCharacterSet=${NLS_NCHAR_CHAR}
memoryPercentage=${MemPercent}
totalMemory=${MemTotalMB}
initParams=audit_trail=none
#automaticMemoryManagement=TRUE
sysPassword=${SYSTEM_PASSWD}
systemPassword=${SYSTEM_PASSWD}
databaseType=OLTP
#variables=DB_UNIQUE_NAME=${ORACLE_SID},ORACLE_BASE=${ENV_ORACLE_BASE},PDB_NAME=,DB_NAME=${ORACLE_SID},ORACLE_HOME=${ENV_ORACLE_HOME},SID=${ORACLE_SID}
EOF
fi

#定义dbca模板文件
if [ ${DB_VERSION} = 12.2.0.1 ]; then
cat > $ENV_ORACLE_HOME/assistants/dbca/templates/ORCL_TEMPLATE.dbt<<EOF
<DatabaseTemplate name="ORCL_TEMPLATE" description=" " version="12.2.0.1.0">
   <CommonAttributes>
      <option name="OMS" value="false"/>
      <option name="JSERVER" value="true"/>
      <option name="SPATIAL" value="false"/>
      <option name="IMEDIA" value="true"/>
      <option name="XDB_PROTOCOLS" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="ORACLE_TEXT" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="SAMPLE_SCHEMA" value="false"/>
      <option name="CWMLITE" value="false">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="EM_REPOSITORY" value="false">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="APEX" value="true"/>
      <option name="OWB" value="false"/>
      <option name="DV" value="false"/>
   </CommonAttributes>
   <Variables/>
   <CustomScripts Execute="false"/>
   <InitParamAttributes>
      <InitParams>
         <initParam name="db_name" value="$ORACLE_SID"/>
         <initParam name="db_domain" value=""/>
         <initParam name="dispatchers" value="(PROTOCOL=TCP) (SERVICE={SID}XDB)"/>
         <initParam name="audit_file_dest" value="{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump"/>
         <initParam name="compatible" value="12.2.0"/>
         <initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
         <initParam name="log_archive_dest_1" value="'LOCATION=$ENV_ORACLE_BASE/oradata/$ORACLE_SID'"/>
         <initParam name="processes" value="2000"/>
         <initParam name="undo_tablespace" value="UNDOTBS1"/>
         <initParam name="control_files" value="(&quot;{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl&quot;, &quot;{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control02.ctl&quot;)"/>
         <initParam name="diagnostic_dest" value="{ORACLE_BASE}"/>
         <initParam name="audit_trail" value="none"/>
         <initParam name="log_archive_format" value="%t_%s_%r.dbf"/>
         <initParam name="sessions" value="2205"/>
         <initParam name="db_block_size" value="8" unit="KB"/>
         <initParam name="open_cursors" value="300"/>
      </InitParams>
      <MiscParams>
         <databaseType>OLTP</databaseType>
         <maxUserConn>20</maxUserConn>
		 <percentageMemTOSGA>80</percentageMemTOSGA>
         <customSGA>false</customSGA>
         <characterSet>${NLS_LANG}</characterSet>
         <nationalCharacterSet>${NLS_NCHAR_CHAR}</nationalCharacterSet>
         <archiveLogMode>$ARCH_MODE</archiveLogMode>
         <initParamFileName>{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/pfile/init.ora</initParamFileName>
      </MiscParams>
      <SPfile useSPFile="true">{ORACLE_HOME}/dbs/spfile{SID}.ora</SPfile>
   </InitParamAttributes>
   <StorageAttributes>
      <ControlfileAttributes id="Controlfile">
         <maxDatafiles>100</maxDatafiles>
         <maxLogfiles>16</maxLogfiles>
         <maxLogMembers>3</maxLogMembers>
         <maxLogHistory>1</maxLogHistory>
         <maxInstances>8</maxInstances>
         <image name="control01.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
         <image name="control02.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </ControlfileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf">
         <tablespace>SYSAUX</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">2000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">10240</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf">
         <tablespace>SYSTEM</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">2000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">10240</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf">
         <tablespace>TEMP</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">5000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">640</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf">
         <tablespace>UNDOTBS1</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">5000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">5120</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf">
         <tablespace>USERS</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">500</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">1280</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <TablespaceAttributes id="SYSAUX">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="SYSTEM">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>3</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>-1</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="TEMP">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>true</temporary>
         <defaultTemp>true</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>0</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>0</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="UNDOTBS1">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>true</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">512</initSize>
         <increment unit="KB">512</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>8</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">512</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="USERS">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">128</initSize>
         <increment unit="KB">128</increment>
         <incrementPercent>0</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">128</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <RedoLogGroupAttributes id="1">
         <reuse>false</reuse>
         <fileSize unit="MB">200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo01.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="2">
         <reuse>false</reuse>
         <fileSize unit="MB">200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo02.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="3">
         <reuse>false</reuse>
         <fileSize unit="MB">200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo03.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
   </StorageAttributes>
</DatabaseTemplate>
EOF
elif [ ${DB_VERSION} = 11.2.0.4 ]; then
cat > $ENV_ORACLE_HOME/assistants/dbca/templates/ORCL_TEMPLATE.dbt<<EOF
<DatabaseTemplate name="ORCL_TEMPLATE" description=" " version="11.2.0.0.0">
   <CommonAttributes>
      <option name="OMS" value="false"/>
      <option name="JSERVER" value="true"/>
      <option name="SPATIAL" value="false"/>
      <option name="IMEDIA" value="true"/>
      <option name="XDB_PROTOCOLS" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="ORACLE_TEXT" value="true">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="SAMPLE_SCHEMA" value="false"/>
      <option name="CWMLITE" value="false">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="EM_REPOSITORY" value="false">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="APEX" value="true"/>
      <option name="OWB" value="false"/>
      <option name="DV" value="false"/>
   </CommonAttributes>
   <Variables/>
   <CustomScripts Execute="false"/>
   <InitParamAttributes>
      <InitParams>
         <initParam name="db_name" value="$ORACLE_SID"/>
         <initParam name="db_domain" value=""/>
         <initParam name="dispatchers" value="(PROTOCOL=TCP) (SERVICE={SID}XDB)"/>
         <initParam name="audit_file_dest" value="{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump"/>
         <initParam name="compatible" value="11.2.0.4.0"/>
         <initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
         <initParam name="log_archive_dest_1" value="'LOCATION=$ENV_ORACLE_BASE/oradata/$ORACLE_SID'"/>
         <initParam name="processes" value="2000"/>
         <initParam name="undo_tablespace" value="UNDOTBS1"/>
         <initParam name="control_files" value="(&quot;{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl&quot;, &quot;{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control02.ctl&quot;)"/>
         <initParam name="diagnostic_dest" value="{ORACLE_BASE}"/>
         <initParam name="audit_trail" value="none"/>
         <initParam name="log_archive_format" value="%t_%s_%r.dbf"/>
         <initParam name="sessions" value="2205"/>
         <initParam name="db_block_size" value="8" unit="KB"/>
         <initParam name="open_cursors" value="300"/>
      </InitParams>
      <MiscParams>
         <databaseType>OLTP</databaseType>
         <maxUserConn>20</maxUserConn>
		 <percentageMemTOSGA>80</percentageMemTOSGA>
         <customSGA>false</customSGA>
         <characterSet>${NLS_LANG}</characterSet>
         <nationalCharacterSet>${NLS_NCHAR_CHAR}</nationalCharacterSet>
         <archiveLogMode>$ARCH_MODE</archiveLogMode>
         <initParamFileName>{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/pfile/init.ora</initParamFileName>
      </MiscParams>
      <SPfile useSPFile="true">{ORACLE_HOME}/dbs/spfile{SID}.ora</SPfile>
   </InitParamAttributes>
   <StorageAttributes>
      <ControlfileAttributes id="Controlfile">
         <maxDatafiles>100</maxDatafiles>
         <maxLogfiles>16</maxLogfiles>
         <maxLogMembers>3</maxLogMembers>
         <maxLogHistory>1</maxLogHistory>
         <maxInstances>8</maxInstances>
         <image name="control01.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
         <image name="control02.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </ControlfileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf">
         <tablespace>SYSAUX</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">2000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">10240</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf">
         <tablespace>SYSTEM</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">2000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">10240</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf">
         <tablespace>TEMP</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">5000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">640</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf">
         <tablespace>UNDOTBS1</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">5000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">5120</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf">
         <tablespace>USERS</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">500</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">1280</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <TablespaceAttributes id="SYSAUX">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="SYSTEM">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>3</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>-1</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="TEMP">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>true</temporary>
         <defaultTemp>true</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>0</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>0</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="UNDOTBS1">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>true</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">512</initSize>
         <increment unit="KB">512</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>8</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">512</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="USERS">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">128</initSize>
         <increment unit="KB">128</increment>
         <incrementPercent>0</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">128</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <RedoLogGroupAttributes id="1">
         <reuse>false</reuse>
         <fileSize unit="MB">200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo01.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="2">
         <reuse>false</reuse>
         <fileSize unit="MB">200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo02.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="3">
         <reuse>false</reuse>
         <fileSize unit="MB">200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo03.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
   </StorageAttributes>
</DatabaseTemplate>
EOF
elif [ ${DB_VERSION} = 19.3.0.0 ]; then
cat > $ENV_ORACLE_HOME/assistants/dbca/templates/ORCL_TEMPLATE.dbt<<EOF
<DatabaseTemplate name="ORCL_TEMPLATE" description="" version="19.0.0.0.0">
   <CommonAttributes>
      <option name="OMS" value="false" includeInPDBs="false"/>
      <option name="JSERVER" value="true" includeInPDBs="false"/>
      <option name="SPATIAL" value="true" includeInPDBs="false"/>
      <option name="IMEDIA" value="true" includeInPDBs="false"/>
      <option name="ORACLE_TEXT" value="true" includeInPDBs="false">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="SAMPLE_SCHEMA" value="false" includeInPDBs="false"/>
      <option name="CWMLITE" value="true" includeInPDBs="false">
         <tablespace id="SYSAUX"/>
      </option>
      <option name="APEX" value="false" includeInPDBs="false"/>
      <option name="DV" value="false" includeInPDBs="false"/>
   </CommonAttributes>
   <Variables/>
   <CustomScripts Execute="false"/>
   <InitParamAttributes>
      <InitParams>
         <initParam name="db_name" value="$ORACLE_SID"/>
         <initParam name="dispatchers" value="(PROTOCOL=TCP) (SERVICE={SID}XDB)"/>
         <initParam name="audit_file_dest" value="{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump"/>
         <initParam name="compatible" value="19.0.0"/>
         <initParam name="remote_login_passwordfile" value="EXCLUSIVE"/>
         <initParam name="log_archive_dest_1" value="'LOCATION=$ENV_ORACLE_BASE/oradata/$ORACLE_SID'"/>
         <initParam name="processes" value="5120"/>
         <initParam name="local_listener" value="LISTENER_WXBD"/>
         <initParam name="undo_tablespace" value="UNDOTBS1"/>
         <initParam name="control_files" value="(&quot;{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl&quot;, &quot;{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control02.ctl&quot;)"/>
         <initParam name="diagnostic_dest" value="{ORACLE_BASE}"/>
         <initParam name="audit_trail" value="none"/>
         <initParam name="nls_territory" value="AMERICA"/>
		 <initParam name="log_archive_format" value="%t_%s_%r.dbf"/>
         <initParam name="db_block_size" value="8192"/>
         <initParam name="open_cursors" value="300"/>
         <initParam name="nls_language" value="AMERICAN"/>
      </InitParams>
      <MiscParams>
         <databaseType>OLTP</databaseType>
         <maxUserConn>20</maxUserConn>
		 <percentageMemTOSGA>80</percentageMemTOSGA>
         <customSGA>false</customSGA>
         <characterSet>${NLS_LANG}</characterSet>
         <nationalCharacterSet>${NLS_NCHAR_CHAR}</nationalCharacterSet>
         <archiveLogMode>$ARCH_MODE</archiveLogMode>
         <initParamFileName>{ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/pfile/init.ora</initParamFileName>
      </MiscParams>
      <SPfile useSPFile="true">{ORACLE_HOME}/dbs/spfile{SID}.ora</SPfile>
   </InitParamAttributes>
   <StorageAttributes>
      <ControlfileAttributes id="Controlfile">
         <maxDatafiles>100</maxDatafiles>
         <maxLogfiles>16</maxLogfiles>
         <maxLogMembers>3</maxLogMembers>
         <maxLogHistory>1</maxLogHistory>
         <maxInstances>8</maxInstances>
         <image name="control01.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
         <image name="control02.ctl" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </ControlfileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf">
         <tablespace>SYSAUX</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">2000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">10240</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf">
         <tablespace>SYSTEM</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">2000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">10240</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf">
         <tablespace>TEMP</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">5000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">640</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf">
         <tablespace>UNDOTBS1</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">5000</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">5120</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <DatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf">
         <tablespace>USERS</tablespace>
         <temporary>false</temporary>
         <online>true</online>
         <status>0</status>
         <size unit="MB">500</size>
         <reuse>true</reuse>
         <autoExtend>true</autoExtend>
         <increment unit="KB">1280</increment>
         <maxSize unit="MB">-1</maxSize>
      </DatafileAttributes>
      <TablespaceAttributes id="SYSAUX">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/sysaux01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="SYSTEM">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>3</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>-1</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/system01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="TEMP">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>true</temporary>
         <defaultTemp>true</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">64</initSize>
         <increment unit="KB">64</increment>
         <incrementPercent>0</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>0</maxExtends>
         <minExtendsSize unit="KB">64</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/temp01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="UNDOTBS1">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>true</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">512</initSize>
         <increment unit="KB">512</increment>
         <incrementPercent>50</incrementPercent>
         <minExtends>8</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">512</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/undotbs01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <TablespaceAttributes id="USERS">
         <online>true</online>
         <offlineMode>1</offlineMode>
         <readOnly>false</readOnly>
         <temporary>false</temporary>
         <defaultTemp>false</defaultTemp>
         <undo>false</undo>
         <local>true</local>
         <blockSize>-1</blockSize>
         <allocation>1</allocation>
         <uniAllocSize unit="KB">-1</uniAllocSize>
         <initSize unit="KB">128</initSize>
         <increment unit="KB">128</increment>
         <incrementPercent>0</incrementPercent>
         <minExtends>1</minExtends>
         <maxExtends>4096</maxExtends>
         <minExtendsSize unit="KB">128</minExtendsSize>
         <logging>true</logging>
         <recoverable>false</recoverable>
         <maxFreeSpace>0</maxFreeSpace>
         <autoSegmentMgmt>true</autoSegmentMgmt>
         <bigfile>false</bigfile>
         <datafilesList>
            <TablespaceDatafileAttributes id="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/users01.dbf">
               <id>-1</id>
            </TablespaceDatafileAttributes>
         </datafilesList>
      </TablespaceAttributes>
      <RedoLogGroupAttributes id="1">
         <reuse>false</reuse>
         <fileSize unit="MB">200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo01.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="2">
         <reuse>false</reuse>
         <fileSize unit="MB">200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo02.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
      <RedoLogGroupAttributes id="3">
         <reuse>false</reuse>
         <fileSize unit="MB">200</fileSize>
         <Thread>1</Thread>
         <member ordinal="0" memberName="redo03.log" filepath="{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/"/>
      </RedoLogGroupAttributes>
   </StorageAttributes>
</DatabaseTemplate>
EOF
fi

#Create Database
chown oracle.oinstall $SCRIPT_DIR/dbca.rsp
chown oracle.oinstall $ENV_ORACLE_HOME/assistants/dbca/templates/ORCL_TEMPLATE.dbt
if [[ ${DB_VERSION} = 12.2.0.1 ]] || [[ ${DB_VERSION} = 19.3.0.0 ]]; then
su - oracle << EOF
cd $ENV_ORACLE_HOME/bin
./dbca -silent -createDatabase -responseFile $SCRIPT_DIR/dbca.rsp
EOF
elif [ ${DB_VERSION} = 11.2.0.4 ]; then
su - oracle << EOF
cd $ENV_ORACLE_HOME/bin
./dbca -silent -responseFile $SCRIPT_DIR/dbca.rsp
EOF
fi
echo "Database is created ----- SUCCEEDED" >> install.log

#Install listence
if [[ ${DB_VERSION} = 12.2.0.1 ]] || [[ ${DB_VERSION} = 11.2.0.4 ]]; then
su - oracle <<EOF
cd $ENV_ORACLE_HOME/bin
./netca -silent -responseFile $SOFTWATE_DIR/database/response/netca.rsp
EOF
elif [ ${DB_VERSION} = 19.3.0.0 ]; then
su - oracle <<EOF
cd $ENV_ORACLE_HOME/bin
./netca -silent -responseFile ${ENV_ORACLE_HOME}/assistants/netca/netca.rsp
EOF
fi

echo "listence is created ----- SUCCEEDED" >> install.log

#add for solve ORA-28040 with 12c  v2.0
if [[ ${DB_VERSION} = 12.2.0.1 ]] || [[ ${DB_VERSION} = 19.3.0.0 ]]; then
	echo "" >> $ENV_ORACLE_HOME/network/admin/sqlnet.ora
	>> $ENV_ORACLE_HOME/network/admin/sqlnet.ora
	echo "SQLNET.ALLOWED_LOGON_VERSION=8" >> $ENV_ORACLE_HOME/network/admin/sqlnet.ora
fi

#modify user PASSWORD_LIFE_TIME UNLIMITED;turn off audit
su - oracle -c "sqlplus -s / as sysdba" <<EOF
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
alter system set audit_sys_operations=FALSE scope=spfile;
alter system set audit_trail=none scope=spfile;
shutdown immediate;
EXIT
EOF
su - oracle -c "sqlplus -s / as sysdba" <<EOF
startup
alter user system identified by ${SYSTEM_PASSWD};
EXIT
EOF
}



function endConfig(){
#set send mail v2.0
service sendmail stop
chkconfig sendmail off
service postfix stop
chkconfig postfix off
echo "" >> /etc/hosts
echo "10.0.1.8      mail.longigroup.com" >> /etc/hosts
echo "10.0.1.9      mail.longigroup.com" >> /etc/hosts
echo "" >> /etc/hosts
echo "set from=netmaster@longigroup.com" >> /etc/mail.rc
echo "set smtp=mail.longigroup.com" >> /etc/mail.rc
echo "set smtp-auth-user=netmaster" >> /etc/mail.rc
echo "set smtp-auth-password=Longi-silicon" >> /etc/mail.rc
echo "set smtp-auth=login" >> /etc/mail.rc

#初始化监控脚本 v2.0
mkdir /home/oracle/scripts
wget http://${SITE2}/scripts/dba_disk_alert.sh -O /home/oracle/scripts/dba_disk_alert.sh
wget http://${SITE2}/scripts/dba_tbs_alert.sh -O /home/oracle/scripts/dba_tbs_alert.sh
chown -R oracle:oinstall /home/oracle/scripts
chmod 755 /home/oracle/scripts/*.sh

#设置定时任务 v2.0
echo "0 4,8,12,16,20 * * * /home/oracle/scripts/dba_disk_alert.sh > /home/oracle/scripts/dba_disk_alert.log 2>&1" > /var/spool/cron/oracle
echo "30 4,8,12,16,20 * * * /home/oracle/scripts/dba_tbs_alert.sh > /home/oracle/scripts/dba_tbs_alert.log 2>&1" >> /var/spool/cron/oracle
chown oracle:oinstall /var/spool/cron/oracle
echo "crontab is created ----- SUCCEEDED" >> install.log

#Database infomation
cat > DB_Inf.txt<<EOF
OS Infomation:
$hostip	$host_name 

OS User name&passwd: 
oracle / $ORAPASSWD 
 
Database Infomation: 
ORACLE_SID = $ORACLE_SID

Database version :  $DB_VERSION

TNS: 
**********************************************
${ORACLE_SID}_TNS =
        (DESCRIPTION= 
            (ADDRESS_LIST=
                (LOAD_BALANCE=YES)
                (FAILOVER=YES)
                (ADDRESS=(PROTOCOL=tcp)(HOST=$hostip)(PORT=1521))
            )
            (CONNECT_DATA=
                (SERVICE_NAME=$ORACLE_SID)
            )
        )
********************************************** 

DB User name&passwd: system / $SYSTEM_PASSWD
 
DB NLS LANG: 
AMERICAN_AMERICA.${NLS_LANG}
EOF
echo "#################################"
cat DB_Inf.txt
echo "#################################"
#这里可以配置mail,然后将DB_Inf邮件通知
}


#-------------------------#
# judge what needs to be done
#-------------------------#
if [[ $INPUT_CHOICE = "createDB" ]];then
	echo -e "\033[37;31;5mbegin install software...\033[39;49;0m"
	installDBsoftware
	echo -e "\033[37;31;5mbegin create database...\033[39;49;0m"
	createDB
	echo -e "\033[37;31;5mbegin config database...\033[39;49;0m"
	endConfig
elif [[ $INPUT_CHOICE = "installSoftwareOnly" ]];then
	echo -e "\033[37;31;5mbegin install software...\033[39;49;0m"
	installDBsoftware
fi
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值