2011年4月13日水曜日

Oracleの起動スクリプト(dbora)

スズキです。

起動スクリプト"/etc/init.d/dbora"は下記でうまくいきます。

基本的には、こちらで紹介されているものなのですが、
リスナーの起動/停止の部分を削除し、そのかわり、"dbstart/dbshut"実行時に、
$ORACLE_HOMEを引数で渡すようにしています。

--------【dbora】--------
#!/bin/bash
#
# chkconfig: - 99 10
# description: Oracle Database Server
# processname: ora_

SUBSYS=/var/lock/subsys/dbora
ORACLE_HOME=/opt/oracle/product/11.2
ORACLE_OWNER=oracle

if [ "`id -un`" != "root" ]; then
    MSG="ERROR Executing user isn't super-user."
    echo "[ORA-CONTROL] $MSG"
    logger -p user.warn -t "[ORA-CONTROL]" "$MSG"
    exit 1
fi

case "$1" in
start)
    if [ -f "$SUBSYS" ]; then
      echo $0 already started.
      exit 1
    fi
      echo -n $"Starting Oracle database: "
      su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
      touch $SUBSYS
    ;;
stop)
    if [ ! -f "$SUBSYS" ]; then
      echo $0 already stopped.
      exit 1
    fi
      echo -n $"Stopping Oracle database: "
      su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
      rm -f $SUBSYS
    ;;
restart)
    $0 stop
    $0 start
    ;;
status)
    if [ -f "$SUBSYS" ]; then
      echo $0 started.
    else
      echo $0 stopped.
    fi
    ;;
 *)
    echo "Usage: $0 {start|stop|status|restart}"
    exit 1
esac

exit 0
--------
※ 下記は、"/etc/sysconfig/dbora"に記述した方がいいかもしれません
ORACLE_HOME=/opt/oracle/product/11.2

ORACLE_OWNER=oracle

そして、起動したいOracleインスタンスは
"/etc/oratab"に次のように記述しておきます。

--------【oratab】--------
suzlab:/opt/oracle/product/11.2:Y
--------
※ 最後を"Y"にします。

Oracleインストール済みのAMIって公開してもいいのかなー?
--------
http://www.suz-lab.com

0 コメント: