【Oracle】EnterpriseManagerを自動起動するようClusterwareに組み込む
EnterpriseManagerはすごく便利なものだ。
これを使うには$ emctl start dbconsoleとコマンドをうって起動させなければいけない。
しかしこれは手動で起動させる必要があり、再起動するたびに毎回手で起動させるのは面倒。
また、メールとかもEnterpriseManagerが送ってくれるので
万が一EnterpriseManagerが落ちていたら大変!!
ということで自動起動もさせたいし落ちてたら勝手に復活してくれるようOracle Clusterwareにリソースとして追加してみた。
詳細は以下へ。
仕様
・DBが起動しているに依存して起動される
・10分間隔で状態をチェックし、落ちていたら起動を1回を試みる。
環境
・Oracle RAC 11g R2
・RACの管理方法はポリシーベース管理
・3ノード中、2ノードがアクティブで1ノードはスタンバイてきな感じで使われる環境です
・Oracle Linux 6.3
・インスタンス名はapp
スクリプトの準備
引数として、start, stop, check, cleanの引数を与えると動作するスクリプトを準備する。
今回はこんなかんじで準備した。
#!/bin/sh
# env
export ORACLE_BASE=”/u01/app/oracle”
export ORACLE_HOME=”${ORACLE_BASE}/product/11.2.0/dbhome_1″
export ORACLE_UNQNAME=app
# command
EMCTL=”$ORACLE_HOME/bin/emctl”
case $1 in
‘start’)
${EMCTL} start dbconsole
RET=$?
;;
‘stop’)
${EMCTL} stop dbconsole
RET=$?
;;
‘clean’)
${EMCTL} stop dbconsole
RET=$?
;;
‘check’)
${EMCTL} status dbconsole
RET=$?
;;
*)
RET=0
;;
esac
# 0: success; 1 : error
if [ $RET -eq 0 ]; then
exit 0
else
exit 1
fi
一応ためしに叩いてちゃんと動くか確認してみてね☆
あとchmod a+xで実行権限与えるのも忘れずに。
$ ./em_app.sh status
リソース登録
ではいよいよ登録。
EnterpriseManagerはOracleユーザで稼働させる必要があるのでOracleユーザで登録する。
$ /u01/app/11.2.0/grid/bin/crsctl add resource emApp -type local_resource -attr ”
ACTION_SCRIPT=/home/oracle/scripts/em_app.sh,
CHECK_INTERVAL=600,
RESTART_ATTEMPTS=1,
START_DEPENDENCIES=hard(global:ora.app.db),
ACL=’owner:oracle:rwx,pgrp:oinstall:rwx,other::r–‘,
AUTO_START=always”
このスクリプトはそれぞれのローカルノードで動くのでlocal_resourceで稼働させる。
ACTION_SCRIPT属性に実行するスクリプトをフルパスで書く。
CHECK_INTERVALはEnterpriseManagerをチェックする間隔。今回は600秒。
RESTART_ATTEMPTSは何回再起動を試みるか。
START_DEPENDENCIESはappインスタンスが起動しているのに依存して起動する。(起動してなかったら起動できない)
また、globalにすることで、そのノードでインスタンスが立ち上がってなくてもクラスタとしてインスタンスが立ち上がっていれば起動することができる。
ACLはownerはoracleユーザーでoinstallグループのユーザーも実行できるようにしている
AUTO_START=alwaysはどんなときでも自動起動させる
後の細かい属性の説明についてはここを参考に。
登録できた所でさっそく起動してみる
$ crsctl start res emApp
そんで様子を見てみる
$ crsctl status res emApp -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
emApp
ONLINE ONLINE test-ora01
ONLINE ONLINE test-ora02
ONLINE ONLINE test-ora03
こんなかんじで起動できているのが確認できた。
そんで再起動してみてもちゃんと自動起動できているはず。