oracle在linux上安装前需要做一系列的配置;每次搭建环境如果都手动执行有点慢;这里写了两个脚本,实现自动化配置和安装,目前在
oracle在linux上安装前需要做一系列的配置;每次搭建环境如果都手动执行有点慢;
这里写了两个脚本,实现自动化配置和安装,目前在自己的centos6.3的linux模板上安装成功;
在其他系统上未测试,使用前,要先理解脚本,配置好一个网卡的静态ip地址,适当修改后再操作;
脚本由一系列函数,顺序组成;
#!/bin/bash
#set -x
echo start configure oracle environment for install.........................
time=`date +%y%m%d_%h%m%s`
flag=####################################################################
#备份配置文件,很简单,仅仅是复制一下将要修改的系统配置文件;复制了两份,便于恢复
backup_config(){
#echo $flag
echo #########################step 1:backup system config that will be modified###########################
cp /etc/sysconfig/network /etc/sysconfig/network.bak${time}
cp /etc/sysctl.conf /etc/sysctl.conf.bak${time}
cp /etc/security/limits.conf /etc/security/limits.conf.bak${time}
cp /etc/pam.d/login /etc/pam.d/login.bak${time}
cp /etc/profile /etc/profile.bak${time}
cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak${time}
cp /etc/selinux/config /etc/selinux/config.bak${time}
cp /etc/sysconfig/network /etc/sysconfig/network.bak
cp /etc/sysctl.conf /etc/sysctl.conf.bak
cp /etc/security/limits.conf /etc/security/limits.conf.bak
cp /etc/pam.d/login /etc/pam.d/login.bak
cp /etc/profile /etc/profile.bak
cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak
cp /etc/selinux/config /etc/selinux/config.bak
}
#获取当前系统信息,配置hostname,关闭selinux
sys_info()
{
#echo $flag
echo check system space and version;
echo #########################step 2:check system space and versio#########################################
uname -a
cat /etc/*release
df -h
hostname
ip_add=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' |cut -d: -f2 | awk '{ print $1}'`
ip_code=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' |cut -d: -f2 | awk '{ print $1}'|cut -d. -f4`
echo $ip_add oraserver${ip_code} >> /etc/hosts
sed -i '/hostname=/s/localhost.localdomain/oraserver'${ip_code}'/' /etc/sysconfig/network
sed -i '/selinux=/s/enforcing/disabled/' /etc/selinux/config
hostname oraserver${ip_code}
}
#安装需要的依赖包,,不同的系统当然定制的rpm不一样,这一步大可手工检查
rpm_info()
{
echo #########################step 2:install oracle rpms ###################################################
rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ make numactl-devel sysstat unixodbc unixodbc-devel elfutils-libelf-devel-static kernel-headers libgomp
rpm -ivh /root/rpm-centos/lrzsz-0.12.20-27.1.el6.x86_64.rpm
rpm -ivh /root/rpm-centos/compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
rpm -ivh /root/rpm-centos/unixodbc*
rpm -ivh /root/rpm-centos/libaio*
rpm -ivh /root/rpm-centos/numactl*
rpm -ivh /root/rpm-centos/sysstat*
rpm -ivh /root/rpm-centos/unzip-6.0-1.el6.x86_64.rpm
rpm -ivh /root/rpm-centos/ksh-20100621-16.el6.x86_64.rpm
rpm -ivh /root/rpm-centos/elfutils-libs-0.152-1.el6.x86_64.rpm
rpm -ivh /root/rpm-centos/elfutils-libelf-devel*
echo ##########after install essential rpms
rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ make numactl-devel sysstat unixodbc unixodbc-devel elfutils-libelf-devel-static kernel-headers libgomp
}
#创建oracle用户、相关目录、允许oracle以sudo来以root用户执行脚本
oracle_user()
{
echo #########################step 3:add oracle user and group,create directory #############################
groupadd oinstall
groupadd dba
useradd -g oinstall -g dba -d /home/oracle -m -s /bin/bash -c oracle oracle
echo oracle:oracle > /root/oracle_pass
chpasswd rm -rf /root/oracle_pass
id oracle;
id nobody;
echo ;
echo ##########create oracle directory
mkdir -p /oracle;
mkdir -p /oracle/orainventory;
chown -r oracle:oinstall /oracle;
chmod -r 775 /oracle/;
echo ##########add oracle to sudu user
chmod u+w /etc/sudoers
echo oracle all=(all) all >>/etc/sudoers
chmod u-w /etc/sudoers
}