下面是本人写的一个安装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"