oracle 11g 自动安装

ps:真的费了很大的精力写成了交互式的自动安装,分成了两个部分

一:

#!/bin/bash
#uthor : shan dong jia you
# create date : 2018-05-22
# oracle version : 11gr2
# linux version : redhat 7.4
# ram : 2G
############################################################
isroot()
{
 if [[ ${user} -lt root ]];then
        echo -e”\n\e[1;31mthis script must be executed as root. \e[0m”
        exit 1
 else
        echo -e “\n\e[1;36muser is root ! \e[0m”
 fi
}
mount_iso()
{
 if [ -f /usr/local/src/rhel-server-7.4-x86_64-dvd.iso ];then
        echo -e “\n\e[1;36m rhel-server-7.4-x86_64-dvd.iso file is exsit! \e[0m”
        mkdir -p /media/iso && mount -t iso9660 -o loop /usr/local/src/rhel-server-7.4-x86_64-dvd.iso /media/iso >> /dev/null
        if [ $? -eq 0 ];then
                echo -e “\n\e[1;36m mounted is secussful! \e[0m”
        fi
 else
        echo -e “\n\e[1;31m rhel-server-7.4-x86_64-dvd.iso file is not exsit!”
        exit 3
 fi

}
yum_repo()
{
rm -rf /etc/yum.repos.d/* && cat << EOF >>/etc/yum.repos.d/iso.repo
[ISO]
name=myrepo
baseurl=file:///media/iso
enabled=1
gpgcheck=0
gpgkey=file:///media/iso/RPM-GPG-KEY-redhat-release
EOF
if [ $? -eq 0 ];then
        echo -e “\n\e[1;36mcreate iso.repo secussful! \e[0m”
else
        echo -e “\n\e[1;31mcreate iso.repo fail! \e[0m”
fi
}
packagecheck()
{
for package in binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp
do
        rpm -qa $package 2 > /dev/null
        if [[ $? -eq 0 ]];then
                yum -y install $package
                echo -e “\n\e[1;36m $package in already installed! \e[0m”
        else
                echo -e “\n\e[1;31m install is error! \e[0m”
        fi
done
cd /usr/local/src
rpm -ivh –force –nodeps compat-libstdc++-33-3.2.3-61.i386.rpm
rpm -ivh –force –nodeps compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
rpm -ivh –force –nodeps libaio-devel-0.3.105-2.i386.rpm
rpm -ivh –force –nodeps libgcc-3.4.6-3.i386.rpm
rpm -ivh –force –nodeps libstdc++-3.4.6-3.1.i386.rpm
rpm -ivh –force –nodeps unixODBC-2.2.11-7.1.i386.rpm
rpm -ivh –force –nodeps unixODBC-devel-2.2.11-7.1.i386.rpm
yum -y install bc >> /dev/null
}
#修改主机名
hostname()
{
hostnamectl set-hostname $1
}
#主机名与IP解析
hosts()
{
echo $1 $2 >> /etc/hosts
}
#设置selinux宽松模式
setenforce 0
#不要用useradd命名函数
iuseradd()
{
if [[ `cat /etc/group | grep “oinstall” | awk -F : ‘{print $1}’` = “” ]];then
        groupadd oinstall
        echo -e “\n\e[1;36m create group oinstall succsess! \e[0m”

else
        echo -e “\n\e[1;31mgroup oinstall is already! \e[0m”
fi
if [[ `cat /etc/group | grep “dba” | awk -F : ‘{print $1}’` = “” ]];then
        groupadd dba
        echo -e “\n\e[1;36m create group dba succsess! \e[0m”
        else
        echo -e “\n\e[1;31mgroup dba is already! \e[0m”
fi
if [[ `cat /etc/passwd | grep “oracle” | awk -F : ‘{print $1}’` = “” ]];then
        useradd -g oinstall -G dba oracle
        echo -e “\n\e[1;36m create user oracle is success! \e[0m”

else
        echo -e “\a\n\e[1;31moracle用户已存在!\e[0m”
fi
if [ $? -eq 0 ];then
        echo $1 | passwd oracle –stdin
else
        echo -e “\n\e[1;31m create is fail \e[0m”
fi
}
sysctl_1()
{
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $1
kernel.shmmax = $2
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 = 1048575
EOF
sysctl -p
}
ilimits()
{
cat >> /etc/security/limits.conf << EOF
oracle      soft    nproc   2047
oracle      hard    nproc   16384
oracle      soft    nofile  1024
oracle      hard    nofile  65536
oracle      soft    stack   10240
EOF
}
ologin()
{
abc=`find / -name pam_limits.so`
sleep 5
cat >> /etc/pam.d/login << EOF
session    required     ${abc}
EOF
}
iprofile()
{
path=`cat /home/oracle/.bash_profile | grep PATH | awk -F = ‘{print $2}’`
cat >> /home/oracle/.bash_profile << EOF

export ORACLE_BASE=$1
export ORACLE_HOME=$2
export ORACLE_SID=orcl
export PATH=\$PATH:\$ORACLE_HOME/bin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/usr/lib
EOF
source  /home/oracle/.bash_profile
}
idir()
{
mkdir -p ${ioracle_home}
chmod 755 -R ${ioracle_home}
chown -R oracle:oinstall ${ibase}
}
yum_unzip()
{
yum -y install unzip
}
unzip_oracle()
{
cd $1
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
}

isroot
mount_iso
yum_repo
packagecheck
echo -e “\a\n\e[1;36m请输入你的主机名:\e[0m”
#修改了输入后无法修改的问题
stty erase ^H
read name
hostname $name
echo -e “\a\n\e[1;36m请输入你的ip: \e[0m”
stty erase ^H
read ip
hosts ${ip} ${name}
echo -e “\n\e[1;36m请输入oracle用户密码: \e[0m”
stty erase ^H
read oracle_passwd
iuseradd ${oracle_passwd}
echo -e “\a\n\e[1;31m请输入你的系统内存(以G为标准,只输入数字): \e[0m”
stty erase ^H
read iram
ishmall=`echo “scale=1;${iram} * 1024 * 1024 / 4 * 0.6” | bc`
ishmmax=`echo “scale=1;${iram} * 1024 * 1024 * 1024 * 0.6” | bc`
sysctl_1 ${ishmall%.*} ${ishmmax%.*}
ilimits
ologin
echo -e “\n\e[1;36m请输入 ORACLE_BASE: \e[0m”
stty erase ^H
read ibase
echo -e “\n\e[1;36m请输入 ORACLE_HOME: \e[0m”
stty erase ^H
read ioracle_home
iprofile ${ibase} ${ioracle_home}
idir 
yum_unzip
echo -e ‘\n\e[1;36m请输入你的源码存放路径(/usr/local/src): \e[0m’
stty erase ^H
read sound_code
unzip_oracle ${sound_code}
echo -e ‘\n\e[1;36m============================== \e[0m’
cat << EOF
INSTALL_DB_SWONLY
INSTALL_DB_AND_CONFIG
UPGRADE_DB
EOF
echo -e ‘\n\e[1;36m============================== \e[0m’
echo -e “\a\n\e[1;36m填写你需要安装类型:\e[0m”
stty erase ^H
read a
case $a in
        INSTALL_DB_SWONLY)
        sed -i ‘s/oracle.install.option=/&INSTALL_DB_SWONLY/’ /usr/local/src/database/response/db_install.rsp
        ;;
        INSTALL_DB_AND_CONFIG)
        sed -i ‘s/oracle.install.option=/&INSTALL_DB_AND_CONFIG/’ /usr/local/src/database/response/db_install.rsp
        ;;
        *)
        echo -e “\a\n\e[1;31m填写错误 \e[0m”
        exit 1
esac
sed -i “s/ORACLE_HOSTNAME=/&${name}/” /usr/local/src/database/response/db_install.rsp
echo -e ‘\a\n\e[1;36m请输入oracle的附属主组:\e[0m’
stty erase ^H
read c
sed -i “s/UNIX_GROUP_NAME=/&$c/” /usr/local/src/database/response/db_install.rsp
echo -e ‘\a\n\e[1;36m请输入oracle产品清单的路径:\e[0m’
stty erase ^H
read z
#所赋值为路径,分隔符用%
sed -i “s%INVENTORY_LOCATION=%&$z%” /usr/local/src/database/response/db_install.rsp
echo -e ‘\n\e[1;36m============================== \e[0m’
cat << EOF
en
zh_CN
en,zh_CN
EOF
echo -e ‘\n\e[1;36m============================== \e[0m’
echo -e ‘\a\n\e[1;36m请输入数据库的语言: \e[0m’
stty erase ^H
read e
case $e in
        en)
        sed -i “s/SELECTED_LANGUAGES=/&$e/” /usr/local/src/database/response/db_install.rsp
        ;;
        zh_CN)
        sed -i “s/SELECTED_LANGUAGES=/&$e/” /usr/local/src/database/response/db_install.rsp
        ;;
        en,zh_CN)
    sed -i “s/SELECTED_LANGUAGES=/&$e/” /usr/local/src/database/response/db_install.rsp
    ;;
    *)
        echo -e “\a\n\e[1;31m输入有误\e[0m”
        exit 1
esac
sed -i “s%ORACLE_HOME=%&${ioracle_home}%” /usr/local/src/database/response/db_install.rsp
sed -i “s%ORACLE_BASE=%&${ibase}%” /usr/local/src/database/response/db_install.rsp
echo -e ‘\n\e[1;36m============================== \e[0m’
cat << EOF
EE (企业版)
SE(标准版)
EOF
echo -e ‘\n\e[1;36m============================== \e[0m’
echo -e ‘\a\n\e[1;36m请输入你要安装oracle数据库的版本:\e[0m’
stty erase ^H
read h
case $h in
        EE)
        sed -i “s/oracle.install.db.InstallEdition=/&$h/” /usr/local/src/database/response/db_install.rsp
        ;;
        SE)
        sed -i “s/oracle.install.db.InstallEdition=/&$h/” /usr/local/src/database/response/db_install.rsp
        ;;
        *)
        echo -e ‘\a\n\e[1;36m输入有误 \e[0m’
        exit 1
esac
echo -e ‘\a\n\e[1;36m请输入数据库管理组:\e[0m’
stty erase ^H
read i
sed -i “s/oracle.install.db.DBA_GROUP=/&$i/” /usr/local/src/database/response/db_install.rsp

sed -i “s/oracle.install.db.OPER_GROUP=/&$c/” /usr/local/src/database/response/db_install.rsp

echo -e ‘\n\e[1;36m============================== \e[0m’
cat << EOF
GENERAL_PURPOSE
DATA_WAREHOUSE
EOF
echo -e ‘\n\e[1;36m============================== \e[0m’
echo -e ‘\a\n\e[1;36m请输入你的数据库用途: \e[0m’
stty erase ^H
read k
case $k in
        GENERAL_PURPOSE)
    sed -i “s/oracle.install.db.config.starterdb.type=/&$k/” /usr/local/src/database/response/db_install.rsp
        ;;
        DATA_WAREHOUSE)
        sed -i “s/oracle.install.db.config.starterdb.type=/&$k/” /usr/local/src/database/response/db_install.rsp
        ;;
        *)
        echo -e “\a\n\e[1;32m输入错误 \e[0m”
esac
echo -e ‘\a\n\e[1;36m请输入全局数据库的名字: \e[0m’
stty erase ^H
read l
sed -i “s/oracle.install.db.config.starterdb.globalDBName=/&$l/” /usr/local/src/database/response/db_install.rsp
echo -e ‘\a\n\e[1;36m请输入SID:\e[0m’
stty erase ^H
read m
sed -i “s/oracle.install.db.config.starterdb.SID=/&$m/” /usr/local/src/database/response/db_install.rsp
echo -e ‘\n\e[1;36m============================== \e[0m’
cat << EOF
AL32UTF8
ZHS16GBK
EOF
echo -e ‘\n\e[1;36m============================== \e[0m’
echo -e ‘\a\n\e[1;36m请输入字符集:\e[0m’
stty erase ^H
read n
case $n in
        AL32UTF8)
        sed -i “s/oracle.install.db.config.starterdb.characterSet=/&$n/” /usr/local/src/database/response/db_install.rsp
        ;;
        ZHS16GBK)
        sed -i “s/oracle.install.db.config.starterdb.characterSet=AL32UTF8/oracle.install.db.config.starterdb.characterSet=ZHS16GBK/” /usr/local/src/database/response/db_install.rsp
        ;;
        *)
    echo -e ‘\a\n\e[1;31m输入有误 \e [0m’
        exit 1
esac
echo -e ‘\a\n\e[1;36m设置数据库密码:\e[0m’
stty erase ^H
read o
sed -i “s/oracle.install.db.config.starterdb.password.ALL=/&$o/” /usr/local/src/database/response/db_install.rsp
sed -i “s/DECLINE_SECURITY_UPDATES=/&true/” /usr/local/src/database/response/db_install.rsp

su – oracle -c ‘cd /usr/local/src/database;./runInstaller -silent -force -responseFile /usr/local/src/database/response/db_install.rsp’ 

二:

#!/bin/bash
#uthor : shan dong jia you
# create date : 2018-05-22
# oracle version : 11gr2
# linux version : redhat 7.4
# ram : 2G
############################################################
isroot()
{
 if [[ ${user} -lt root ]];then
        echo -e”\n\e[1;31mthis script must be executed as root. \e[0m”
        exit 1
 else
        echo -e “\n\e[1;36muser is root ! \e[0m”
 fi
}
mount_iso()
{
 if [ -f /usr/local/src/rhel-server-7.4-x86_64-dvd.iso ];then
        echo -e “\n\e[1;36m rhel-server-7.4-x86_64-dvd.iso file is exsit! \e[0m”
        mkdir -p /media/iso && mount -t iso9660 -o loop /usr/local/src/rhel-server-7.4-x86_64-dvd.iso /media/iso >> /dev/null
        if [ $? -eq 0 ];then
                echo -e “\n\e[1;36m mounted is secussful! \e[0m”
        fi
 else
        echo -e “\n\e[1;31m rhel-server-7.4-x86_64-dvd.iso file is not exsit!”
        exit 3
 fi

}
yum_repo()
{
rm -rf /etc/yum.repos.d/* && cat << EOF >>/etc/yum.repos.d/iso.repo
[ISO]
name=myrepo
baseurl=file:///media/iso
enabled=1
gpgcheck=0
gpgkey=file:///media/iso/RPM-GPG-KEY-redhat-release
EOF
if [ $? -eq 0 ];then
        echo -e “\n\e[1;36mcreate iso.repo secussful! \e[0m”
else
        echo -e “\n\e[1;31mcreate iso.repo fail! \e[0m”
fi
}
packagecheck()
{
for package in binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp
do
        rpm -qa $package 2 > /dev/null
        if [[ $? -eq 0 ]];then
                yum -y install $package
                echo -e “\n\e[1;36m $package in already installed! \e[0m”
        else
                echo -e “\n\e[1;31m install is error! \e[0m”
        fi
done
cd /usr/local/src
rpm -ivh –force –nodeps compat-libstdc++-33-3.2.3-61.i386.rpm
rpm -ivh –force –nodeps compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
rpm -ivh –force –nodeps libaio-devel-0.3.105-2.i386.rpm
rpm -ivh –force –nodeps libgcc-3.4.6-3.i386.rpm
rpm -ivh –force –nodeps libstdc++-3.4.6-3.1.i386.rpm
rpm -ivh –force –nodeps unixODBC-2.2.11-7.1.i386.rpm
rpm -ivh –force –nodeps unixODBC-devel-2.2.11-7.1.i386.rpm
yum -y install bc >> /dev/null
}
#修改主机名
hostname()
{
hostnamectl set-hostname $1
}
#主机名与IP解析
hosts()
{
echo $1 $2 >> /etc/hosts
}
#设置selinux宽松模式
setenforce 0
#不要用useradd命名函数
iuseradd()
{
if [[ `cat /etc/group | grep “oinstall” | awk -F : ‘{print $1}’` = “” ]];then
        groupadd oinstall
        echo -e “\n\e[1;36m create group oinstall succsess! \e[0m”

else
        echo -e “\n\e[1;31mgroup oinstall is already! \e[0m”
fi
if [[ `cat /etc/group | grep “dba” | awk -F : ‘{print $1}’` = “” ]];then
        groupadd dba
        echo -e “\n\e[1;36m create group dba succsess! \e[0m”
        else
        echo -e “\n\e[1;31mgroup dba is already! \e[0m”
fi
if [[ `cat /etc/passwd | grep “oracle” | awk -F : ‘{print $1}’` = “” ]];then
        useradd -g oinstall -G dba oracle
        echo -e “\n\e[1;36m create user oracle is success! \e[0m”

else
        echo -e “\a\n\e[1;31moracle用户已存在!\e[0m”
fi
if [ $? -eq 0 ];then
        echo $1 | passwd oracle –stdin
else
        echo -e “\n\e[1;31m create is fail \e[0m”
fi
}
sysctl_1()
{
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $1
kernel.shmmax = $2
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 = 1048575
EOF
sysctl -p
}
ilimits()
{
cat >> /etc/security/limits.conf << EOF
oracle      soft    nproc   2047
oracle      hard    nproc   16384
oracle      soft    nofile  1024
oracle      hard    nofile  65536
oracle      soft    stack   10240
EOF
}
ologin()
{
abc=`find / -name pam_limits.so`
sleep 5
cat >> /etc/pam.d/login << EOF
session    required     ${abc}
EOF
}
iprofile()
{
path=`cat /home/oracle/.bash_profile | grep PATH | awk -F = ‘{print $2}’`
cat >> /home/oracle/.bash_profile << EOF

export ORACLE_BASE=$1
export ORACLE_HOME=$2
export ORACLE_SID=orcl
export PATH=\$PATH:\$ORACLE_HOME/bin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/usr/lib
EOF
source  /home/oracle/.bash_profile
}
idir()
{
mkdir -p ${ioracle_home}
chmod 755 -R ${ioracle_home}
chown -R oracle:oinstall ${ibase}
}
yum_unzip()
{
yum -y install unzip
}
unzip_oracle()
{
cd $1
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
}

isroot
mount_iso
yum_repo
packagecheck
echo -e “\a\n\e[1;36m请输入你的主机名:\e[0m”
#修改了输入后无法修改的问题
stty erase ^H
read name
hostname $name
echo -e “\a\n\e[1;36m请输入你的ip: \e[0m”
stty erase ^H
read ip
hosts ${ip} ${name}
echo -e “\n\e[1;36m请输入oracle用户密码: \e[0m”
stty erase ^H
read oracle_passwd
iuseradd ${oracle_passwd}
echo -e “\a\n\e[1;31m请输入你的系统内存(以G为标准,只输入数字): \e[0m”
stty erase ^H
read iram
ishmall=`echo “scale=1;${iram} * 1024 * 1024 / 4 * 0.6” | bc`
ishmmax=`echo “scale=1;${iram} * 1024 * 1024 * 1024 * 0.6” | bc`
sysctl_1 ${ishmall%.*} ${ishmmax%.*}
ilimits
ologin
echo -e “\n\e[1;36m请输入 ORACLE_BASE: \e[0m”
stty erase ^H
read ibase
echo -e “\n\e[1;36m请输入 ORACLE_HOME: \e[0m”
stty erase ^H
read ioracle_home
iprofile ${ibase} ${ioracle_home}
idir 
yum_unzip
echo -e ‘\n\e[1;36m请输入你的源码存放路径(/usr/local/src): \e[0m’
stty erase ^H
read sound_code
unzip_oracle ${sound_code}
echo -e ‘\n\e[1;36m============================== \e[0m’
cat << EOF
INSTALL_DB_SWONLY
INSTALL_DB_AND_CONFIG
UPGRADE_DB
EOF
echo -e ‘\n\e[1;36m============================== \e[0m’
echo -e “\a\n\e[1;36m填写你需要安装类型:\e[0m”
stty erase ^H
read a
case $a in
        INSTALL_DB_SWONLY)
        sed -i ‘s/oracle.install.option=/&INSTALL_DB_SWONLY/’ /usr/local/src/database/response/db_install.rsp
        ;;
        INSTALL_DB_AND_CONFIG)
        sed -i ‘s/oracle.install.option=/&INSTALL_DB_AND_CONFIG/’ /usr/local/src/database/response/db_install.rsp
        ;;
        *)
        echo -e “\a\n\e[1;31m填写错误 \e[0m”
        exit 1
esac
sed -i “s/ORACLE_HOSTNAME=/&${name}/” /usr/local/src/database/response/db_install.rsp
echo -e ‘\a\n\e[1;36m请输入oracle的附属主组:\e[0m’
stty erase ^H
read c
sed -i “s/UNIX_GROUP_NAME=/&$c/” /usr/local/src/database/response/db_install.rsp
echo -e ‘\a\n\e[1;36m请输入oracle产品清单的路径:\e[0m’
stty erase ^H
read z
#所赋值为路径,分隔符用%
sed -i “s%INVENTORY_LOCATION=%&$z%” /usr/local/src/database/response/db_install.rsp
echo -e ‘\n\e[1;36m============================== \e[0m’
cat << EOF
en
zh_CN
en,zh_CN
EOF
echo -e ‘\n\e[1;36m============================== \e[0m’
echo -e ‘\a\n\e[1;36m请输入数据库的语言: \e[0m’
stty erase ^H
read e
case $e in
        en)
        sed -i “s/SELECTED_LANGUAGES=/&$e/” /usr/local/src/database/response/db_install.rsp
        ;;
        zh_CN)
        sed -i “s/SELECTED_LANGUAGES=/&$e/” /usr/local/src/database/response/db_install.rsp
        ;;
        en,zh_CN)
    sed -i “s/SELECTED_LANGUAGES=/&$e/” /usr/local/src/database/response/db_install.rsp
    ;;
    *)
        echo -e “\a\n\e[1;31m输入有误\e[0m”
        exit 1
esac
sed -i “s%ORACLE_HOME=%&${ioracle_home}%” /usr/local/src/database/response/db_install.rsp
sed -i “s%ORACLE_BASE=%&${ibase}%” /usr/local/src/database/response/db_install.rsp
echo -e ‘\n\e[1;36m============================== \e[0m’
cat << EOF
EE (企业版)
SE(标准版)
EOF
echo -e ‘\n\e[1;36m============================== \e[0m’
echo -e ‘\a\n\e[1;36m请输入你要安装oracle数据库的版本:\e[0m’
stty erase ^H
read h
case $h in
        EE)
        sed -i “s/oracle.install.db.InstallEdition=/&$h/” /usr/local/src/database/response/db_install.rsp
        ;;
        SE)
        sed -i “s/oracle.install.db.InstallEdition=/&$h/” /usr/local/src/database/response/db_install.rsp
        ;;
        *)
        echo -e ‘\a\n\e[1;36m输入有误 \e[0m’
        exit 1
esac
echo -e ‘\a\n\e[1;36m请输入数据库管理组:\e[0m’
stty erase ^H
read i
sed -i “s/oracle.install.db.DBA_GROUP=/&$i/” /usr/local/src/database/response/db_install.rsp

sed -i “s/oracle.install.db.OPER_GROUP=/&$c/” /usr/local/src/database/response/db_install.rsp

echo -e ‘\n\e[1;36m============================== \e[0m’
cat << EOF
GENERAL_PURPOSE
DATA_WAREHOUSE
EOF
echo -e ‘\n\e[1;36m============================== \e[0m’
echo -e ‘\a\n\e[1;36m请输入你的数据库用途: \e[0m’
stty erase ^H
read k
case $k in
        GENERAL_PURPOSE)
    sed -i “s/oracle.install.db.config.starterdb.type=/&$k/” /usr/local/src/database/response/db_install.rsp
        ;;
        DATA_WAREHOUSE)
        sed -i “s/oracle.install.db.config.starterdb.type=/&$k/” /usr/local/src/database/response/db_install.rsp
        ;;
        *)
        echo -e “\a\n\e[1;32m输入错误 \e[0m”
esac
echo -e ‘\a\n\e[1;36m请输入全局数据库的名字: \e[0m’
stty erase ^H
read l
sed -i “s/oracle.install.db.config.starterdb.globalDBName=/&$l/” /usr/local/src/database/response/db_install.rsp
echo -e ‘\a\n\e[1;36m请输入SID:\e[0m’
stty erase ^H
read m
sed -i “s/oracle.install.db.config.starterdb.SID=/&$m/” /usr/local/src/database/response/db_install.rsp
echo -e ‘\n\e[1;36m============================== \e[0m’
cat << EOF
AL32UTF8
ZHS16GBK
EOF
echo -e ‘\n\e[1;36m============================== \e[0m’
echo -e ‘\a\n\e[1;36m请输入字符集:\e[0m’
stty erase ^H
read n
case $n in
        AL32UTF8)
        sed -i “s/oracle.install.db.config.starterdb.characterSet=/&$n/” /usr/local/src/database/response/db_install.rsp
        ;;
        ZHS16GBK)
        sed -i “s/oracle.install.db.config.starterdb.characterSet=AL32UTF8/oracle.install.db.config.starterdb.characterSet=ZHS16GBK/” /usr/local/src/database/response/db_install.rsp
        ;;
        *)
    echo -e ‘\a\n\e[1;31m输入有误 \e [0m’
        exit 1
esac
echo -e ‘\a\n\e[1;36m设置数据库密码:\e[0m’
stty erase ^H
read o
sed -i “s/oracle.install.db.config.starterdb.password.ALL=/&$o/” /usr/local/src/database/response/db_install.rsp
sed -i “s/DECLINE_SECURITY_UPDATES=/&true/” /usr/local/src/database/response/db_install.rsp

su – oracle -c ‘cd /usr/local/src/database;./runInstaller -silent -force -responseFile /usr/local/src/database/response/db_install.rsp’ 

 

转载自:https://blog.csdn.net/victorM_A/article/details/81075791

You may also like...