zoukankan      html  css  js  c++  java
  • Linux/UNIX环境下Oracle数据库多实例开机启动脚本(转)

    操作系统平台:RHEL 5
    Shell环境:Bash
    Oracle:10g2

    功能描述:开机时自动切换到oracle用户下,启动oracle的多个实例。并记录数据库的启动情况到自定义的日志文件中。

    #!/bin/bash

    LOG_PATH=$HOME/oracle_initing.log
    log() {
    if [ $# -lt 1 -a $# -gt 1 ];then
    exit 5
    fi
    case "$@" in
    success)
    echo `date +%b" "%d" "%T`" "$PRO": Oracle instence "$ORACLE_SID" starting up succefully" >> $LOG_PATH;;
    failed)
    echo `date +%b" "%d" "%T`" "$PRO": Oracle instence "$ORACLE_SID" starting up FAILED" >> $LOG_PATH;;
    *)
    echo `date +%b" "%d" "%T`" "$PRO": "$@ >> $LOG_PATH;;
    esac
    }
    lsstart() {
    # stop stopping
    # start starting
    lsnrctl >> $LOG_PATH <<EOF
    status
    start
    exit
    EOF
    }
    init_oracle() {
    #lsstart stop the listen
    # lsstart
    HOSTNAME=`hostname |awk -F. '{print $1}'`
    PRO=$0
    ORACLE_SIDS=`sed -rn '/^([^#].*):/!d;p' /etc/oratab |awk -F: '{printf $1" "}'`
    if [ -z "$ORACLE_SIDS" ] ;then
    exit 2
    else
    echo $ORACLE_SIDS
    for ORACLE_SID in $ORACLE_SIDS
    do
    # echo $ORACLE_SID
    #start or stop the oracle databases
    # startup
    # shutdown immediate
    if sqlplus -S /nolog >> $LOG_PATH <<EOF
    conn / as sysdba
    startup
    EOF
    then
    log success
    continue
    else
    log failed
    exit 3
    fi
    done
    fi
    }
    if [ $"$UID" -eq 0 ] ;then
    su - oracle
    init_oracle
    #lsstart start the listen
    # lsstart
    exit 0
    elif [ "$USER" = "oracle" ] ;then
    init_oracle
    #lsstart start the listen
    # lsstart
    exit 0
    else
    exit 4
    fi

    http://wangxiaoyu.blog.51cto.com/922065/197630

  • 相关阅读:
    面试笔记1
    Hello World!!
    百度地图API JavaScript显示人员分布信息
    MUI Picker选择器 自定义省市地址三级联动
    【Unity】Lua热重载
    【临时存放】变量配置
    SVN代码管理出现注册错误
    javaweb学习
    微信应用号(微信小程序)开发教程
    shell脚本时间运算
  • 原文地址:https://www.cnblogs.com/softidea/p/3997510.html
Copyright © 2011-2022 走看看