linux系统(redhat7)使用shell脚本静默安装Oracle12c(包括创建监听)

环境:电脑可以联网,yum源能使用,没有安装过Oracle数据库

要求:只需把文件上传到指定目录,脚本会自动执行完安装

把这些代码自己粘贴到新建的脚本上

安装数据库

配置及文件和响应文件位置(免费下载):https://download.csdn.net/download/qq_61920297/87797075

代码如下:

#####################################
#                                                          
#Author: WangKeZhen                                                                        #mail:2797847480@qq.com
#请以root用户身份执行                                          #
#把数据库文件,响应文件,上传到/root目录下       #
#环境:网卡名称ens38                                           #
#用户密码:oracle ,数据库管理员密码:a                #
##################### ##########################################
systemctl stop firewalld
if [ `getenforce` == "Enforcing" ];then
    setenforce 0
fi
sleep 3
echo "防火墙和selinux高级权限管理已关闭"
echo '开始安装依赖包...'
sleep 2

echo "开始修改内核文件"
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF
sysctl -p

echo "开始修改系统限制"
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
oracle  hard    stack   32768
EOF
rm -rf /etc/security/limits.d/20-nproc.conf
touch /etc/security/limits.d/20-nproc.conf
cat >> /etc/security/limits.d/20-nproc.conf << EOF
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
#*         soft    nproc     4096
root       soft    nproc     unlimited
*           -      nproc      16384
EOF
cat >> /etc/pam.d/login << EOF
session    required     pam_limits.so
session    required     /lib64/security/pam_limits.so
EOF
########################################
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
#read -p "请输入Oracle用户密码:" password
password="oracle"
echo $password | passwd --stdin oracle
echo "创建用户组及用户完成"
sleep 5
##############################################
#read -p "请输入你想更改的主机名,避开linux,computer等敏感词汇:" name
name="jtxy"
cat >> /etc/hostname << EOF
$name
EOF
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
mkdir -p /u01/app/oracle/product/12.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle/product

############################################
echo " 修改主机配置文件"
a=`ifconfig ens38 | awk -F "[ :]+" 'NR==2{print $3}'`
cat >> /etc/hosts << EOF
`echo $a` `echo $name`
EOF
##########################################
echo "设置环境变量"
cat >> /home/oracle/.bash_profile << EOF
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=$name 
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/12.2.0/db_1
export ORACLE_UNQNAME=orcl
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/JRE:\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
source /home/oracle/.bash_profile
########################################################
dir_file="/u01/"
ls $dir_file | grep linuxx64_12201_database.zip >& /dev/null
if [ $? != 0 ];then
  mv linuxx64_12201_database.zip /u01
  mv db_install.rsp /u01
  mv dbca.rsp /u01
  mv lsnr /u01
else
  echo "文件存在" > /dev/ull
fi
echo "添加数据库用到的包"
mount /dev/cdrom /mnt
if [ rpm -qa | grep compat-libcap1-1.10 ];then
   break
else
   yum -y install compat-libcap1-1.10
fi
if [ rpm -qa | grep libstdc++-devel ];then
   break
else
   yum -y install libstdc++-devel 
fi
if [ rpm -qa | grep gcc-c++-* ];then
   break
else
   yum -y install gcc-c++-*
fi

yum -y insatll ksh

if [ rpm -qa |grep libaio-devel];then
  break
else
   yum -y install libaio-devel
fi
echo "报添加完成"
##########################################
cat >> /home/oracle/.bash_profile << EOF
export  DISPLAY=':0.0'
EOF
export  DISPLAY=':0.0'
sleep 8
xhost + 
sleep  5
echo "已切换到Oracle用户,请在三分钟内完成·建库"
sleep 3

su -  oracle << EOF
cd /u01
unzip linuxx64_12201_database.zip 
cd database
./runInstaller -silent -responseFile /u01/db_install.rsp

echo "正在启动图形化安装向导,请按照向导指示操作!"
sleep 220
exit
EOF
bash /u01/app/oraInventory/orainstRoot.sh
bash /u01/app/oracle/12.2.0.1/db_1/root.sh
su -  oracle << EOF
dbca -silent -responseFile /u01/dbca.rsp -createDatabase
bash /u01/lsnr

EOF

创建监听

代码如下:

#
#在Oracle用户下运行脚本
########################
cd /u01/database/response/
cp netca.rsp /u01
netca -silent -responseFile /u01/netca.rsp
sleep 3
sqlplus / as sysdba << EOF
shutdown abort
startup
alter system register;
exit
EOF
echo "监听创建完成"
sqlplus / as sysdba << EOF
shutdown abort
echo "关闭"
startup
echo "打开"
select status from v$instance;
exit
EOF
echo "可以登录Oracle用户打开数据库进行验证"

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值