引越しました!

http://blog.mogmet.com/blog-entry-66.html

へアクセスしてください。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【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


リソース登録


ではいよいよ登録。

EnterpriseManagerOracleユーザで稼働させる必要があるので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


こんなかんじで起動できているのが確認できた。

そんで再起動してみてもちゃんと自動起動できているはず。

テーマ : データベース
ジャンル : コンピュータ

コメントの投稿

非公開コメント

承認待ちコメント

このコメントは管理者の承認待ちです
スポンサーリンク
FC2カウンター
最新記事
最新コメント
カテゴリ
アマゾンドリンク
検索フォーム
リンク
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
3225位
アクセスランキングを見る>>

[サブジャンルランキング]
未設定
--位
アクセスランキングを見る>>
バックリンク
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。