データベースサーバのOSの起動・停止に合わせて、インスタンスを自動的に起動・停止することができます。
以下に示す手順に従って、インスタンスの自動起動・停止の設定を行ってください。
クラスタシステムでインスタンスを動作させる場合は、クラスタシステムにより起動停止が制御されるため、本機能を利用する必要はありません。
インスタンス管理者のOSユーザーアカウントの設定
インスタンス管理者のOSユーザーアカウントでログインした場合に、インスタンスの起動に必要な環境変数を設定するようにします。この設定は、以降で説明する“su -”コマンドの実行時に必要になります。
シェルスクリプトの作成
第1引数を読み取ってインスタンスの起動/停止を行うシェルスクリプトを作成します。
第1引数を読み取り、“start”が指定された場合は起動、“stop”が指定された場合は停止を行うようにします。
なお、“su -”コマンドによりインスタンス管理者として起動・停止を行う必要があります。
シェルスクリプトの複写とアクセス権の設定
OSのスーパーユーザーで、手順1で作成したシェルスクリプトを/etc/rc.d/init.d配下に複写し、アクセス権を設定して登録します。
以下は、自動起動停止スクリプトを“symfo_inst1”として作成した場合の例です。
# cp symfo_inst1 /etc/rc.d/init.d/ # chmod 755 /etc/rc.d/init.d/symfo_inst1
自動起動・停止の登録と有効化
OSのスーパーユーザーで、chkconfigコマンドを使って登録と有効化をします。
“chkconfig --add”で登録し、“chkconfig --level”でランレベルの設定と有効化を行います。
# chkconfig --add symfo_inst1 # chkconfig --level 25 symfo_inst1 on
#!/bin/sh # chkconfig: 2345 85 15 # description: Symfoware Server Open start / stop script ########################################################################## SYMDATA="/database/inst1" SYMUSER=symfo SYMLOG="$SYMDATA/serverlog" LOCKFILE=/var/lock/subsys/symfo_inst1 case "$1" in start) su - $SYMUSER -c "pg_ctl start -D '$SYMDATA' -w " >$SYMLOG 2>&1 if [ $? -eq 0 ];then touch $LOCKFILE fi ;; stop) su - $SYMUSER -c "pg_ctl stop -D '$SYMDATA' -m fast" >$SYMLOG 2>&1 if [ $? -eq 0 ];then rm -f $LOCKFILE fi ;; restart) su - $SYMUSER -c "pg_ctl restart -D '$SYMDATA' -m fast" >$SYMLOG 2>&1 if [ $? -eq 0 ];then touch $LOCKFILE fi ;; reload) su - $SYMUSER -c "pg_ctl reload -D '$SYMDATA'" >$SYMLOG 2>&1 ;; status) su - $SYMUSER -c "pg_ctl status -D '$SYMDATA'" ;; *) echo $"Usage: $0 {start|stop|restart|reload|status}" exit 2 ;; esac