广告
返回顶部
首页 > 资讯 > 数据库 >如何实现ORACLE RAC快速安装部署脚本
  • 837
分享到

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

2024-04-02 19:04:59 837人浏览 安东尼
摘要

这篇文章主要为大家展示了“如何实现oracle RAC快速安装部署脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现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 "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/
> 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 << "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. 修改操作系统内核参数
###################################################################################


echo "###################################################################################"
echo "4. 修改操作系统内核参数"
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 中已经不在需要配置
# 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. 配置共享存储
##    需要手工完成,通过脚本查看磁盘的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 << "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小于物理内存


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用户环境变量"


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用户环境变量"


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. 重启操作系统进行修改验证
##    需要人工干预
###################################################################################


###################################################################################
## 检查修改信息
###################################################################################
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快速安装部署脚本”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: 如何实现ORACLE RAC快速安装部署脚本

本文链接: https://www.lsjlt.com/news/64411.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何实现ORACLE RAC快速安装部署脚本
    这篇文章主要为大家展示了“如何实现ORACLE RAC快速安装部署脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现ORACLE RAC快速安装部署脚本...
    99+
    2022-10-18
  • 如何快速安装MySQL5 - 8各版本脚本内容
    这篇文章将为大家详细讲解有关如何快速安装MySQL5 - 8各版本脚本内容,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MySQL 5.5.62#如果之前有...
    99+
    2022-10-18
  • 实时Git部署:如何在ASP容器中实现快速部署?
    在软件开发的过程中,快速的部署和测试是非常重要的。Git是一个流行的版本控制工具,而实时Git部署可以使开发者更快速、更安全地部署应用程序。本文将介绍如何在ASP容器中实现实时Git部署,并演示一些示例代码。 首先,我们需要一个ASP容器...
    99+
    2023-08-28
    容器 实时 git
  • 一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例
    Zabbix3.0的安装、部署、配置,必须基于LAMP环境或是是LNMP环境。关于LAMP环境的简单快速搭建,见博客:http://afterdawn.blog.51cto.com/7503144/1923...
    99+
    2022-10-18
  • git自动化部署php脚本该如何实现
    今天就跟大家聊聊有关git自动化部署php脚本该如何实现,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。git自动化部署php脚本的实现方法:1、安装git;2、克隆仓库代码;3、更改...
    99+
    2023-06-26
  • 如何实现vtune自动安装脚本
    本篇内容介绍了“如何实现vtune自动安装脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/bash#!/usr/b...
    99+
    2023-06-09
  • PHP和Linux容器:如何实现快速部署和扩展?
    随着互联网的发展,Web应用程序的部署和扩展变得越来越重要。在这个过程中,PHP和Linux容器成为了两个非常重要的工具。PHP是一种流行的服务器端脚本语言,而Linux容器则是一种轻量级的虚拟化技术,它可以帮助我们在不同的环境中快速部署...
    99+
    2023-07-25
    linux linux 容器
  • PHP 框架教程:如何利用 Shell 实现快速部署?
    在现代 Web 开发中,使用框架已经成为了标配。PHP 框架也是其中的佼佼者,它可以大大提高开发效率。但是,框架的部署过程却往往是一个棘手的问题。在这篇文章中,我将向大家介绍如何利用 Shell 脚本来快速部署 PHP 框架。 首先,我们...
    99+
    2023-08-18
    框架 教程 shell
  • 如何用代码实现ASP.NET安装部署
    如何用代码实现ASP.NET安装部署,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ASP.NET安装部署代码实现之添加文件简介: 将SQL Server生成的脚本文件db.sq...
    99+
    2023-06-18
  • mysql中如何实现自动化脚本安装的shell脚本
    这篇文章将为大家详细讲解有关mysql中如何实现自动化脚本安装的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。脚本处理逻辑流程图    ...
    99+
    2022-10-18
  • JavaScript如何实现封装一个快速生成目录树的全局脚本
    本篇内容主要讲解“JavaScript如何实现封装一个快速生成目录树的全局脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript如何实现封装一个快速生成目录树的全局脚本”吧!说在...
    99+
    2023-07-05
  • 超实用!服务器如何快速实现一键环境部署!
    很多新手在建站时都会在环境部署这一环境中耗费大量时间,如何选择自己需要的环境配件,一一下载、安装、配置……虽说没有什么特别困难的地方,但却十分麻烦。有没有其他更简单的操作方法呢?下面我就为大家介绍我是如何快速实现一键环境部署的!首先你需要下...
    99+
    2023-06-04
  • Oracle 12cR1 RAC在VMware Workstation上如何实现静默安装
    这篇文章主要介绍了Oracle 12cR1 RAC在VMware Workstation上如何实现静默安装,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一...
    99+
    2022-10-18
  • Bash下如何利用Java API快速实现自动化部署?
    自动化部署已经成为现代软件开发中不可或缺的一部分。它可以帮助我们快速地部署、测试和发布我们的应用程序。在本文中,我们将介绍如何在Bash下利用Java API快速实现自动化部署。 首先,我们需要了解一些基本的概念。Java API是Jav...
    99+
    2023-10-27
    api django bash
  • 容器部署:如何实现快速响应的应用程序?
    随着云计算技术的普及,容器化部署已经成为了许多企业和开发者的首选。相比传统的虚拟化技术,容器化部署更加轻量级,更加快速响应,具有更高的灵活性和可移植性。本文将介绍容器部署的基本概念和原理,并演示如何使用 Docker 容器实现快速响应的应...
    99+
    2023-09-07
    npm 容器 响应
  • MySQL如何实现各版本自动安装脚本
    这篇文章主要介绍MySQL如何实现各版本自动安装脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 描述:    1 . 所有版本都...
    99+
    2022-10-18
  • shell脚本如何实现一键安装php7
    这篇文章给大家分享的是有关shell脚本如何实现一键安装php7的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如下所示:#!/bin/bashphp_gz_file='/home/php/Download...
    99+
    2023-06-09
  • mydumper如何实现自动化安装脚本
    这篇文章主要介绍了mydumper如何实现自动化安装脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。#!/usr/bin/expect -fset hname [linde...
    99+
    2023-06-04
  • 如何实现vtune自动化安装脚本
    本篇内容介绍了“如何实现vtune自动化安装脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#!/bin/bash#!/usr/...
    99+
    2023-06-09
  • 如何在Spring应用中使用GO容器实现快速部署?
    Spring是一个广泛使用的Java框架,它提供了很多便捷的功能,使得开发者可以更加快速地开发和部署应用程序。然而,在实际的开发中,我们可能会遇到一些问题,比如应用程序的部署速度太慢,导致开发进度受到了很大的影响。为了解决这个问题,我们可以...
    99+
    2023-11-03
    容器 spring shell
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作