通常、すべてのリソースは一意ですが、共通属性を持つリソースもあります。Oracle Clusterwareでは、これらの類似リソースの編成にリソース・タイプが使用されます。リソース・タイプのメリットは次のとおりです。
必要なリソース属性のみの管理
リソース・タイプに基づくすべてのリソースの管理
Oracle Clusterwareに登録するすべてのリソースには、特定のリソース・タイプが必要です。Oracle Clusterware制御(CRSCTL)ユーティリティを使用して、Oracle Clusterwareに含まれているリソース・タイプに加えて、カスタム・リソース・タイプを定義できます。含まれているリソース・タイプは次のとおりです。
ローカル・リソース: ローカル・リソースのインスタンス(タイプ名はlocal_resource
)は、クラスタの各サーバーで実行されるか(デフォルト)、または特定のサーバー・カテゴリに属しているサーバーで実行されるように制限できます。サーバーをクラスタに追加すると、Oracle Clusterwareではローカル・リソースが自動的に拡張され、インスタンスは新しいサーバーに関連付けられます。サーバーをクラスタから削除すると、Oracle Clusterwareでは、削除するサーバーで実行されていたローカル・リソースのインスタンスが自動的に削除されます。ローカル・リソースのインスタンスは、対応するサーバーに固定されており、あるサーバーから別のサーバーにフェイルオーバーされることはありません。
クラスタ・リソース: タイプ名がcluster_resource
のクラスタ対応リソース・タイプで、クラスタ環境を認識し、カーディナリティおよびサーバー間のスイッチオーバーとフェイルオーバーの対象となります。
汎用的なアプリケーション: このリソース・タイプ(タイプ名はgeneric_application
)を使用すると、スクリプトを追加しなくても汎用的なアプリケーションを保護できます。アプリケーションの高可用性は、リソースをgeneric_application
リソース・タイプで定義し、リソースの重要な属性に価値を提供することで実現されます。generic_application
リソース・タイプは、cluster_resource
リソース・タイプから取得されるため、generic_application
リソース・タイプのすべてのリソースは、クラスタ対応のリソースです。属性は次のとおりです。
START_PROGRAM
: アプリケーションを起動する実行可能ファイルの完全なパスで、適切なすべての引数が含まれています。実行可能ファイルは、Oracle Grid Infrastructureを構成してアプリケーションを実行する各サーバーに存在する必要があります。この属性は必須です。次に例を示します。
/opt/my_app –start
また、実行可能ファイルは、アプリケーションが正常に起動してオンラインになっていることを示すために、アプリケーションが起動したらゼロ(0)の終了ステータス値を返すことを確認する必要もあります。実行可能ファイルがアプリケーションの起動に失敗した場合、実行可能ファイルは、ゼロ以外のステータス・コードで終了します。
STOP_PROGRAM
: アプリケーションを停止する実行可能ファイルの完全なパスで、適切なすべての引数が含まれています。実行可能ファイルは、Oracle Grid Infrastructureを構成してアプリケーションを実行する各サーバーに存在する必要があります。属性値を指定しない場合、Oracle Clusterwareは、オペレーティング・システムのkill
に相当するコマンドを使用します。次に例を示します。
/opt/my_app –stop
また、実行可能ファイルは、アプリケーションが正常に停止したことを示すために、アプリケーションが停止したらゼロ(0)の終了ステータス値を戻すことを確認する必要もあります。実行可能ファイルがアプリケーションの停止に失敗した場合、実行可能ファイルは、ゼロ以外のステータス・コードで終了し、Oracle Clusterwareはリソースのクリーンアップを開始します。
CLEAN_PROGRAM
: アプリケーションをクリーンアップする実行可能ファイルの完全なパスで、適切なすべての引数が含まれています。実行可能ファイルは、Oracle Grid Infrastructureを構成してアプリケーションを実行する各サーバーに存在する必要があります。この属性に値を指定しない場合、Oracle Clusterwareは、オペレーティング・システムのkill -9
に相当するコマンドを使用します。次に例を示します。
/opt/my_app –clean
注意:
STOP_PROGRAM
およびCLEAN_PROGRAM
との違いは、CLEAN_PROGRAM
は、アプリケーションを不正に停止する強制停止で、アプリケーションをいつでも停止できる必要があり、停止できない場合はアプリケーションが管理不能になります。
PID_FILES
: アプリケーションによって記述される、ファイルへの完全なパスのカンマ区切りのリストで、監視するためのプロセスID(PID)を含みます。プロセスに1回でも障害が起きると、完全なリソース障害として取り扱われます。次に例を示します。
/opt/app.pid
注意:
PID_FILES
属性で指定するファイルは、STARTアクションが完了し、ファイルにリストされているPIDの監視が開始された直後に読み込まれます。
EXECUTABLE_NAMES
: 実行可能ファイルの名前のカンマ区切りのリストで、これは、アプリケーションが起動し、その後実行可能ファイルの状態が監視されると作成されます。実行可能ファイルに1回でも障害が起きると、完全なリソース障害として取り扱われます。次に例を示します。
my_app
注意:
実行可能ファイルの完全な名前のみを指定する必要があります。この属性は実行可能ファイルまたはワイルド・カードのパスを受け入れません。STARTアクションが完了した後すぐに、実行可能ファイル名に一致するPIDがキャッシュされます。
CHECK_PROGRAMS
: 実行可能ファイルへの完全なパスのリストで、アプリケーションの状態を判断します。いずれのアプリケーションでも動作していない状態がレポートされると、リソース全体の障害として取り扱われます。次に例を示します。
/opt/my_app –check
ENVIRONMENT_FILE
: アプリケーションの起動時にソースへの環境変数を含んでいるファイルへの完全なパスです。ファイルは、1行に1つのname
=
value
のペアを含んでいるテキスト・ファイルである必要があります。次に例を示します。
/opt/my_app.env
ENVIRONMENT_VARS
: アプリケーションの起動時の環境に含まれるname
=
value
のペアのカンマ区切りのリストです。次に例を示します。
USE_FILES=No, AUTO_START=Yes
SEND_OUTPUT_ALWAYS
: この属性は、STDOUTに送られるアプリケーション出力を送り、表示する役割を果たします。値が0の場合、アクションが失敗しないかぎり、いずれのアプリケーション出力も表示されません。アクションが失敗すると、エージェントによって保存されたアプリケーション出力が表示されます。値が0より大きい場合、すべてのアプリケーション出力を表示します。デフォルト値は0 (ゼロ)です。次に例を示します。
SEND_OUTPUT_ALWAYS=1
注意:
STOP_PROGRAM
、CHECK_PROGRAMS
およびCLEAN_PROGRAM
属性を指定しない場合、PID_FILES
またはEXECUTABLE_NAMES
のいずれかを指定する必要があり、これを行わない場合は、Oracle Clusterwareでこのタイプのリソースを登録することはできません。
すべての属性を指定する場合、次のルールが適用されます。
リソースを停止する場合、STOP_PROGRAM
を指定すると、Oracle ClusterwareはSTOP_PROGRAM
をコールします。それ以外の場合では、Oracle Clusterwareは、PID_FILES
またはEXECUTABLE_NAMES
属性のいずれかから取得されたPIDでオペレーティング・システムのkill -9
に相当するコマンドを使用します。
アプリケーションの現在の状態を確立する必要がある場合、CHECK_PROGRAMS
を指定すると、Oracle ClusterwareはCHECK_PROGRAMS
をコールします。それ以外の場合では、Oracle Clusterwareは、PID_FILES
またはEXECUTABLE_NAMES
属性のいずれかから取得されたPIDでオペレーティング・システムのps -p
に相当するコマンドを使用します。
リソースをクリーンアップする場合、CLEAN_PROGRAM
を指定すると、Oracle ClusterwareはCLEAN_PROGRAM
をコールします。それ以外の場合では、Oracle Clusterwareは、PID_FILES
またはEXECUTABLE_NAMES
属性のいずれかから取得されたPIDでオペレーティング・システムのkill -9
に相当するコマンドを使用します。
関連項目:
CRSCTLを使用してリソースを追加する例の詳細は、「crsctl add resource」を参照してください
リソースの状態の詳細は、「リソースの状態」を参照してください