Top / DB関連 / Oracle11g R2を自動起動する

Oracle11g R2を自動起動する

今回、Oracle11g R2をインストールしましたが、インストール直後ではWindowsの場合と異なり自動起動する設定に
なっていないようです。

 

ということで、Oracleを自動起動するように設定します。

 

Oracleが自動起動するのに関連するスクリプトは、以下の通りです。

  1. $ORACLE_HOME/bin/dbstart DB起動スクリプト
  2. $ORACLE_HOME/bin/dbstart DB停止スクリプト
  3. /etc/oratab インスタンスの定義ファイル
  4. /etc/rc.d/init.d/dbora サービスのスクリプト
     

上記の1.~3.のスクリプトは、インストール時に準備されていますが、4.のスクリプトは自分で作る必要があります。

 

/etc/oratabは、インスタンスの定義ファイルです。
末尾のY/Nで、オラクルインスタンスが、自動起動/停止の対象となるかどうかを指定します。
以下のコマンドを投入し、編集します。(Oracleユーザーでログインしていたら、sudo -u oracle は不要です。)

sudo -u oracle vi /etc/oratab

http://www.techch.com/wikiparts/Oj_244.png

 

このように、末尾がYとなるように編集しました。
http://www.techch.com/wikiparts/Oj_245.png

 

続いて、/etc/rc.d/init.d/dbora サービススクリプトを作ります。

sudo vi /etc/rc.d/init.d/dbora

http://www.techch.com/wikiparts/Oj_246.png

 

作成するスクリプトは以下の通りです。コメント部分は削除願います。
ちなみに、Enterprise Managerも起動するように拡張しています。isqlplusは、11gで廃止されています。

#!/bin/sh
#
# chkconfig: - 80 30
# description: Oracle Database Server
# processname: ora_

LOCK_FILE=/var/lock/subsys/dbora
ORA_HOME=/opt/oracle/product/11.2.0/dbhome_1
ORA_OWNER=oracle

# source function library
. /etc/rc.d/init.d/functions


case "$1" in
'start')
    if [ -f $LOCK_FILE ]; then
        echo $0 already stated.
        exit 1
    fi
        echo -n $"Stating Oracle database."
        su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
        su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
        su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"
        touch $LOCK_FILE
    ;;
'stop')
    if [ -f $LOCK_FILE ]; then
        echo -n $"Stopping Oracle database."
        su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole"
        su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
        su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
        rm -f $LOCK_FILE
    else
        echo $0 already stopped.
        exit 1
    fi
    ;;

'restart')
    $0 stop
    $0 start
    ;;

'status')
    if [ -f $LOCK_FILE ]; then
        echo $0 started.
    else
        echo $0 stopped.
    fi
    ;;
*)
    echo "Usage: $0 {start|stop|status}"
    exit 1

esac

exit 0

http://www.techch.com/wikiparts/Oj_247.png

 

実行権限をあたえるため、以下のコマンドを投入します。

sudo chmod u+x /etc/rc.d/init.d/dbora

http://www.techch.com/wikiparts/Oj_248.png

 

続いて、サービス起動できるように登録します。
以下のコマンドを投入します。

su -root
chkconfig --add dbora

http://www.techch.com/wikiparts/Oj_249.png

 

続いて、自動起動するように登録します。

chkconfig dbora on
chkconfig --list dbora

http://www.techch.com/wikiparts/Oj_250.png

 

マシンを再起動して、Oracleが自動起動することを確認します。
Oracleインスタンスの起動、Enterprise Managerの起動が追加されますので、マシンの起動は時間がかかるようになります。
まあ、仕方が無いですね。

参考

 

以上です。

最新の10件
2010-07-09 2010-07-08 2010-07-07 2010-06-29 2010-06-28
人気の20件
Counter: 1579, today: 1, yesterday: 0