今回、Oracle11g R2をインストールしましたが、インストール直後ではWindowsの場合と異なり自動起動する設定に
なっていないようです。
ということで、Oracleを自動起動するように設定します。
Oracleが自動起動するのに関連するスクリプトは、以下の通りです。
上記の1.~3.のスクリプトは、インストール時に準備されていますが、4.のスクリプトは自分で作る必要があります。
/etc/oratabは、インスタンスの定義ファイルです。
末尾のY/Nで、オラクルインスタンスが、自動起動/停止の対象となるかどうかを指定します。
以下のコマンドを投入し、編集します。(Oracleユーザーでログインしていたら、sudo -u oracle は不要です。)
sudo -u oracle vi /etc/oratab
続いて、/etc/rc.d/init.d/dbora サービススクリプトを作ります。
sudo vi /etc/rc.d/init.d/dbora
作成するスクリプトは以下の通りです。コメント部分は削除願います。
ちなみに、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
実行権限をあたえるため、以下のコマンドを投入します。
sudo chmod u+x /etc/rc.d/init.d/dbora
続いて、サービス起動できるように登録します。
以下のコマンドを投入します。
su -root chkconfig --add dbora
続いて、自動起動するように登録します。
chkconfig dbora on chkconfig --list dbora
マシンを再起動して、Oracleが自動起動することを確認します。
Oracleインスタンスの起動、Enterprise Managerの起動が追加されますので、マシンの起動は時間がかかるようになります。
まあ、仕方が無いですね。
以上です。