分享更有价值
被信任是一种快乐

如何实现ORACLE RAC快速安装部署脚本

文章页正文上

这篇文章主要为大家展示了“如何实现ORACLE RAC快速安装部署脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现ORACLE RAC快速安装部署脚本”这篇文章吧。
针对频繁安装RAC的工作,将安装过程中的主要步骤进行了整理,通过脚本能够快速的实现RAC数据库主机的配置。

#!/bin/bash

###################################################################################
## 本文档针对 Red Hat Enterprise Linux Server release 6.X 极其兼容内核 进行 11G 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 2345 bluetooth off
chkconfig –level 2345 cups off
chkconfig –level 2345 ip6tables off
chkconfig –level 2345 iptables off
chkconfig –level 2345 sendmail off

chkconfig –level 2345 acpid off
chkconfig –level 2345 bluetooth off
chkconfig –level 2345 cups off
chkconfig –level 2345 cpuspeed off
chkconfig –level 2345 irqbalance off
chkconfig –level 2345 postfix off
chkconfig –level 2345 ip6tables off
chkconfig –level 2345 iptables off
chkconfig –level 2345 sendmail off
chkconfig –level 2345 NetworkManager 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 “SELIN免费主机域名UX 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/
> 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 [LOCAL]
name=LOCAL
gpgcheck=0
enabled=1
EOF

echo
if [ $RELEASE = “CentOS” ];then
sed -i ‘$a baseurl=file:///media/cdrom/’ local.repo
else
sed -i ‘$a baseurl=file:///media/cdrom/Server/’ local.repo
fi

echo
echo “install package”

#Linux 6
yum install -y binutils compat-libcap1 compat-libstdc++-33.x86_64 compat-libstdc++-33.i686 elfutils.x86_64 elfutils-libelf.x86_64 elfutils-libelf-devel.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 ksh libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 make.x86_64 sysstat.x86_64

echo “finish package install”

echo
echo
echo “check package info”

rpm -q –qf ‘%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})n’ binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libcap libgcc libstdc++ libstdc++-devel make sysstat

umount /dev/cdrom
eject

echo
echo “###################################################################################”
echo
echo
echo

###################################################################################
## 4. 修改操作系统内核参数
###################################################################################

echo “###################################################################################”
echo “4. 修改操作系统内核参数”
echo

cp /etc/sysctl.conf /etc/sysctl.conf.bak

cat >> /etc/sysctl.conf ###################################################################################
##################### change for oracle install #####################

fs.file-max = 6815744
fs.aio-max-nr = 3145728

kernel.msgmni = 2878
kernel.msgmax = 8192
kernel.msgmnb = 65536
kernel.sem = 250 32000 100 142
kernel.shmmni=4096
kernel.shmall=16777216
#vm.nr_hugepages=16384

net.core.rmem_default = 1048576
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576

net.ipv4.tcp_rmem=4096 262144 4194304
net.ipv4.tcp_wmem=4096 262144 262144
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_keepalive_time=30
net.ipv4.tcp_keepalive_intvl=60
net.ipv4.tcp_keepalive_probes=9
net.ipv4.tcp_retries2=3
net.ipv4.tcp_syn_retries=2

vm.min_free_kbytes = 5242880
vm.swappiness=20
vm.dirty_background_ratio=3
vm.dirty_ratio=15
vm.dirty_expire_centisecs=500
vm.dirty_writeback_centisecs=100

EOF
echo
echo

echo “make kernel change take effect”
/sbin/sysctl -p

echo
echo

# 该模块在11gR2的RAC 中已经不在需要配置
# echo “add hangcheck-timer mode”
# cp /etc/modprobe.conf /etc/modprobe.conf.bak
#
# cat >> /etc/modprobe.conf # options hangcheck-timer hangcheck_tick=1 hangcheck_margin=10 hangcheck_reboot=1
# EOF
# echo
# echo
#
# /sbin/modprobe -v hangcheck-timer
#
# echo
# echo
# modprobe -l | grep -i hang

# disable transparent hugepages
# Append the following to the kernel command line in grub.conf:
# transparent_hugepage=never

echo “###################################################################################”
echo
echo
echo

###################################################################################
## 5. 配置共享存储
## 需要手工完成,通过脚本查看磁盘的scsi_id信息和分区大小
## Oracle建议数据库使用的磁盘的调度策略为deadline
## 建议磁盘分区,udev绑定磁盘父设备
## /sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/sdb
###################################################################################

# vi diskinfo.sh
#> diskinfo.tmp
#> udevinfo.tmp
#
#cd /dev
#
#for i in $(ls sd* | grep -v sda | grep -v 1$);
#do
# diskinfo=`fdisk -l /dev/$i | grep “Disk /dev/$i”`
# scsiinfo=`/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$i`
# echo $diskinfo’ ‘$scsiinfo >> $OLDPWD/diskinfo.tmp
# echo “KERNEL==”sd*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$parent”, RESULT==”`/sbin/scsi_id –whitelisted –replace-whitespace –device=/dev/$i`”, NAME=”asm-disk$i”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″ # $diskinfo” >> $OLDPWD/udevinfo.tmp
#done
#
#cd $OLDPWD
#
#cat diskinfo.tmp
#cat udevinfo.tmp | awk -F’GB’ ‘{print $1″GB”}’
#rm -f diskinfo.tmp
#rm -f udevinfo.tmp

# vi /etc/udev/rules.d/99-oracle-asmdevices.rules

# [root@A42ams1 ~]# grep deadline /sys/block/sd*/queue/scheduler
# RHEL 4, RHEL 5, RHEL 6: add elevator=deadline to the end of the kernel line in /etc/grub.conf file:
# kernel /vmlinuz-2.6.9-67.EL ro root=/dev/vg0/lv0 elevator=deadline

