パスワードを忘れた? アカウント作成
169478 journal

shimashimaの日記: [Oracle][Linux]Oracle11gR2用起動スクリプト

日記 by shimashima

自宅のCentOS5.4に入れたOracle11gR2を起動させるために、なんとなくシェルスクリプトを書いてみた。Oracle10gR2用のものはWeb上で見つけたのでそのまま利用したが11gR2では若干変更が必要なようだ。

ORA_HOMEはOracleインストール先のホームディレクトリ、ORACLE_UNQNAMEはインストール時に設定したインスタンス名、ORA_OWNERはoracleインストールユーザ名となる。

その上で、以下の様なシェルスクリプトを /etc/init.d/ 配下に配置する。

#!/bin/sh
 
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
 
ORA_HOME=/opt/oracle/product/11.2.0/dbhome_1
ORA_OWNER=oracle
export ORACLE_HOME=$ORA_HOME
export ORACLE_HOME_LISTNER=$ORA_HOME
export ORACLE_UNQNAME=ora10
 
if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
        echo "Oracle startup: cannot start"
        exit
fi
 
case "$1" in
        start)
                # Start Oracle Net
                su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
                # Start the Oracle databases:
                su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
                # Start emctl
                su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"
 
                touch /var/lock/subsys/dbora
                ;;
 
        stop)
                # Stop emctl
                su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole"
                # Stop Oracle Net
                su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
                # Stop the Oracle databases:
                su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
 
                rm -f /var/lock/subsys/dbora
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        status)
                if [ -f /var/lock/subsys/dbora ]; then
                echo $0 started.
                else
                echo $0 stopped.
                fi
                ;;
        *)
                echo "usage: dbora {start|stop|restart|status}"
                exit 1
esac
 
exit 0

また、Oracle用ユーザ(以下の例では[oracle])の.bashrcなどに、以下のように追記し環境変数を設定する。

export ORA_HOME=/opt/oracle/product/11.2.0/dbhome_1
export ORA_OWNER=oracle
export ORACLE_HOME=$ORA_HOME
export ORACLE_HOME_LISTNER=$ORA_HOME
export ORACLE_UNQNAME=ora10g

内容がスクリプトと重複しているが、多分スクリプト側のexportは実際には意味をなさないはずなので削除しても問題ないだろう。自分はまだ試していないが。

ちなみに、10gR2と11gR2での差異は

  • ORACLE_HOME_LISTNER
  • ORACLE_UNQNAME

二つの環境変数を追加したこと。

参考:CentOS5上のOracle 10g インストール

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...