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