Linux(CentOS7.6)下安装oracle11g环境变量设置脚本(.sh)

#!/bin/bash
#Creation Data: 2022-05-20
#Author: LGTMAP
#Function: Oracle 11.2.0.4 install on CentOS 7 X64-2003

#ROOT用户登录以修改相应配置文件。建议脚本放至/home/script目录中。
#设定变量,现场根据实际情况设定变量
ipdevice=ens33
ipaddr=192.168.28.129
netmask=255.255.255.0
getway=192.168.28.2
hostname=LGTMAP
oracle_base=/home/data/oracle/app
oracle_home=/home/data/oracle/app/oracle/product/11.2.0/dbhome_1
oracle_sid=orcl
oracle_unqname=orcl
oracle_term=xterm
lang=C 
nls_lang=AMERICAN_AMERICA.ZHS16GBK
#定义存放rmp目录
dir_lxyum=/media/lxyum
#定义存放oracle软件zip目录
dir_soft=/home/Software
dir_work=$(cd $(dirname $0); pwd)

#自动获取版本信息
#version=`awk '{print substr($4,1,1)}' /etc/redhat-release`
t_version=`awk '{print $4}' /etc/redhat-release`
version=${t_version%%.*}
t_memtotal=`grep MemTotal /proc/meminfo`
memtotal=`echo $t_memtotal|awk '{print $2}'`

#自动根据内存设置内核变量
#kernel.shmmax 定义单个内存的最大值,64位操作系统kernel.shmmax > SGA <物理内存80%,一般建议为物理内存的一半,64位操作系统16G物理内存,设置单个内存大小是16*0.8*1024*1024*1024(字节)取整;32位操作系统<4G;具体大家根据实际情况修改。
shmmax=$[$memtotal*1024*70/100]
#kernel.shmall 控制共享内存页数 。Linux 共享内存页大小为4KB, 共享内存段的大小都是共享内存页大小的整数倍。64位操作系统16G物理内存,需要共享内存页数是16GB/4KB=16777216KB/4KB=4194304 (页)。
shmall=$[$memtotal/4]

#检查内存,内存至少大于等于8G(生产环境至少大于等于16G)
grep MemTotal /proc/meminfo
#检查交换区大小,Swap建议与Raw相等
grep SwapTotal /proc/meminfo

free

echo 按任意键继续,开始网络环境及静态IP设置
read -n 1

#静态网卡设定
sed -i "s#SELINUX=.*#SELINUX=disabled#g" /etc/selinux/config

sed -i "s#DEVICE=.*#DEVICE=${ipdevice}#g" /etc/sysconfig/network-scripts/ifcfg-${ipdevice}

sed -i "s#BOOTPROTO=.*#BOOTPROTO=static#g" /etc/sysconfig/network-scripts/ifcfg-${ipdevice}

#定义函数
AddStr(){
#判断文件中是否存在该字符串
if ! grep ${1} ${2} >/dev/null
then
#不存在,追加字符串
   echo ${3}>>${2} 
else
#存在,替换
   sed -i "s#${1}#${3}#g" ${2}
fi
}

#执行该函数
AddStr IPADDR=.* /etc/sysconfig/network-scripts/ifcfg-${ipdevice} IPADDR=${ipaddr}
AddStr NETMASK=.* /etc/sysconfig/network-scripts/ifcfg-${ipdevice} NETMASK=${netmask}
AddStr GETWAY=.* /etc/sysconfig/network-scripts/ifcfg-${ipdevice} GETWAY=${getway}

#echo "IPADDR="\"${ipaddr}\">>/etc/sysconfig/network-scripts/ifcfg-${ipdevice}
#echo "NETMASK="\"${netmask}\">>/etc/sysconfig/network-scripts/ifcfg-${ipdevice}
#echo "GETWAY="\"${getway}\">>/etc/sysconfig/network-scripts/ifcfg-${ipdevice}

service network restart

echo 网络环境设置完成,准备开始修改内核参数

#修改内核参数
AddStr net.ipv4.icmp_echo_ignore_broadcasts=.* /etc/sysctl.conf net.ipv4.icmp_echo_ignore_broadcasts=1
AddStr net.ipv4.conf.all.rp_filter=.* /etc/sysctl.conf net.ipv4.conf.all.rp_filter=1
AddStr fs.file-max=.* /etc/sysctl.conf fs.file-max=6815744
AddStr fs.aio-max-nr=.* /etc/sysctl.conf fs.aio-max-nr=1048576
AddStr kernel.shmall=.* /etc/sysctl.conf kernel.shmall=${shmall}
AddStr kernel.shmmax=.* /etc/sysctl.conf kernel.shmmax=${shmmax}
AddStr kernel.shmmni=.* /etc/sysctl.conf kernel.shmmni=4096
AddStr kernel.sem=.* /etc/sysctl.conf kernel.sem=250 32000 100 128
AddStr net.ipv4.ip_local_port_range=.* /etc/sysctl.conf net.ipv4.ip_local_port_range=9000 65500 
AddStr net.core.rmem_default=.* /etc/sysctl.conf net.core.rmem_default=262144 
AddStr net.core.rmem_max=.* /etc/sysctl.conf net.core.rmem_max=4194304
AddStr net.core.wmem_default=.* /etc/sysctl.conf net.core.wmem_default=262144 
AddStr net.core.wmem_max=.* /etc/sysctl.conf net.core.wmem_max=1048576

