#该脚本包含以下模块

#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

oracle脚本安装,Linux脚本自动安装Oracle相关推荐

  1. linux一键安装脚本编写,Linux中自动安装脚本

    如何让你的主机自动的完成安装,自动的回答系统提出的问题,编写自动安装脚本即可实现,如下将详细解释自动脚本安装方法. systemd-config-kickstart  ##自动应答脚本制作工具 安装成 ...

  2. Linux下自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...

  3. PXE实现Linux的自动安装

    转载自:http://hucwuhen.blog.51cto.com/6253667/1266420 PXE实现Linux的自动安装 安装过linux的人都知道,在只对一台机器进行linux的安装,很 ...

  4. 用Kickstart批量安装Linux系统、Kickstart安装,linux批量安装;Linux的Kickstart的 无人值守安装;linux pxe自动安装linux系统...

    用Kickstart批量安装Linux|Kickstart,批量安装:Linux的Kickstart的 无人值守安装:linux pxe自动安装linux系统: KickStart + DHCP + ...

  5. aix oracle备份命令,Aix/Linux下自动备份oracle数据库

    曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非 ...

  6. 安卓手机用AidLux安装Linux免Root,安装到Debian 10不能安装docker

    最近看到安卓手机可以安装Linux, 试了一下AidLux这个APP,可以免Root安装Linux,看了一下它内置的是Debian 10 buster; 还用了Linux deploy, Linux ...

  7. RIS服务器的安装和远程自动安装操作系统(二)

    RIS服务器的安装和远程自动安装操作系统 在完成了安装RIS服务器之后,需要做一些设置才能够让RIS正常工作. 第二步设置: 1.首先需要创建一个或多个用户使用具有使用远程安装计算机的权限(这些实在服 ...

  8. 安装Linux出现致命错误,安装liunx出现致命错误,为什么,如何解决?

    rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具,windows端需要支持ZModem的 ...

  9. linux系统下的oracle数据库,在Linux系统下安装Oracle数据库

    在Linux系统下安装Oracle数据库:1.约定:linux系统为Linux.5.4-server-x86_64,数据库为linux.x64_11gR1_database_1013 linux 在L ...

最新文章

  1. sql 存储过程和函数
  2. mysql xid原理_MySQL数据库分布式事务XA实现原理分析
  3. 每日一皮:某程序员对书法十分感兴趣。一日饭后突生雅兴...
  4. 你应该知道的jQuery技巧【收藏】
  5. MOSS中自定义WebService
  6. 数据结构杂谈(五)——栈
  7. jQuery中的函数汇总1
  8. 【LeetCode】剑指 Offer 61. 扑克牌中的顺子
  9. django 1.8 官方文档翻译:13-1-3 密码管理
  10. activate tensorflow_“量子固件”来了!利用 TensorFlow 提升量子计算硬件性能
  11. [动态规划] leetcode 10 正则表达式匹配
  12. 9.Tideways和xhgui
  13. Jmeter使用教程(图文并茂)|实战干货
  14. JavaWeb如何判断账户密码
  15. RabbitMQ消息队列(九):Publisher的消息确认机制
  16. 计算机视频DVI接口,HDMI、DVI 电脑为什么会有这么多种视频接口?
  17. CZ880到手第一天测试,安装Windows11 To Go
  18. verilog读入txt文件
  19. 数据结构 第5章 树和二叉树 课后答案
  20. 梆梆安全加固企业版分析

热门文章

  1. jMeter HTTP Request Defaults 的学习笔记
  2. SAP Spartacus Sample Data Extension
  3. ABAP 标准培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号
  4. SAP Spartacus delivery mode页面两个一模一样的cart API请求
  5. SAP Spartacus的cxComponentWrapper指令
  6. SAP Spartacus storefrontapp不是运行在简单的tomcat服务器上
  7. 对Angular使用了HttpClient的服务进行单元测试
  8. SAP Fiori globalization实现原理之Number显示的格式原理
  9. 使用ant触发Tomcat的reload操作
  10. Kyma Lambda Function的GATEWAY_URL是做什么的?