Linux脚本自动安装Oracle

#该脚本包含以下模块
#sys_check,系统检查
#evn_check,配置系统环境变量
#oracle_check,对Oracle安装目录进行检查
#silent_check, 对静默安装的配置文件进行配置。
#oracle_ins,安装模块
#clean_check,清除模块
#rollback,回滚模块

#!/bin/bash
set -o nounset
set -o errexit
set -o pipefail

ora_DIR=${1:-"/oracle"}
ora_HOME=$ora_DIR/product/11.2.0/db_1
ora_USER=oracle
ora_z1=${2:-"linux.x64_11gR2_database_1of2.zip"}
ora_z2=${3:-"linux.x64_11gR2_database_2of2.zip"}
host_NAME=${4:-"/oracledb"}
ora_rsp=$ora_DIR/database/response/db_install.rsp
USER_PASSW=${5:-"oracle"}
USER_HOME=${6:-"/oracle"}
FTP=${8:-"10.243.124.6"}

#sys_check,
function sys_check() {
if grep ‘Red Hat‘ /etc/system-release>/dev/null 2>&1 && [ $(awk ‘BEGIN {FS=" "} {print int($7)}‘ /etc/system-release) -ge 6 ];then
    echo "$(date "+%Y-%m-%d"): check $(grep "Red Hat" /etc/system-release) supported"
elif grep ‘CentOS‘ /etc/system-release>/dev/null 2>&1  &&  [ $(awk ‘BEGIN {FS=" "} {print int($4)}‘ /etc/system-release) -ge 6 ];then
    echo "$(date "+%Y-%m-%d"): check $(grep ‘CentOS‘ /etc/system-release) supported"
else
    echo "$(date "+%Y-%m-%d"): Our installing shell support ‘Redhat 6 or later‘ and ‘centos 6or later‘."
    echo ‘            Please check your system`s release.‘
    echo ‘            the installing shell exit‘
    exit
fi
}

#evn_check,
function evn_check() {
touch  $ora_DIR/.bash_profile
if grep ‘ORACLE_BASE=‘ $ora_DIR/.bash_profile>/dev/null 2>&1;then
    sed -i "s#ORACLE_BASE=.*#ORACLE_BASE=$ora_DIR#g" $ora_DIR/.bash_profile
    #echo "ORACLE_BASE=$ora_DIR modified"
else
    echo "export ORACLE_BASE=$ora_DIR">>$ora_DIR/.bash_profile
    #echo "ORACLE_BASE=$ora_DIR imported"
fi

if grep ‘ORACLE_HOME=‘ $ora_DIR/.bash_profile>/dev/null 2>&1;then
    sed -i "s#ORACLE_HOME=.*#ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1#g" $ora_DIR/.bash_profile
    #echo "ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 modified"
else
    echo "export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1">>$ora_DIR/.bash_profile
    #echo "ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 imported"
fi

if grep ‘PATH=‘ $ora_DIR/.bash_profile>/dev/null 2>&1;then
    sed -i ‘s#PATH=.*#PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin#g‘ $ora_DIR/.bash_profile
    #echo "PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin modified"
else
    echo ‘export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin‘>>$ora_DIR/.bash_profile
    #echo "PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin imported"
fi

if grep ‘ROACLE_PID=‘ $ora_DIR/.bash_profile>/dev/null 2>&1;then
    sed -i ‘s#ROACLE_PID=.*#ROACLE_PID=ora11g#g‘ $ora_DIR/.bash_profile
    #echo "ROACLE_PID=ora11g modified"
else
    echo ‘export ROACLE_PID=ora11g‘>>$ora_DIR/.bash_profile
    #echo "ROACLE_PID=ora11g imported"
fi

if grep ‘NLS_LANG=‘ $ora_DIR/.bash_profile>/dev/null 2>&1;then
    sed -i ‘s#NLS_LANG=.*#NLS_LANG=AMERICAN_AMERICA.AL32UTF8#g‘ $ora_DIR/.bash_profile
    #echo "NLS_LANG=AMERICAN_AMERICA.AL32UTF8 modified"
else
    echo ‘export NLS_LANG=AMERICAN_AMERICA.AL32UTF8‘>>$ora_DIR/.bash_profile
    #echo "NLS_LANG=AMERICAN_AMERICA.AL32UTF8 imported"
fi

if grep ‘LD_LIBRARY_PATH=‘ $ora_DIR/.bash_profile>/dev/null 2>&1;then
    sed -i ‘s#LD_LIBRARY_PATH=.*#LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib#g‘ $ora_DIR/.bash_profile
    #echo "LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib modified"
else
    echo ‘export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib‘>>$ora_DIR/.bash_profile
    #echo "LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib imported"
fi

echo "$(date "+%Y-%m-%d"): check system EVN and profile of user overwrited"
}

#silent_check
function silent_check(){
# local ora_rsp=‘$ora_DIR‘/database/response/db_install.rsp
if [ -e $ora_home ] ;then
   echo "$(date "+%Y-%m-%d"): found $ora_home "
else
    mkdir -p $ora_DIR/product/11.2.0/db_1
fi

sed -i ‘s#oracle.install.option=.*#oracle.install.option=INSTALL_DB_SWONLY#g‘  $ora_rsp >/dev/null 2>&1
 sed -i ‘s#ORACLE_HOSTNAME=.*#ORACLE_HOSTNAME=‘$host_NAME‘#g‘  $ora_rsp >/dev/null 2>&1
 sed -i ‘s#UNIX_GROUP_NAME=.*#UNIX_GROUP_NAME=oinstall#g‘  $ora_rsp >/dev/null 2>&1
 sed -i ‘s#INVENTORY_LOCATION=.*#INVENTORY_LOCATION=‘$ora_DIR‘/oraInventory#g‘  $ora_rsp >/dev/null 2>&1
 sed -i ‘s#SELECTED_LANGUAGES=.*#SELECTED_LANGUAGES=en,zh_CN#g‘  $ora_rsp >/dev/null 2>&1
 sed -i ‘s#ORACLE_HOME=.*#ORACLE_HOME=‘$ora_HOME‘#g‘  $ora_rsp >/dev/null 2>&1
 sed -i ‘s#ORACLE_BASE=.*#ORACLE_BASE=‘$ora_DIR‘#g‘  $ora_rsp >/dev/null 2>&1
 sed -i ‘s#oracle.install.db.isCustomInstall.*#oracle.install.db.isCustomInstall=false#g‘  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.DBA_GROUP=.*#oracle.install.db.DBA_GROUP=dba#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.OPER_GROUP=.*#oracle.install.db.OPER_GROUP=oinstall#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.config.starterdb.type=.*#oracle.install.db.config.starterdb.type=GENERAL_PURPOSE#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.config.starterdb.globalDBName=.*#oracle.install.db.config.starterdb.globalDBName=ora11g#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.config.starterdb.SID=.*#oracle.install.db.config.starterdb.SID=ora11g#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.config.starterdb.characterSet=.*#oracle.install.db.config.starterdb.characterSet=AL32UTF8#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.config.starterdb.memoryOption=.*#oracle.install.db.config.starterdb.memoryOption=true#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.config.starterdb.memoryLimit=.*#oracle.install.db.config.starterdb.memoryLimit=1500#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.config.starterdb.password.ALL=.*#oracle.install.db.config.starterdb.password.ALL=oracle#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.config.starterdb.storageType=.*#oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=.*#oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#oracle.install.db.config.starterdb.automatedBackup.enable=.*#oracle.install.db.config.starterdb.automatedBackup.enable=false#g"  $ora_rsp >/dev/null 2>&1
 sed -i "s#DECLINE_SECURITY_UPDATES=.*#DECLINE_SECURITY_UPDATES=true#g"  $ora_rsp >/dev/null 2>&1
 echo "silent_check,is ok"
}

#oracle_ins,
function oracle_ins(){
echo "$(date "+%Y-%m-%d"): begining install oracle"
trap rollback INT TERM EXIT
if [ -e $ora_z1 ] ;then
   echo "$(date "+%Y-%m-%d"): found $ora_z1 "
else
 echo "$(date "+%Y-%m-%d"): download $ora_z1 "
{ curl -s ftp://$FTP/oracle/p10404530_112030_Linux-x86-64_1of7.zip -o $ora_z1;wait; } || { echo "$(date "+%Y-%m-%d"): download $ora_zip1 failed"; exit; }
{ unzip -o  -d  $ora_DIR $ora_z1 >/dev/null 2>&1;wait; } || { echo "$(date "+%Y-%m-%d"): unzip $ora_z1  failed"; exit; }
fi

if [ -e $ora_z2 ] ;then
   echo "$(date "+%Y-%m-%d"): found $ora_z2 "
else
 echo "$(date "+%Y-%m-%d"): download $ora_z2 "
{ curl -s ftp://$FTP/oracle/p10404530_112030_Linux-x86-64_1of7.zip -o $ora_z2;wait; } || { echo "$(date "+%Y-%m-%d"): download $ora_zip2 failed"; exit; }
{ unzip -o -d $ora_DIR $ora_z2 >/dev/null 2>&1;wait; } || { echo "$(date "+%Y-%m-%d"): unzip $ora_z2  failed"; exit; }
fi

silent_check
cd  $ora_DIR >/dev/null 2>&1
#{"./database/runInstaller -silent -force -responseFile  $ora_DIR/database/response/db_install.rsp > $ora_DIR/oinstall.log" >/dev/null 2>&1;wait;} || { echo "install oracle failed"; exit; }
{ bash -c "./database/runInstaller -silent -force -responseFile  $ora_DIR/database/response/db_install.rsp > $ora_DIR/oinstall.log">/dev/null 2>&1;wait; } || { echo "install weblogic failed"; exit; }
wait
sleep 1m
trap - INT TERM EXIT
grep "Successfully Setup Software." $ora_DIR/oinstall.log
echo "oracle_ins  is ok"
}

#clean_all
function clean_all(){
rm -rf $ora_DIR/database
#rm -rf $ora_DIR/oinstall.log >/dev/null 2>&1
rm -rf $ora_DIR/checkpoints >/dev/null 2>&1
rm -rf $ora_DIR/diag >/dev/null 2>&1
rm -rf $ora_DIR/oraInventory  >/dev/null 2>&1

echo "clean_all"
}

#rollback!
function rollback() {
if [ -e $ora_HOME ]; then
rm -rf $ora_HOME/.*
echo  "rollback!"
fi
exit
}

sys_check
user_check
evn_check
oracle_ins
clean_all

时间: 2024-10-20 02:31:46

Linux脚本自动安装Oracle的相关文章

在Linux系统上安装Oracle数据库

前期准备:我用的是虚拟机上的CentOS 64位系统.所以需要设置网卡,时间,EPEL源,安装一些必备的软件. 1.1在虚拟机上安装好Linux系统后选择虚拟机设置->网络适配器->网络连接->桥接模式 1.2然后进入系统配置网卡. 永久修改: vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0(设备名称) TYPE=Ethernet(网络类型) ONBOOT=yes(开机自启动) BOOTPROTO=static(静态ip)

docker安装 之 ---CentOS 7 系统脚本自动安装

[使用脚本自动安装] 在测试或开发环境中Docker官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS系统上可以使用这套脚本安装: $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun 执行这个命令后,脚本就会自动的将一切准备工作做好,并且把Docker CE 的 edge版本安装在系统中. [启动 Docker CE] $ sudo systemctl enable d

linux下静默安装oracle

linux下静默安装oracle centos7.7 oracle11gR2 安装前的准备 1禁用ipv6 新加 [[email protected] ~]# vim /etc/sysconfig/network NETWORKING_IPV6=no 修改/etc/hosts,把ipv6那句本地主机名解析的注释掉 [[email protected] ~]# vim /etc/hosts # ::1 localhost localhost.localdomain localhost6 local

在linux系统上面安装oracle需要注意的几处

标题 在linux系统上面安装oracle需要注意的几处 1.选系统版本 2.安装路径 3. 给定的虚拟机硬盘空间大小 4.内存大小 5.光盘检测 6.手工创建硬   盘分区 7.boot分区大小 8./分区大小 9.swap分区大  小 10.手工定制    安装包 11.开发包这    些里面的    所有的子    选项安装    包全都选    中

Linux中自动安装脚本

如何让你的主机自动的完成安装,自动的回答系统提出的问题,编写自动安装脚本即可实现,如下将详细解释自动脚本安装方法. systemd-config-kickstart  ##自动应答脚本制作工具 安装成功,在安装过程中systemd-config-kickstart 将做出脚本应答 进行选择语言选择 (1)Basic Configuration 安装过程的必须一致时区选择(可不选,在脚本中都有写到,这里做一个解释) Root passwd 填写Root密码,并确认,两次输入密码 Advanced

linux 之静默安装oracle

Web服务器上面的Linux一般是不会有图形界面的,所有通过图形界面来安装Linux的方式在没有图形界面的Linux上面是行不通的,我们要使用的安装方式叫做Linux的静默安装.即在没有图形界面的Linux上面安装. 1. 下载地址 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 下载.tar.gz文件即可,oracle在Window上面是有分位数的,但在linux上面没有分,只

Oracle Linux 5.8安装Oracle 10.2.0.5 x64

一.正常方式全新安装 1. oracle安装环境准备 (1) 确认安装以下包 # rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}  (%{ARCH})\n' binutils compat-libstdc++-33 compat-gcc-34-c++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-d

openstack 之 使用virtualbox 脚本自动安装mirantis openstack

请直接参考https://docs.mirantis.com/openstack/fuel/fuel-9.0/  上的 <Mirantis-OpenStack-9.0-QuickStartGuide> 以前不知道mirantis还提供了更加快捷的部署方案,就是连virtualbox的环境都帮你自动化部署完成了,你只需要根据你的硬件条件,按照你的需求配置虚拟机的相关参数,比如你的环境只有8G内存,那么你就选择部署一个3个节点的openstack,直接在virtualbox script中调用相应

Linux 环境下安装Oracle 11.2.0.4.0 详细步骤

前言: 最近在学习oracle,这里我把安装和配置过程记录下来,按照我的这个方法一步一步基本上不会有问题,如果有问题可以留言大家探讨互相学习一下. 安装环境和版本: 系统版本:Redhat 6.5 oracle版本:11.2.0.4.0 虚拟机版本:Vbox 5.0.2 配置要求: 内存1.5G+,SWAP适宜大小为2G 选择服务时,建议全部选中,关闭防火墙,关闭selinux 一.安装前环境准备 1.安装Oracle服务器软件,需要安装如下软件包(尽量配置yum安装,这样省事儿) yum -y