FANコールアウトは、サーバー側の実行可能ファイルで、高可用性イベントが発生した際に、ただちにOracle RACで実行されます。FANコールアウトを使用すると、クラスタ構成でイベントが発生した場合に、次のようなアクティビティを自動的に実行できます。
障害追跡チケットのオープン
ページャへのメッセージの送信
電子メールの送信
サーバー側のアプリケーションの起動および停止
各イベントの発生とともにロギングすることによるアップタイム・ログのメンテナンス
優先度の高いサービスがオンラインになった場合の優先度の低いサービスの再配置
FANコールアウトを使用するには、Oracle Clusterwareを実行しているすべてのノードのGrid_home
/racg/usrco
ディレクトリに実行可能ファイルを配置します。実行可能ファイルは、別のプログラムからオプションの引数でコールされた場合、スタンドアロンで実行可能である必要があります。Grid_home
/racg/usrco/callout.sh
コールアウトの例を次に示します。
#! /bin/bash
FAN_LOGFILE= [your_path_name]/admin/log/'hostname'_uptime'.log
echo $* "reported="'date' >> $FAN_LOGFILE &
前述の例では、次のような出力が生成されます。
NODE VERSION=1.0 host=sun880-2 incarn=23 status=nodedown reason=public_nw_down timestamp=08-Oct-2012 04:02:14 timezone=-08:00 reported=Fri Oct 8 04:02:14 PDT 2012
表5-3に示すように、FANイベント・レコードの内容は、データベースにログオンしているユーザーの現行のセッションに該当します。また、OCI接続ハンドルと(OCIAttrGet()
を使用した)記述子属性を使用すると、ユーザー環境(USERENV
)情報も使用できます。この情報を使用すると、FANイベントのデータに該当するセッションでアクションを実行できます。
関連項目:
コールアウトおよびイベントの詳細は、表5-2を参照してください
接続ハンドルと記述子属性の詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。
通常、イベントはそれが発生したノード上のユーザー・コールアウトにポストされるだけです。たとえば、node1
のデータベースが停止した場合、コールアウトはnode1
のみにポストされます。唯一の例外は、ノード停止とVIP停止イベントで、これらのイベントは、発生した場所にかかわらず、すべてのノードにポストされます。