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

  • 相关阅读:
    分布式锁设计方案
    ACID/CAP/BASE 理论知识
    分布式ID设计方案
    perl代码调试
    文档型数据库设计模式-如何存储树形数据 [转]
    树形结构的数据库表Schema设计
    http协议相关
    HTTPS加密原理(转)
    VBA读写XML文件
    VBA 刷新数据透视表
  • 原文地址:https://www.cnblogs.com/softidea/p/3997510.html
Copyright © 2011-2022 走看看