现在的位置: 首页 > 综合 > 正文

Linux下面安装oracle的脚本

2014年01月04日 ⁄ 综合 ⁄ 共 3677字 ⁄ 字号 评论关闭

下面是本人写的一个安装oracle10g的安装脚本,已经在CentOS5的各个版本上运行过,没
有问题
使用方法是:
1、把下面的脚本考到一个文件里面,在root用户下运行这个脚本
2、脚本的运行过程中会给出运行提示。如果内存及临时空间检测不满足条件,也没有大的
问题。如果提示需要的软件包没有安装则要手动安装啦(一般相应的系统盘里面就有)

3、脚本运行成功会会给出提示“Oracle install pre-setting finish,please run orac
le installer as user oracle”。本脚本会添加一个oracle的用户,名称是oracle,密码
:000000
4、注销root,登录oracle,然后终端输入:export LANG=en_US.UTF-8
5、运行oracle的安装文件./runInstaller
6、再往下就是GUI界面啦,基本没有大的问题
ps:
不足:
1、没有解决中文乱码的问题,oracle用户是英文界面。
2、依赖的软件包到底有哪些没有搞明白,下面给出来的是个极大集合(没有时间仔细研究
啊,希望高手指点啦)。
3、还有些小的问题.例如 export DISPLAY变量是否必要等。本脚本没有执行,但是我的使用中没有发现问题。

仅供参考。有什么bug,希望高手赐教。

#!/bin/bash   
#Memory infomation Check   
echo Begin Meminfo Check...    
Meminfo=`awk  /MemTotal/{printf("%d",$2)}  /proc/meminfo`   
if (( $Meminfo <  524288 ))   
then   
 echo "Memory Small!"  
 #exit 1  
else   
 echo "Memory Check Succeed!"  
fi   
SwapMem=`awk  /SwapTotal/{printf("%d",$2)}  /proc/meminfo`   
if [[ $SwapMem <  384420 ]]   
then   
 echo "Swap Memory Small!"  
 #exit 1  
else   
 echo "Swap Memory Check Succeed!"  
fi   
Tempinfo=`df -h |awk  /tmpfs/{temp=$2;printf("%d",substr(temp,1,length(temp)-1  
))} `   
if (( $Tempinfo < 400 ))   
then   
  echo "Temp Memory Small"  
  #exit 1  
else   
  echo "Temp Memory Check Succed!";   
fi   
echo "Meminfo Check Succed!"  
  
  
#Soft Dependency Check   
echo "Begin Soft Dependency Check..."  
for package in gcc libgomp make binutils openmotif setarch compat-db compat-gc   
c  compat-gcc-c++ compat-libstdc++ pdksh sysstat xscreensaver libaio    
do   
  rpm -q $package >/dev/null   
     if (( $? != 0 ))   
       then   
         echo $package is not installed!   
         exit   
         #rpm -ivh "$package*" >/dev/null     
     fi   
done   
echo "Soft Dependency Check Succed!"  
#disable Selinux   
setenforce 0  
  
#modify kernel parameters    
echo "Begin modify  kernel parameters..."  
cp -r /etc/sysctl.conf /etc/sysctl.conf.save   
  
#save original kernel paramters   
sed -i  s/kernel.shmall/#kernel.shall/  /etc/sysctl.conf    
sed -i  s/kernel.shmmax/#kernel.shmmax/  /etc/sysctl.conf    
sed -i  s/kernel.shmmni/#kernel.shmmni/  /etc/sysctl.conf   
sed -i  s/kernel.sem/#kernel.sem/  /etc/sysctl.conf   
sed -i  s/fs.file-max/#fs.file.max/  /etc/sysctl.conf   
sed -i  s/net.ipv4.ip_local/#net.ipv4.ip_local/  /etc/sysctl.conf   
sed -i  s/net.core./#net.core./ /etc/sysctl.conf   
#add new parameters   
echo "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    
     net.core.rmem_default=262144    
     net.core.rmem_max=262144    
     net.core.wmem_default=262144    
     net.core.wmem_max=262144">>/etc/sysctl.conf     
/sbin/sysctl -p   
echo Modified kernel parameter succed!   
  
#Set user shell limit   
cp -r /etc/security/limits.conf /etc/security/limits.conf.save   
echo Set User Shell Limit   
echo oracle soft nproc 2047  >>/etc/security/limits.conf   
echo oracle hard nproc 16384 >>/etc/security/limits.conf   
echo oracle soft nofile 1024 >>/etc/security/limits.conf     
echo oracle hard nofile 65536 >>/etc/security/limits.conf      
  
cp -r /etc/pam.d/login /etc/pam.d/login.save   
echo session required /lib/security/pam_limits.so >>/etc/pam.d/login   
  
cp -r /etc/profile /etc/profile.save   
echo "if [ $USER = "oracle" ]; then   
if [ $SHELL = "/bin/ksh" ]; then   
ulimit -p 16384  
ulimit -n 65536  
else   
ulimit -u 16384 -n 65536  
fi   
fi   
export ORACLE_BASE=/u01/app/oracle   
export ORACLE_SID=orcl" >>/etc/profile   
source /etc/profile   
  
#modify os version parameter   
cp -r /etc/redhat-release /etc/redhat-release.save   
echo redhat-3 >/etc/redhat-release   
  
#add user oracle   
/usr/sbin/groupadd oinstall   
/usr/sbin/groupadd dba   
/usr/sbin/useradd -m -g oinstall -G dba oracle   
#set password for user oracle   
echo "000000" |passwd oracle --stdin > /dev/null 2>&1  
  
#make directory for oracle database   
mkdir -p /u01/app/oracle   
chown -R oracle:oinstall /u01/app/oracle   
chmod -R 755 /u01/app/oracle   
  
cp -r /home/oracle/.bash_profile /home/oracle/.bash_profile.save   
echo  export ORACLE_BASE=/u01/app/oracle   
export ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1   
export ORACLE_SID=orcl   
export PATH=$PATH:$ORACLE_HOME/bin   
export NLS_LANG= AMERICAN _america.ZHS16GBK   
export LANG=en_US.UTF-8  
export EDITOR=vi   
export LD_LIBRARY_PATH=$ORACLE_HOME/lib >>/home/oracle/.bash_profile   
  
echo "Oracle install pre-setting finish,   
      please run oracle installer as user oracle"  

抱歉!评论已关闭.