• 検索結果がありません。

サービス、モジュールおよびアクション監視の有効化 サービス、モジュールおよびアクション監視の有効化 サービス、モジュールおよびアクション監視の有効化 サービス、モジュールおよびアクション監視の有効化

Data Guard

手順 4        サービス、モジュールおよびアクション監視の有効化 サービス、モジュールおよびアクション監視の有効化 サービス、モジュールおよびアクション監視の有効化 サービス、モジュールおよびアクション監視の有効化

各サービス内の重要なモジュールおよびアクションのパフォーマンス・データを有効にして 追跡することができます。パフォーマンス統計は、V$SERV_MOD_ACT_STATS ビューで参 照できます。次に、SQL*Plusセッションで実行されるコマンドとアクションを示します。

1. ERPサービスで、モジュールpayroll内のexceptions payアクションを監視します。

2. ERPサービスで、モジュールpayroll内のすべてのアクションを監視します。

3. HOT_BATCHサービスで、モジュールposting内のすべてのアクションを監視します。

4. DBA_ENABLED_AGGREGATIONSに対する問合せによって構成を確認します。

execute DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE(SERVICE_NAME => 'ERP', MODULE_NAME=>

'PAYROLL', ACTION_NAME => 'EXCEPTIONS PAY');

execute DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE(SERVICE_NAME => 'ERP', MODULE_NAME =>

'PAYROLL', ACTION_NAME => null);

execute DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE(SERVICE_NAME => 'HOT_BATCH', MODULE_NAME =>'POSTING', ACTION_NAME => null);

REM Verify the enabled service, module, action configuration col AGGREGATION_TYPE format a20 trunc heading 'AGGREGATION' col PRIMARY_ID format a20 trunc heading 'SERVICE'

col QUALIFIER_ID1 format a20 trunc heading 'MODULE' col QUALIFIER_ID2 format a20 trunc heading 'ACTION' select * from DBA_ENABLED_AGGREGATIONS ;

問合せの出力は次のようになります。

AGGREGATION SERVICE MODULE ACTION

ジョブ・スケジューラでのサービスの使用方法 ジョブ・スケジューラでのサービスの使用方法 ジョブ・スケジューラでのサービスの使用方法 ジョブ・スケジューラでのサービスの使用方法

DBMS_SCHEDULER.CREATE_JOBプロシージャを使用して、ジョブ・クラス下で実行する ジョブを定義します。この例では、手順2で定義されたジョブ・クラスの割当てにより、

MY_NAME.MY_PROCプロシージャはHOT_BATCHサービスで実行されます。

execute DBMS_SCHEDULER.CREATE_JOB(JOB_NAME => 'my_report_job', JOB_TYPE => 'stored_procedure', JOB_ACTION => 'my_name.my_proc();', NUMBER_OF_ARGUMENTS => 4,START_DATE => SYSDATE+1, REPEAT_INTERVAL => 5, END_DATE => SYSDATE+30, JOB_CLASS => 'HOT_BATCH', ENABLED => TRUE, AUTO_DROP => false, COMMENTS => 'my report on daily status');

高速アプリケーション通知機能のためのコールアウトの使用 高速アプリケーション通知機能のためのコールアウトの使用 高速アプリケーション通知機能のためのコールアウトの使用 高速アプリケーション通知機能のためのコールアウトの使用 方法

方法 方法 方法

カスタム作成されたアプリケーション・コールアウトは、プログラムまたはシェル・スクリ プト・ラッパーで、クラスタ上のアプリケーション、クラスタ上にないアプリケーション、

または中間層で管理される接続プールを起動および停止するために使用できます。コールア ウトは、サービスまたはサービスの一部の起動時、停止時または障害が発生して自動的に再 起動するときに、RACによってただちに実行されます。コールアウトとしてエンコードで きる他のアクションには(アプリケーションの再起動の他に)不良チケットの記録、管理者 への電子メール送信またはページング、サード・パーティのイベント・システムまたはクラ スタウェア・コンポーネントの起動などがあります。

コールアウトはRAC-HAをCRSに配置するための要件ではありませんが、コールアウトを 使用した通知メカニズムを作成することをお薦めします。CRSのホーム・ディレクトリが ネットワーク全体で共有されていない場合、各新規コールアウトは、各RACノード上の /private/oracle/crs/racg/usrcoディレクトリに配置する必要があります。

次の例(Bourneシェル・スクリプト)に、HAイベントが発生すると必ず起動するいくつか

のコールアウト・オプションを示します。これらのコールアウトは、すべてのDOWN条件 に対して、ログへのアップタイム・ステータス・レコードの書込みと不良チケットの記録

(ITトラブル・チケット・アプリケーションを使用)の2つのアクションを実行します。

#!/usr/bin/sh

#

# Description: Example wrapper script to enable RAC event logging and notification

# to generic third-party systems. The script showcases two possible

# methods to enable local or remote logging/notification of

RAC-# detected events.

#

# Note: Unless your CRS home directory is on an NFS-mounted device, you should

# copy this script to the racg/usrco directories in your CRS home

高速アプリケーション通知機能のためのコールアウトの使用方法

# directory, for all RAC nodes protected by Oracle Integrated Clusterware. # This is a one-time setup.

#

# For additional details on callouts and what name=value pairs are passed by RAC,

# please review /private/oracle/crs/racg/usrco/README.

# Global variables:

#

AWK=/usr/bin/awk

MY_CRS_HOME=/private/oracle/crs

# Scan and parse arglist:

#

for ARGS in $*; do