sysctl -p

echo 内核参数修改完成,进行防火墙及计算机名称设置

#关闭防火墙
systemctl stop firewalld.service

systemctl disable firewalld.service

#设置计算机名称
hostnamectl set-hostname ${hostname}
AddStr ${ipaddr}.* /etc/hosts ${ipaddr}'    '${hostname}

AddStr redhat-.* /etc/redhat-release redhat-${version}

echo 防火墙及计算机名称设置完成,准备添加oracle用户组及设定密码

#创建用户组并设置用户密码
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m oracle
passwd oracle

#查看硬盘空间信息
df -h 
echo 按任意键继续
read -n 1

#创建oracle用户相应文件夹
cd /.
mkdir -p /home/script
mkdir -p /home/data/oracle
mkdir -p /home/data/oraInventory
mkdir -p /home/data/database
chown -R oracle:oinstall /home/data/oracle
chown -R oracle:oinstall /home/data/oraInventory
chown -R oracle:oinstall /home/data/database
chown -R oracle:oinstall /home/script

mkdir ${dir_lxyum}
chown -R 777 ${dir_lxyum}

mkdir ${dir_soft}
chmod -R 777 ${dir_soft}

chmod 777 ${dir_work}
chmod 777 ${dir_work}/oracle_install.sh
chown -R oracle:oinstall ${dir_work}
chown -R oracle:oinstall ${dir_work}/oracle_install.sh

#Oracle用户限制设置
AddStr oracle.*soft.*nproc.* /etc/security/limits.conf oracle' 'soft' 'nproc' '2047
AddStr oracle.*hard.*nproc.* /etc/security/limits.conf oracle' 'hard' 'nproc' '16384
AddStr oracle.*soft.*nofile.* /etc/security/limits.conf oracle' 'soft' 'nofile' '1024
AddStr oracle.*hard.*nofile.* /etc/security/limits.conf oracle' 'hard' 'nofile' '65536

#环境变量设置
AddStr export.*ORACLE_BASE=.* /home/oracle/.bash_profile export' 'ORACLE_BASE=${oracle_base}
AddStr export.*ORACLE_HOME=.* /home/oracle/.bash_profile export' 'ORACLE_HOME=${oracle_home}
AddStr export.*ORACLE_SID=.* /home/oracle/.bash_profile export' 'ORACLE_SID=${oracle_sid}
AddStr export.*ORACLE_UNQNAME=.* /home/oracle/.bash_profile export' 'ORACLE_UNQNAME=${oracle_unqname}
AddStr export.*ORACLE_TERM=.* /home/oracle/.bash_profile export' 'ORACLE_TERM=${oracle_term}
AddStr export.*PATH=.* /home/oracle/.bash_profile export' 'PATH=\$ORACLE_HOME/bin:/usr/sbin:\$PATH:PATH.PATH:/usr/bin:/usr/sbin:/bin:/sbin
AddStr export.*LD_LIBRARY_PATH=.* /home/oracle/.bash_profile export' 'LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
AddStr export.*LANG=.* /home/oracle/.bash_profile export' 'LANG=${lang}
AddStr export.*NLS_LANG=.* /home/oracle/.bash_profile export' 'NLS_LANG=${nls_lang}

source /home/oracle/.bash_profile

#检查环境变量是否生效
env | grep ORA

echo 按任意键继续
read -n 1

#遍历备份
cd /etc/yum.repos.d
DIR=`ls .`
for dir in ${DIR};do
      if [ -d ${dir} ];then
         cd ${dir}
        mv ${dir} ${dir}_bak
        cd ..
      else
         mv ${dir} ${dir}_bak
      fi
done

cp -r CentOS-Media.repo_bak CentOS-Media.repo

cd /.

AddStr enabled=.* /etc/yum.repos.d/CentOS-Media.repo enabled=1
AddStr file:///media/cdrom/ /etc/yum.repos.d/CentOS-Media.repo ''
AddStr file:///media/cdrecorder/ /etc/yum.repos.d/CentOS-Media.repo ''


AddStr baseurl=.* /etc/yum.repos.d/CentOS-Media.repo baseurl=file://${dir_lxyum}

AddStr cachedir=.* /etc/yum.conf cachedir=/${dir_lxyum}
AddStr keepcache=.* /etc/yum.conf keepcache=1
AddStr logfile=.* /etc/yum.conf logfile=/media/log/yum.log
AddStr installonly_limit=.* /etc/yum.conf installonly_limit=500
AddStr reposdir=.* /etc/yum.conf reposdir=/etc/yum.repos.d

echo 按任意键重启系统
read -n 1
reboot


 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值