您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何實(shí)現(xiàn)ORACLE RAC快速安裝部署腳本”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何實(shí)現(xiàn)ORACLE RAC快速安裝部署腳本”這篇文章吧。
針對(duì)頻繁安裝RAC的工作,將安裝過(guò)程中的主要步驟進(jìn)行了整理,通過(guò)腳本能夠快速的實(shí)現(xiàn)RAC數(shù)據(jù)庫(kù)主機(jī)的配置。
#!/bin/bash
###################################################################################
## 本文檔針對(duì) Red Hat Enterprise Linux Server release 6.X 極其兼容內(nèi)核 進(jìn)行 11G RAC 部署的操作
## 0. 環(huán)境信息檢查
## 1. 關(guān)閉多余的服務(wù),提高操作系統(tǒng)性能和安全性
## 2. 配置遠(yuǎn)程圖形界面(Xmanager或VNC)
## 3. 配置本地YUM源,安裝操作系統(tǒng)補(bǔ)丁包
## 4. 修改操作系統(tǒng)內(nèi)核參數(shù)
## 5. 配置共享存儲(chǔ)
## 6. 創(chuàng)建 oracle 用戶及安裝目錄
## 7. 重啟操作系統(tǒng)進(jìn)行修改驗(yàn)證
## 8. 執(zhí)行 CRS 安裝
## 9. 安裝 CRS 10.2.0.5 補(bǔ)丁
## 10. 執(zhí)行數(shù)據(jù)庫(kù)安裝
## 11. 安裝數(shù)據(jù)庫(kù) 10.2.0.5 補(bǔ)丁
## 12. 安裝 PSU 補(bǔ)丁
## 13. 手工建庫(kù)
## 14. 參數(shù)調(diào)整
###################################################################################
###################################################################################
## 0. 環(huán)境信息檢查
###################################################################################
echo "###################################################################################"
echo "0. 環(huán)境信息檢查"
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. 關(guān)閉多余的服務(wù),提高操作系統(tǒng)性能和安全性
## 根據(jù)環(huán)境及需要自定義
###################################################################################
echo "###################################################################################"
echo "1. 關(guān)閉多余的服務(wù),提高操作系統(tǒng)性能和安全性"
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 "SELINUX is already disabled"
fi
echo
echo "###################################################################################"
echo
echo
echo
###################################################################################
## 2. 配置遠(yuǎn)程圖形界面(Xmanager或VNC)
## 根據(jù)環(huán)境不同,需要進(jìn)行手工配置,建議使用 Xmanager - Passive 或 VNC 方式
###################################################################################
## | 2.1 通過(guò) xshell 方式登錄
## | 打開 Xmanager - Passive 工具, 使用 Xshell 連接遠(yuǎn)程服務(wù)器
##
## | #export DISPLAY=客戶端IP:0.0
## | #xclock
###################################################################################
## 3. 配置本地YUM源,安裝操作系統(tǒng)補(bǔ)丁包
###################################################################################
echo "###################################################################################"
echo "3. 配置本地YUM源,安裝操作系統(tǒng)補(bǔ)丁包"
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配置方式有所不同,根據(jù)操作系統(tǒng)進(jìn)行對(duì)應(yīng)調(diào)整
# --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 << "EOF"
[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. 修改操作系統(tǒng)內(nèi)核參數(shù)
###################################################################################
echo "###################################################################################"
echo "4. 修改操作系統(tǒng)內(nèi)核參數(shù)"
echo
cp /etc/sysctl.conf /etc/sysctl.conf.bak
cat >> /etc/sysctl.conf << "EOF"
###################################################################################
##################### 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 中已經(jīng)不在需要配置
# echo "add hangcheck-timer mode"
# cp /etc/modprobe.conf /etc/modprobe.conf.bak
#
# cat >> /etc/modprobe.conf << "EOF"
# 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. 配置共享存儲(chǔ)
## 需要手工完成,通過(guò)腳本查看磁盤的scsi_id信息和分區(qū)大小
## Oracle建議數(shù)據(jù)庫(kù)使用的磁盤的調(diào)度策略為deadline
## 建議磁盤分區(qū),udev綁定磁盤父設(shè)備
## /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. 創(chuàng)建 oracle 用戶及安裝目錄
###################################################################################
echo "###################################################################################"
echo "6. 創(chuàng)建 oracle 用戶及安裝目錄"
echo
echo "創(chuàng)建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 "創(chuàng)建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用戶會(huì)話限制"
cp /etc/security/limits.conf /etc/security/limits.conf.bak
cat >> /etc/security/limits.conf << "EOF"
#########################################
#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 memlock 67108864
oracle soft memlock 67108864
EOF
echo
# memlock 用于啟用hugepage,該值大于SGA小于物理內(nèi)存
echo
#cp /etc/pam.d/login /etc/pam.d/login.bak
#
#cat >> /etc/pam.d/login << "EOF"
###############################################
##add for oracle
#session required /lib64/security/pam_limits.so
#EOF
#echo
echo
echo "編輯grid用戶環(huán)境變量"
cp /home/grid/.bash_profile /home/grid/.bash_profile.bak
cat >> /home/grid/.bash_profile << "EOF"
#########################################
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用戶環(huán)境變量"
cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak
cat >> /home/oracle/.bash_profile << "EOF"
#########################################
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. 重啟操作系統(tǒng)進(jìn)行修改驗(yàn)證
## 需要人工干預(yù)
###################################################################################
###################################################################################
## 檢查修改信息
###################################################################################
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 "完成安裝初始化配置"
###################################################################################
## 自動(dòng)完成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
以上是“如何實(shí)現(xiàn)ORACLE RAC快速安裝部署腳本”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。