#!/bin/bash set -x # # ############################ #Define global variable CWD=$(pwd) ORA_INST_DIR=/u01/app ORA_SID=hworcl ORA_HOSTNAME=localhost # Oracle database version ORA_VER=12.1.0 # database software PKG DBPKG="*.zip" ############################ #创建oracle用户 groupadd -g 51111 oinstall groupadd -g 51112 dba useradd -u 51112 -g oinstall -G dba oracle #创建目录并赋权 mkdir -p ${ORA_INST_DIR}/{data,oracle} chown -R oracle:oinstall ${ORA_INST_DIR} chmod -R 775 ${ORA_INST_DIR} if [ ${DBPKG} -eq "" ];then echo DBPKG is not exists!! exit 1 fi su - oracle <<< "unzip ${CWD}/*.zip -d ${ORA_INST_DIR}/data/" yum install -y readline-devel binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.i686 libX11 libX11*.i686 libXau libXau*.i686 libXi libXi*.i686 libXtst libXtst*.i686 libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libxcb libxcb*.i686 make nfs-utils net-tools smartmontools sysstat unixODBC unixODBC-devel gcc gcc-c++ libXext libXext*.i686 zlib-devel zlib-devel*.i686 unzip readline-devel wget https://github.com/hanslub42/rlwrap/releases/download/v0.45.2/rlwrap-0.45.2.tar.gz tar xf rlwrap-0.45.2.tar.gz && cd rlwrap-0.45.2 && ./configure && make && make install ##################################### #关闭防火墙,禁止防火墙开机自启 systemctl stop firewalld.service && systemctl disable firewalld.service #禁用SELINUX setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config cat>>/etc/sysctl.conf<<EOF # Oracle database 12c fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 6442450944 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 kernel.panic_on_oops = 1 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 EOF sysctl -p /etc/sysctl.conf cat>>/etc/security/limits.d/20-nproc.conf<<EOF # Oracle database 12c oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 EOF cat>>/etc/pam.d/login<<EOF # Oracle database 12c session required /lib64/security/pam_limits.so session required pam_limits.so EOF #关闭内存大叶 echo never > /sys/kernel/mm/transparent_hugepage/enabled #oracle用户环境变量 cat>>/home/oracle/.bash_profile<<EOF # Oracle database 12c export ORACLE_VERSION=${ORA_VER} export ORACLE_BASE=${ORA_INST_DIR}/oracle export ORACLE_HOME=${ORACLE_BASE}/product/${ORACLE_VERSION}/db_1 export ORACLE_SID=${ORA_SID} export PATH=$PATH:$ORACLE_HOME/bin alias sqlplus='rlwrap sqlplus' alias rman='rlwrap rman' export LC_ALL="en_US" export LANG="en_US" export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" EOF cat>>/etc/profile<<'EOF' if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi EOF source /home/oracle/.bash_profile source /etc/profile ls ${ORA_INST_DIR}/data/