【shell】oracle安装前环境设置


自动安装oracle所需要的rpm包(需要访问外网):


#! /bin/sh

rpmpack="
binutils
compat-libstdc++*
elfutils-libelf
elfutils-libelf-devel
elfutils-libelf-devel-static
gcc
gcc-c++
glibc
glibc-common
glibc-devel
glibc-headers
kernel-headers
ksh
libaio
libaio-devel
libgcc
libgomp
libstdc++
libstdc++-devel
make
sysstat
unixODBC
unixODBC-devel
"
for pack in $rpmpack; do

        rpm -qa | grep  $pack > /dev/null
        if [ $? -eq 1 ];then
                echo "$pack not install"
                yum -y install $pack
        fi

done


环境设置:

#! /bin/sh

ORACLE_BASE="/u01"
BAKFILENAME=`date +"%F-%H%M%S"`.bak
SYSCTLCONF="/etc/sysctl.conf"
LIMITSCONF="/etc/security/limits.conf"
LOGINFILE="/etc/pam.d/login"
PROFILE="/etc/profile"


grep oinstall: /etc/group > /dev/null
if [ $? -ne 0  ];then
    groupadd oinstall
fi

grep dba: /etc/group > /dev/null
if [ $? -ne 0 ];then
    groupadd dba
fi

grep oracle: /etc/passwd > /dev/null

if [ $? -ne 0 ];then
	useradd -g oinstall -G dba oracle
        echo "zerostudy" | passwd --stdin oracle
fi

if [ ! -d "$ORACLE_BASE" ];then
   mkdir $ORACLE_BASE
   chown -R oracle:oinstall $ORACLE_BASE
   chmod -R 775 $ORACLE_BASE
fi


#edit /etc/sysctl.conf file section

cp -p $SYSCTLCONF $SYSCTLCONF.$BAKFILENAME

CHECKNUM=1
if [ $CHECKNUM -eq 1 ];then
echo "#`date +"%F %T"` ------add section----- "
echo "fs.aio-max-nr = 1048576"
echo "fs.file-max = 6815744"
echo "kernel.shmall = 2097152"
echo "kernel.shmmax = 536870912"
echo "kernel.shmmni = 4096"
echo "kernel.sem = 250 32000 100 128"
echo "net.ipv4.ip_local_port_range = 9000 65500"
echo "net.core.rmem_default = 262144"
echo "net.core.rmem_max = 4194304"
echo "net.core.wmem_default = 262144"
echo "net.core.wmem_max = 1048586"

fi >> $SYSCTLCONF


# edit /etc/security/limits.conf file

cp -p $LIMITSCONF $LIMITSCONF.$BAKFILENAME

if [ $CHECKNUM -eq 1 ];then
echo "#`date +"%F %T"` ------add section----- "
echo "oracle           soft    nproc   2047"
echo "oracle           hard    nproc   16384"
echo "oracle           soft    nofile  1024"
echo "oracle           hard    nofile  65536"

fi >> $LIMITSCONF




# edit /etc/pam.d/login file

cp -p $LOGINFILE $LOGINFILE.$BAKFILENAME

if [ $CHECKNUM -eq 1 ];then

echo "#`date +"%F %T"` ------add section----- "
echo "session    required     pam_limits.so"

fi >> $LOGINFILE


# edit /etc/profile file

cp -p $PROFILE $PROFILE.$BAKFILENAME



if [ $CHECKNUM -eq 1 ];then

echo "#`date +"%F %T"` ------add section----- "


echo 'if [ $USER = "oracle" ]; then'
echo '        if [ $SHELL = "/bin/ksh" ]; then'
echo "             ulimit -p 16384"
echo "              ulimit -n 65536"
echo "        else"
echo "              ulimit -u 16384 -n 65536"
echo "        fi"
echo "fi"

fi >> $PROFILE


oracle用户下的.bash_profile添加以下内容

ORACLE_BASE=/u01/app
ORACLE_SID=hxw168
ORACLE_HOME=/u01/app/oracle/11.1.0/db_1
PATH=$PATH:$ORACLE_HOME/bin
export PATH ORACLE_BASE ORACLE_SID  ORACLE_HOME


你可能感兴趣的:(shell,脚本)