PROPERTY=`echo $ARGS | $AWK -F"=" '{print $1}'`

VALUE=`echo $ARGS | $AWK -F"=" '{print $2}'`

#> map EVTTYPE to EVENT_TYP, NODE to HOST:

case $PROPERTY in

#> note: EVENT_TYP is one of: NODE, DATABASE, INSTANCE, SERVICE, SERVICEMEMBER EVENT_TYP | event_typ) NOTIFY_EVENT_TYP=$VALUE ;;

VERSION | version) NOTIFY_VERSION=$VALUE ;;

SERVICE | service) NOTIFY_SERVICE=$VALUE ;;

DATABASE | database) NOTIFY_DBNAME=$VALUE ;;

INSTANCE | instance) NOTIFY_INSTANCE=$VALUE ;;

HOST | host) NOTIFY_HOST=$VALUE ;;

STATUS | status) NOTIFY_STATUS=$VALUE ;;

TIMESTAMP | timestamp) NOTIFY_SVRLOGDATE=$VALUE ;;

esac done

# ###################################################

# [1] Notification Method 1: On-cluster file logging

# ###################################################

# This section simply writes one-line entries for each event published by RAC,

# and the log is written to standard RAC log directory. It will blindly record

# all RAC events, regardless of state (UP, DOWN or NOT_RESTARTING):

RACEVT_LOGFILE=$MY_CRS_HOME/racg/log/rac_${NOTIFY_SERVICE}_uptime.log

echo RAC\(v$NOTIFY_VERSION\): $NOTIFY_STATUS event, type "$NOTIFY_EVENT_TYP", \ `if [ -n "$NOTIFY_SERVICE" ]; then \

echo "for service $NOTIFY_SERVICE"

fi` \

\[`if [ -n "$NOTIFY_INSTANCE" ]; then \ echo "inst: $NOTIFY_INSTANCE"

fi` \

`if [ -n "$NOTIFY_DATABASE" ]; then \ echo "db: $NOTIFY_DATABASE"

fi` \

`if [ -n "$NOTIFY_HOST" ]; then \ echo "db: $NOTIFY_HOST"

fi` \

\] received on $NOTIFY_SVRLOGDATE >> $RACEVT_LOGFILE

# ########################################################

# [2] Notification Method 2: On-cluster program execution

# ########################################################

# Let's assume you have a custom client program in /tmp (say logTicket) to which

# you can pass certain arguments. This program connects to a customer-service

# application that processes incident tickets for your IT department:

# % /tmp/logTicket {serverside_timestamp} \

# {databasename} {servicename} \

# {instancename} {hostname}

#

# Let us also assume that a ticket would be logged only for NOT_RESTARTING events,

# as they are the ones that exceeded RAC-monitored timeouts and seriously need

# human intervention for full resolution.

#

#

---# ONE SOLUTION TO [2]:

#

---if [ $NOTIFY_STATUS = "NOT_RESTARTING" -o $NOTIFY_STATUS = "not_restarting" ]; then /tmp/logTicket $NOTIFY_SVRLOGDATE $NOTIFY_DBNAME \

$NOTIFY_SERVICE \

$NOTIFY_INSTANCE $NOTIFY_HOST >> $RACEVT_LOGFILE fi

JDBC高速アプリケーション通知の構成

JDBC 高速アプリケーション通知の構成 高速アプリケーション通知の構成 高速アプリケーション通知の構成 高速アプリケーション通知の構成

高速アプリケーション通知を使用するには、アプリケーションでJDBC暗黙接続キャッシュ を使用する必要があります。JDBC接続プールは、コールアウト・メカニズムと統合され、

次の利点を提供します。

サービスをサポートする最初のRACインスタンスに、接続プール用に定義されている 最小限のセッションを送るかわりに、サービスの初回起動時にRAC全体で接続を均等 に分散させます。

追加のRACインスタンスを消費すると同時に、サービスが追加のインスタンスでUPと して登録されます。

終了した接続を消去すると同時に、サービスがすべてのインスタンスでDOWNとして宣 言され、そのノードも同時にDOWNとして宣言されます。

エラーをクライアントにレポートすると同時に、サービスが再起動を繰り返し試行する 間クライアントを待機させるかわりにNOT RESTARTINGステータスが検出されます。

サービスをサポートするRACインスタンス全体に、実行時にクライアントの作業要求 を分散します。

JDBC クライアント・サイドの構成 クライアント・サイドの構成 クライアント・サイドの構成 クライアント・サイドの構成

JDBC暗黙接続キャッシュおよびOracle Notification Service(ONS)の構成方法は、『JDBC ユーザーズ・ガイドおよびリファレンス』を参照してください。ONSが正しく構成されな い場合は、暗黙接続キャッシュの作成に失敗し、最初のgetConnection()requestで該 当する例外が発生します。

データソースに対して最初のgetConnection()要求を行う前に、

ConnectionFailoverEnabledプロパティを設定します。高速接続フェイルオーバーが有 効な場合、フェイルオーバーは、接続キャッシュ内の各接続に対して適用されます。

Connection Cache Managerを使用してアプリケーションで明示的に接続キャッシュを作成

する場合は、ConnectionFailoverEnabledを設定する必要があります。

RAC の高可用性サーバー・サイドの構成 の高可用性サーバー・サイドの構成 の高可用性サーバー・サイドの構成 の高可用性サーバー・サイドの構成

中間層のONSクライアントが状態変化を受信し対応するために、RACのイベント・システ ムはすべてのONSにHAイベントを転送するように構成する必要があります。

手順

手順 手順