###################################################################################
## 6. 创建 oracle 用户及安装目录
###################################################################################

echo “###################################################################################”
echo “6. 创建 oracle 用户及安装目录”
echo

echo “创建oracle用户及组”
/usr/sbin/groupadd -g 1000 oinstall
/usr/sbin/groupadd -g 1001 dba
/usr/sbin/groupadd -g 1002 oper
/usr/sbin/groupadd -g 1010 asmadmin
/usr/sbin/groupadd -g 1011 asmoper
/usr/sbin/groupadd -g 1012 asmdba

/usr/sbin/useradd -u 1000 -g oinstall -G dba,oper,asmdba oracle
/usr/sbin/useradd -u 1001 -g oinstall -G dba,asmadmin,asmdba,asmoper grid

echo oracle | passwd –stdin oracle
echo oracle | passwd –stdin grid

echo
echo “创建oracle安装目录”
mkdir -p /grid/app/11.2.0.4/grid
chown -R grid:oinstall /grid
chmod -R 755 /grid

mkdir -p /oracle/app/oracle
chown -R oracle:oinstall /oracle
chmod -R 755 /oracle

echo
echo “修改oracle用户会话限制”
cp /etc/security/limits.conf /etc/security/limits.conf.bak

cat >> /etc/security/limits.conf #########################################
#add for grid
grid hard nofile 131072
grid soft nofile 131072
grid hard nproc 131072
grid soft nproc 131072
grid hard core unlimited
grid soft core unlimited
grid hard stack 10240
grid soft stack 10240
grid hard memlock 8388608
grid soft memlock 8388608

#########################################
#add for oracle
oracle hard nofile 131072
oracle soft nofile 131072
oracle hard nproc 131072
oracle soft nproc 131072
oracle hard core unlimited
oracle soft core unlimited
oracle hard stack 10240
oracle soft stack 10240
oracle hard m免费主机域名emlock 67108864
oracle soft memlock 67108864

EOF
echo

# memlock 用于启用hugepage,该值大于SGA小于物理内存

echo
#cp /etc/pam.d/login /etc/pam.d/login.bak
#
#cat >> /etc/pam.d/login ###############################################
##add for oracle
#session required /lib64/security/pam_limits.so
#EOF
#echo

echo
echo “编辑grid用户环境变量”

cp /home/grid/.bash_profile /home/grid/.bash_profile.bak

cat >> /home/grid/.bash_profile #########################################
export LANG=C

export ORACLE_BASE=/grid/app/grid
export ORACLE_HOME=/grid/app/11.2.0.4/grid
export ORACLE_HOSTNAM=`hostname`
export ORACLE_SID=+ASM

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT=”YYYY-MM-DD HH24:MI:SS”

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/sbin:/sbin:$PATH

umask 022
EOF
echo

echo
echo “编辑oracle用户环境变量”

cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak

cat >> /home/oracle/.bash_profile #########################################
export LANG=C

export ORACLE_BASE=/oracle/app/oracle
export GRID_HOME=/grid/app/11.2.0.4/grid
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1
export ORACLE_HOSTNAM=`hostname`
export ORACLE_SID=

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT=”YYYY-MM-DD HH24:MI:SS”

export PATH=$ORACLE_HOME/bin:$GRID_HOME/bin:$ORACLE_HOME/OPatch:/usr/sbin:/sbin:$PATH

umask 022
EOF
echo

###################################################################################
## 7. 重启操作系统进行修改验证
## 需要人工干预
###################################################################################

###################################################################################
## 检查修改信息
###################################################################################
echo “###################################################################################”
echo “检查修改信息”
echo
echo “———————————————————————————–“
echo “/etc/selinux/config”
cat /etc/selinux/config
echo
echo “———————————————————————————–“
echo “/etc/sysctl.conf”
cat /etc/sysctl.conf
echo
echo “———————————————————————————–“
echo “/etc/modprobe.conf”
cat /etc/modprobe.conf
echo
echo “———————————————————————————–“
echo “/etc/security/limits.conf”
cat /etc/security/limits.conf
echo
echo “———————————————————————————–“
echo “/etc/pam.d/login”
cat /etc/pam.d/login
echo
echo “———————————————————————————–“
echo “/etc/profile”
cat /etc/profile
echo
echo “———————————————————————————–“
echo “/home/grid/.bash_profile”
cat /home/grid/.bash_profile
echo
echo “———————————————————————————–“
echo “/home/oracle/.bash_profile”
cat /home/oracle/.bash_profile
echo

echo “完成安装初始化配置”

###################################################################################
## 自动完成ssh配置脚本,使用11g自带的脚本完成
###################################################################################
# /home/grid/grid/sshsetup
# ./sshUserSetup.sh -hosts “rac11g1 rac11g2” -user grid -advanced -noPromptPassphrase
# ./sshUserSetup.sh -hosts “rac11g1 rac11g2” -user oracle -advanced -noPromptPassphrase
# $ more /etc/hosts | grep -Ev ‘^#|^$|127.0.0.1|vip|scan|:’ | awk ‘{print “ssh ” $2 ” date;”}’ > ping.sh
# $ ping.sh

以上是“如何实现ORACLE RAC快速安装部署脚本”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注云技术行业资讯频道!

相关推荐: 怎么理解MySQL的EVENT事件

这篇文章主要介绍“怎么理解MySQL的EVENT事件”,在日常操作中,相信很多人在怎么理解MySQL的EVENT事件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解MySQL的EVENT事件”的疑惑有所帮助!接下来,请跟着…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册