环境:电脑可以联网,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用户打开数据库进行验证"