文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>linux下安装Oracle的自动安装脚本

linux下安装Oracle的自动安装脚本

时间:2010-07-31  来源:ever027

今天有朋友装oracle出问题,想起一两年前写的个自动安装的脚本 环境是rhel4.6,oracle 10.1.0。,运行过程中详细记录了安装的日志。 贴出来方便大家,安装前将需要的包要准备好,具体可看shell的内容。动行完毕后会出现安装oracle的界面,然后手动的点鼠标就可以了。 此脚本装oracle很多次了,中间没出过问题。  

#!/bin/bash

########################################

#made by ever

#qq 38347999

######################################

echo "back file to oraclerpm"
cp /etc/redhat-release oraclerpm/back/etc_redhat-release
cp /etc/sysctl.conf oraclerpm/back/etc_sysctl.conf
cp /etc/security/limits.conf oraclerpm/back/etc_security_limits.conf
cp /etc/pam.d/login oraclerpm/back/etc_pam.d
echo "back over /etc/redhat-release /etc/sysctl.conf"
if [ $USER != "root" ] ; then
echo "the user must be root ,and now you user is '$USER',plaese su to root"
exit 0
else
echo "setup 1:check root ,OK!" | tee -a oracle.log
######send to display and oracle.log

fi
######check weather have edit kernel

#exg:if grep -q "your string" /your/file; then echo yes; else echo no; fi 

if grep -c "kernel.shmall" /etc/sysctl.conf >>/dev/null; then
echo "you have already edit the Kernel" | tee -a oracle.log
else
cat >> /etc/sysctl.conf << EOF
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
EOF
fi
/sbin/sysctl -p >>/dev/null
echo ""setup 2:edit kernel,PASS!"" | tee -a oracle.log
cp /etc/redhat-release /etc/redhat-release.backup1
cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
echo "setup 3:edit the release,OK!" |tee -a oracle.log
if grep 'oinstall' /etc/group > /dev/null;then
echo "the group oinstall already existed!"
else
/usr/sbin/groupadd oinstall
fi
if grep 'dba' /etc/group > /dev/null;then
 echo "The group dba already existed!"
else
 /usr/sbin/groupadd dba
fi


if test -e /u01/app/oracle >/dev/null;then
echo "the setup_path for oracle "/u01/app/oracle" already have exits" | tee -a oracle.log
else
mkdir -p /u01/app/oracle
echo "/u01/app/oracle make" | tee -a oracle.log
fi
if test -e /data/oradata >/dev/null;then
echo "the data_path for oracle "/data/oradata" already have exits" | tee -a oracle.log
else
mkdir -p /data/oradata
echo "/data/oradata make" | tee -a oracle.log
chown -R oracle:oinstall /u01/app/oracle /data/oradata
chmod -R 775 /u01/app/oracle /data/oradata
fi

#if grep /data/ "oracle"; then

#echo "the data_path for oracle "/data/oradata" already have given to user oracl"

#fi

echo "setup 3:add the oracle user,dba,install group ,oracle setup path,oracle data path OK!" | tee -a oracle.log
echo "now check for need rpm" | tee -a oracle.log
if rpm -q gcc make binutils openmotif setarch compat-db compat-gcc-32 openmotif compat-gcc-32-c++ compat-libstdc++-33 glibc | grep "not" >>oracle.log;then
echo "install rpm -----------------------" | tee -a oracle.log
rpm -ivh oraclerpm/*.rpm
else
echo "the rpm had install,then check it again!" | tee -a oracle.log
fi
if rpm -q gcc make binutils openmotif setarch compat-db compat-gcc-32 openmotif compat-gcc-32-c++ compat-libstdc++-33 glibc | grep "not" >>oracle.log;then
echo "install have wrong ,please check the log oracle.log" | tee -a oracle.log
exit 0;
else
echo "setup 5:rpm check OK!" | tee -a oracle.log
fi
#the rpm list: gcc make binutils openmotif setarch compat-db compat-gcc openmotif compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

#but the compat-gcc is not need thought the book said it is impartant

#at cenots46 compat-gcc ->compat-gcc-32 ,compat-gcc-c++ ->compat-gcc-c++-32,compat-libstdc++ ->compat-libstdc++33 compat-libstdc++-devel is not need

#if cat /etc/security/limits.conf | grep ^[^#];then

if grep "oracle" /etc/security/limits.conf >>/dev/null;then
echo "/etc/security/limits.conf have edited" | tee -a oracle.log
else
echo "/etc/security/limits.conf is going to edit"
echo "##############################oracle ####################### " >> /etc/security/limits.conf
echo "oracle soft nofile 65536" >> /etc/security/limits.conf
echo "oracle hard nofile 65536" >> /etc/security/limits.conf
echo "oracle soft nproc 16384" >> /etc/security/limits.conf
echo "oracle hard nproc 16384" >> /etc/security/limits.conf
echo "####################################################################"
echo "##########################oracle########################### " >> /etc/pam.d/login
echo "session required /lib/security/pam_limits.so" >> /etc/pam.d/login
echo "session required pam_limits.so" >> /etc/pam.d/login
echo "####################################################################"
fi
echo "setup 6:security have been set" | tee -a oracle.log
if grep "ORACLE_BASE" /home/oracle/.bash_profile >>/dev/null;then
echo "/home/oracle/.bash_profile have already been edited" | tee -a oracle.log
else
echo "now edit the /home/oracle/.bash_profile" | tee -a oracle.log
sid=orcl
read -p "Please type the oracle_sid in 20 minutes,if you dont type any,the default oracle_sid is orcl: " -t 20 sid
sed '/unset USERNAME/d' /home/oracle/.bash_profile >>/dev/null
sed '/PATH/d' /home/oracle/.bash_profile >>/dev/null
cat >> /home/oracle/.bash_profile <<"EOF"
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.1.0/Db_1
EOF
echo "ORACLE_SID=$sid" |tee -a oracle.log
echo "ORACLE_SID=$sid">>/home/oracle/.bash_profile
cat >> /home/oracle/.bash_profile <<"EOF"
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$PATH:$HOME/bin:$ORACLE_BASE/product/10.1.0/Db_1/bin:
export PATH
unset USERNAME
EOF
fi
echo "setup 7:/home/oracle/.bash_profile OK!" | tee -a oracle.log
echo "now begain to install oracle" | tee -a oracle.log
echo "===========now put all the important message to oracle.log===========" |tee -a oracle.log
echo "============rpm -q gcc make binutils openmotif setarch compat-db compat-gcc-32 openmotif compat-gcc-32-c++ compat-libstdc++-33 glibc========" >> oracle.log
rpm -q rpm -q gcc make binutils openmotif setarch compat-db compat-gcc-32 openmotif compat-gcc-32-c++ compat-libstdc++-33 glibc >> oracle.log
echo "============ /etc/sysctl.conf====================" |tee -a oracle.log
cat /etc/sysctl.conf >>oracle.log
echo "============ /etc/redhat-release====================" |tee -a oracle.log
cat /etc/redhat-release >>oracle.log
echo "============ id oracle====================" |tee -a oracle.log
id oracle>>oracle.log
echo "============ /etc/security/limits.conf====================" |tee -a oracle.log
cat /etc/security/limits.conf >>oracle.log
echo "============ /etc/pam.d/login ====================" |tee -a oracle.log
cat /etc/pam.d/login >>oracle.log
echo "============ /home/oracle/.bash_profile====================" |tee -a oracle.log
cat /home/oracle/.bash_profile>>oracle.log

 


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载