在Oracle运维中,有一个很基础的工作就是安装数据库软件,而这个工作一般少则需要花费个把小时,多则半天。
如果我们有大批量的服务器安装任务,那么这种时候你肯定会希望从这种重复性劳动中解放出来,人工操作还是会有或多或少的差错,而且耗时。
所以我简单写了下面的脚本,可以很流畅的安装好Oracle软件,很多基础工作都统一配置好了。
比如目前我的脚本结构如下:
-rw-r--r-- 1 root root 4422615040 Jun 7 14:34 11204.tar
-rw-r--r-- 1 root root 608 Jun 7 15:19 1_ora_yum.sh
-rw-r--r-- 1 root root 695 Jun 7 14:34 2_os_init.sh
-rw-r--r-- 1 root root 185 Jun 7 15:24 3_fd_init.sh
-rw-r--r-- 1 root root 58 Jun 7 15:06 4_ora_profile.sh
-rw-r--r-- 1 root root 142 Jun 7 15:36 5_init_orahome.lst
-rw-r--r-- 1 root root 216 Jun 7 16:07 6_install_db.sh
-rw-r--r-- 1 root root 546 Jun 7 15:06 bash_profile
-rw-r--r-- 1 root root 110 Jun 7 16:07 install_all.sh
-rw-r--r-- 1 root root 1444 Jun 7 14:34 rhel6-source.repo
rhel6-source.repo是一个yum配置文件,是一个统一的yum源。
其它的脚本内容都是固定的模式统一配置。
1_ora_yum.sh是yum源安装的软件包
2_os_init.sh是配置系统级的操作,比如创建组,创建用户,资源配置等
3_fd_init.sh是配置文件系统级的目录,分区
4_ora_profile.sh是配置profile的内容,其实模板已经准备好了bash_profile,到时候直接拷贝即可。
5_init_orahome.lst是配置安装包的路径
6_install_db.sh是克隆安装数据库软件
其实上面的几个步骤看起来挺多,其实操作过程单一,很多配置完全可以统一。
可以统一放到脚本install_all.sh里面,只运行这个脚本,其实实践下来,安装一套软件,几分钟完全可以搞定。
脚本1的内容如下:
[root@dbcon_WT01 ora_init]# cat 1_ora_yum.sh
cp rhel6-source.repo /etc/yum.repos.d
yum list
yum install binutils -y
yum install compat-db -y
yum install control-center -y
yum install gcc -y
yum install gcc-c -y
yum install gcc-c++ -y
yum install glibc -y
yum install glibc-common -y
yum install gnome-libs -y
yum install libstdc -y
yum install libstdc++-devel -y
yum install make -y
yum install pdksh -y
yum install sysstat -y
yum install xscreensaver -y
yum install libaio-devel -y
yum install libaio -y
yum install setarch -y
yum install openmotif -y
yum install compat-gcc -y
yum install compat-libstdc -y
yum install gnome -y
脚本2 内容如下:
[root@dbcon_WT01 ora_init]# cat 2_os_init.sh
groupadd oinstall
groupadd dba
chattr -i /etc/passwd /etc/shadow
useradd -g oinstall -G dba oracle
echo "oracle soft nproc 2047" >> /etc/security/limits.conf
echo "oracle hard nproc 16384" >> /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 stack 10240" >> /etc/security/limits.conf
echo "oracle soft memlock unlimited" >> /etc/security/limits.conf
echo "oracle hard memlock unlimited" >> /etc/security/limits.conf
脚本3的内容如下:
[root@dbcon_WT01 ora_init]# cat 3_fd_init.dh
cd /
mkdir -p /home/U01
ln -s /home/U01 U01
mkdir -p /U01/app/oracle/product/11.2.0.4
chown -R oracle:oinstall /U01/app/oracle
chown -R oracle:oinstall /U01/app/oracle/product/11.2.0.4
脚本4的内容如下:
[root@dbcon_WT01 ora_init]# cat 4_ora_profile.sh
cp /root/ora_init/bash_profile /home/oracle/.bash_profile
脚本5的内容如下:
[root@dbcon_WT01 ora_init]# cat 5_init_orahome.lst
mv /root/ora_init/11204.tar /U01/app/oracle/product
chown oracle:oinstall /U01/app/oracle/product/11204.tar
cp 6_install_db.sh /home/oracle
脚本6的内容如下:
[root@dbcon_WT01 ora_init]# cat 6_install_db.sh
cd /U01/app/oracle/product
tar -xvf /U01/app/oracle/product/11204.tar
perl $ORACLE_HOME/clone/bin/clone.pl ORACLE_BASE=$ORACLE_BASE ORACLE_HOME=$ORACLE_HOME ORACLE_HOME_NAME=OraDb11g_home1
bash_profile的内容如下:
[root@dbcon_WT01 ora_init]# cat bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_BASE=/U01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4
export ORACLE_SID=accdb0
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export TNS_ADMIN=/U01/app/oracle/product/11.2.0.4/network/admin/
umask 022
stty erase ^h
所有的脚本就这些了。安装的时候可以1个步骤1个步骤来完成,或者统一运行install_all.sh完成前5步,最后的安装软件的部分还是建议在oracle用户下安装。