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

  • 相关阅读:
    浅谈Oracle12c 数据库、用户、CDB与PDB之间的关系
    ECLIPSE快捷键
    Oracle12cWindows安装、介绍及简单使用(图文)
    金士顿DT100 G3 PS2251-07海力士U盘量产修复成功教程
    tomcat绑定域名
    TCP慢启动、拥塞避免、快速重传、快速恢复
    理解HTTP幂等性
    TCP协议缺陷不完全记录
    Nginx模块开发入门
    一步步构建大型网站架构
  • 原文地址:https://www.cnblogs.com/softidea/p/3997510.html
Copyright © 2011-2022 走看看