最近遇到很多 RHEL 5.X 平台安装 Oracle 10g RAC的活,虽然没什么难度,但是重复的体力劳动还是比较大的。因此顺便整理了一份半自动安装的脚本。
主要完成操作系统补丁安装,数据库用户创建,用户配置文件修改等内容。
待解决的问题:
1、主机名自动配置,这块需要单独的配置文件,而且配置过程中,和主机名相关的配置不是很多;
2、共享磁盘多路径配置,因为使用裸设备和UDEV的方式不一,存储隐射出来的结果有些在/dev/mapper,有些在/dev/sd*,磁盘大小和顺序也不一致,因此没有做处理;
3、shell不熟,没有加入校验和控制;
4、ssh认证配置,使用的是11g rac中的自动配置脚本;
具体内容如下:RAC_AUTO_CONFIG_10G.sh
#!/bin/bash
###################################################################################
## 本文档针对 Red Hat Enterprise Linux Server release 5.X 极其兼容内核 进行 10G RAC 部署的操作
## 0. 环境信息检查
## 1. 关闭多余的服务,提高操作系统性能和安全性
## 2. 配置远程图形界面(Xmanager或VNC)
## 3. 配置本地YUM源,安装操作系统补丁包
## 4. 修改操作系统内核参数
## 5. 配置共享存储
## 6. 创建 oracle 用户及安装目录
## 7. 重启操作系统进行修改验证
## 8. 执行 CRS 安装
## 9. 安装 CRS 10.2.0.5 补丁
## 10. 执行数据库安装
## 11. 安装数据库 10.2.0.5 补丁
## 12. 安装 PSU 补丁
## 13. 手工建库
## 14. 参数调整
###################################################################################
###################################################################################
## 0. 环境信息检查
###################################################################################
echo "###################################################################################"
echo "0. 环境信息检查"
echo
echo "memory info"
grep MemTotal /proc/meminfo
echo
echo
echo "swap info"
grep SwapTotal /proc/meminfo
echo
echo
echo "tmp info"
df -h /tmp
echo
echo
echo "disk info"
df -h
echo
echo
echo "cpu info"
grep "model name" /proc/cpuinfo
echo
echo
echo "kernel info"
uname -a
echo
echo
echo "release info"
more /etc/RedHat-release
RELEASE=`more /etc/redhat-release | awk '{print $1}'`
echo "###################################################################################"
echo
echo
echo
###################################################################################
## 1. 关闭多余的服务,提高操作系统性能和安全性
## 根据环境及需要自定义
###################################################################################
echo "###################################################################################"
echo "1. 关闭多余的服务,提高操作系统性能和安全性"
echo
chkconfig --level 345 bluetooth off
chkconfig --level 345 cups off
chkconfig --level 345 ip6tables off
chkconfig --level 345 iptables off
chkconfig --level 345 sendmail off
echo
echo
echo "turn off selinux"
SELINUX=`grep ^SELINUX= /etc/selinux/config`
if [ $SELINUX != "SELINUX=disabled" ];then
cp /etc/selinux/config /etc/selinux/config.bak
sed -i 's/^SELINUX=/#SELINUX=/g' /etc/selinux/config
sed -i '$a SELINUX=disabled' /etc/selinux/config
else
echo "SELINUX is already disabled"
fi
echo
echo "###################################################################################"
echo
echo
echo
###################################################################################
## 2. 配置远程图形界面(Xmanager或VNC)
## 根据环境不同,需要进行手工配置,建议使用 Xmanager - Passive 或 VNC 方式
###################################################################################
## | 2.1 通过 xshell 方式登录
## | 打开 Xmanager - Passive 工具, 使用 Xshell 连接远程服务器
##
## | #export DISPLAY=客户端IP:0.0
## | #xclock
###################################################################################
## 3. 配置本地YUM源,安装操作系统补丁包
###################################################################################
echo "###################################################################################"
echo "3. 配置本地YUM源,安装操作系统补丁包"
echo
mkdir -p /media/cdrom
mount /dev/cdrom /media/cdrom
cd /etc/yum.repos.d/
mkdir bak
mv *.repo ./bak/
touch local.repo
# 注意RHEL和CentOS的YUM配置方式有所不同,根据操作系统进行对应调整
# --RHEL
# [RHEL]
# name = RHEL
# baseurl=file:///media/cdrom/Server/
# gpgcheck=0
# enabled=1
#
# --CENTOS
# [CENTOS]
# name = CENTOS
# baseurl=file:///media/cdrom/
# gpgcheck=0
# enabled=1
cat >> local.repo > /etc/sysctl.conf > /etc/modprobe.conf diskinfo.tmp
#
# for i in a b c d e f g h i j k l m n o p q r s t u v w x y z;
# do
# diskinfo=`fdisk -l /dev/sd$i | grep "Disk /dev/sd$i"`
# echo 'scsi_id:' `scsi_id -gus /block/sd$i` $diskinfo | awk -F',' '{print $1}' >> diskinfo.tmp
# done
#
# sort diskinfo.tmp > diskinfo.rs
# more diskinfo.rs
# rm -f diskinfo.tmp
###################################################################################
## 6. 创建 oracle 用户及安装目录
###################################################################################
echo "###################################################################################"
echo "6. 创建 oracle 用户及安装目录"
echo
echo "创建oracle用户及组"
/usr/sbin/groupadd -g 500 oinstall
/usr/sbin/groupadd -g 501 dba
/usr/sbin/useradd -u 500 -g oinstall -G dba oracle
echo oracle | passwd --stdin oracle
echo
echo "创建oracle安装目录"
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
echo
echo "修改oracle用户会话限制"
cp /etc/security/limits.conf /etc/security/limits.conf.bak
cat >> /etc/security/limits.conf > /etc/pam.d/login > /etc/profile > /home/oracle/.bash_profile