B Oracle Clusterwareのリソース・リファレンス
この付録は、Oracle Clusterwareのリソースに対するリファレンスです。この付録には、リソース属性の説明と使用例、およびリソース属性のアクション・スクリプトの詳細な説明および例が示されています。この付録の内容は次のとおりです。
リソース属性
この項では、アプリケーションをOracle Clusterwareのリソースとして登録する際に使用する属性について説明します。この属性は、次に示すように、crsctl add resourceコマンドで使用します。
$ crsctl add resource resource_name -type resource_type -group group_name
{[-attr "attribute_name='attribute_value', attribute_name='attribute_value'
, ..."] | [-file file_name]}
属性/値ペアは、-attrフラグの後にカンマ区切りのリストとして指定し、各属性の値は一重引用符('')で囲みます。一部のリソース属性は、構成できない読取り専用の属性です。
または、属性/値ペアを含むテキスト・ファイルを作成できます。次に例を示します。
PLACEMENT=favored
HOSTING_MEMBERS=node1 node2 node3
RESTART_ATTEMPTS@CARDINALITYID(1)=0
RESTART_ATTEMPTS@CARDINALITYID(2)=0
FAILURE_THRESHOLD@CARDINALITYID(1)=2
FAILURE_THRESHOLD@CARDINALITYID(2)=4
FAILURE_INTERVAL@CARDINALITYID(1)=300
FAILURE_INTERVAL@CARDINALITYID(2)=500
CHECK_INTERVAL=2
CARDINALITY=2注意:
このような属性の長さは、最大で254文字に制限されています。
この項には次のトピックが含まれます:
構成可能なリソース属性
この項では、アプリケーションをOracle Clusterwareのリソースとして登録する際に構成可能な次のリソース属性について説明します。
注意:
すべての属性の値は小文字で指定する必要があります。属性名はすべて大文字で指定する必要があります。
ACL
リソースの所有者、および様々なオペレーティング・システムのユーザーとグループに付与するアクセス権限を定義します。リソースの所有者には、所有者になるオペレーティング・システム・ユーザーとその権限を定義します。これは、リソースの作成時に構成するオプションの属性です。この属性を構成しない場合、リソースを作成するプロセスのIDに基づいて値が決定されます。リソースの既存の権限に基づいて変更が許可される場合には、属性の値を変更できます。
注意:
owner、pgrp、userおよびgroupを含むすべてのオペレーティング・システムのユーザー名およびユーザー・グループは、クラスタ内のすべてのサーバー上に登録される必要があります。
文字列は次のように指定します。
-
owner: リソースを所有するオペレーティング・システム・ユーザーで、このユーザーの下でアクション・スクリプトまたはアプリケーション固有のエージェントが実行され、続いて所有者の権限を指定します。 -
pgrp: リソース所有者のプライマリ・グループであるオペレーティング・システム・グループです。続いてプライマリ・グループのメンバーの権限を指定します。 -
other: 所有者でもプライマリ・グループのメンバーでもないオペレーティング・システム・ユーザー -
r: リソース、その状態および構成を表示する権限のみを付与する読取りオプション -
w: リソースの属性を変更する権限およびリソースを削除する権限を付与する書込みオプション -
x: リソースを開始、停止および再配置する権限を付与する実行オプション
デフォルトでは、リソースを作成するクライアントのIDはownerです。また、デフォルトでは、root、およびownerに指定されたユーザーは完全な権限を持ちます。ACL属性に次の行を追加することで、必要なオペレーティング・システム・ユーザーおよびオペレーティング・システム・グループに権限を付与できます。
user:user_name:rwx group:group_name:rwx
使用例
ACL=owner:user_1:rwx,pgrp:osdba:rwx,other::r-
前述の例では、リソースの所有者はuser_1で、プライマリ・グループはosdbaです。他のユーザーはリソースを表示することしかできませんが、ユーザーuser_1は、osdbaグループと同様すべての権限を持ちます。
ACTIONS
ACTIONS属性によって、リソース上でOracle Clusterwareが実行可能なアクションおよびこのアクションに対応する権限をリストする、名前の表が宣言されます。ACTIONS属性には、アクションの仕様に関するスペース区切りリストが含まれ、各仕様は次の形式となっています。
-
actionNameは、アクション名です(最大長は32バイトで、US7ASCIIの英数字に対応し、大文字小文字を区別します)。 -
userNameは、当該アクションを実行可能な、オペレーティング・システムのユーザー名です。 -
groupNameは、当該アクションを実行可能な、オペレーティング・システムのグループ名です。
actionName [,user:userName | group:groupName][ ...]
userNameまたはgroupNameを指定しない場合、Oracle Clusterwareでは、誰でも当該アクションにアクセス可能であると想定します。
使用例
次の例によって、複数のアクションが利用可能となります。
ACTIONS='action1 action2,user:user2 action3,group:group1'
AGENT_FILENAME
リソース・タイプがそのリソースを管理するために使用するエージェント・プログラムの完全修飾されたファイル名。すべてのリソース・タイプに、そのリソースを管理するためのエージェント・プログラムが必要です。この属性に値を指定するか、またはベースになるリソース・タイプから値を継承することで、リソース・タイプはエージェント・プログラムを使用できます。Oracle Clusterware 12cには、applicationおよびscriptagentの2つのスクリプト・エージェントが含まれています。Oracle Clusterwareは、非推奨のapplicationリソース・タイプのリソースに対してapplicationスクリプト・エージェントを使用します。この属性のデフォルト値はscriptagentです。
注意:
一度リソースが作成されると、この属性を変更できません。
使用例
AGENT_FILENAME=%Grid_home%/bin/application
AUTO_START
クラスタ・サーバーの再起動後、Oracle Clusterwareによってリソースを自動的に起動するかどうかを示します。AUTO_STARTの有効な値は次のとおりです。
-
always: サーバーが停止したときのリソースの状態に関係なく、サーバーの再起動時にリソースを再起動します。 -
restore: サーバーが停止したときと同じ状態にリソースをリストアします。サーバーが停止する前にTARGETの値がONLINEだった場合、Oracle Clusterwareはリソースの再起動を試行します。 -
never: サーバーが停止したときのリソースの状態に関係なく、Oracle Clusterwareはリソースを再起動しません。
CARDINALITY
リソースまたはリソース・グループを同時に実行できるサーバーの数。これが、リソース・カーディナリティの上限になります。
使用例
CARDINALITY=1
リソースまたはリソース・グループが実行されるように構成されているサーバー・プールに割り当てられるサーバー数とともに、カーディナリティが常に増減するような値を使用することもできます。値は次のとおりです。
CARDINALITY=%CRS_SERVER_POOL_SIZE%
リソースでPLACEMENT=restrictedが指定され、SERVER_POOLS属性を使用する場合にのみ、この値を使用できます。
CARDINALITY_ID
INSTANCE_COUNTリソース・インスタンスごとに異なる整数。
このパラメータの値は1からCARDINALITY*2です。リソース・インスタンスの数は、オンライン再配置(RELOCATE_KIND=online)を使用する場合、またはリソース・インスタンス数を減らす場合にのみ、CARDINALITYの値よりも大きくすることができます。
CHECK_TIMEOUT
チェック・アクションを実行できる最大時間(秒単位)。アクションが指定された時間内に完了しなかった場合、Oracle Clusterwareはエラー・メッセージを戻します。この属性が指定されていない場合または0秒が指定されている場合、Oracle ClusterwareはSCRIPT_TIMEOUT属性の値を使用します。
使用例
CHECK_TIMEOUT=30
CLEAN_TIMEOUT
クリーンアップ・アクションを実行できる最大時間(秒単位)。アクションが指定された時間内に完了しなかった場合、Oracle Clusterwareはエラー・メッセージを戻します。この属性に値が指定されていなかったり、0秒が指定されている場合、Oracle ClusterwareはSTOP_TIMEOUT属性の値を使用します。
使用例
CLEAN_TIMEOUT=30
CRITICAL_RESOURCES
リソース・グループでクリティカルとマークされたリソースのリストを含むリソース・グループ属性。
クリティカル・リソースの空白区切りリストを、リソース・グループのCRITICAL_RESOURCES属性で指定します。ローカルおよびクラスタの両方のリソース・グループ・タイプにこの属性を使用します。type:オプションにリソース・タイプ名を続けて追加することで、指定したタイプのすべてのメンバー・リソースがグループのクリティカル・リソースであることを示すことができます。
例B-1 使用例
CRITICAL_RESOURCES="r1 r2 r3"
CRITICAL_RESOURCES="appvip type:ora.export.type"
DELETE_TIMEOUT
削除アクションを実行できる最大時間(秒単位)。アクションが指定された時間内に完了しなかった場合、Oracle Clusterwareはエラー・メッセージを戻します。この属性に値が指定されていなかったり、0秒が指定されている場合、Oracle ClusterwareはSCRIPT_TIMEOUT属性の値を使用します。
使用例
DELETE_TIMEOUT=30
HOSTING_MEMBERS
リソースのホスティングが可能なクラスタ・サーバーの名前のリストで、スペース区切りで順序付けします。この属性は、管理者管理型を使用し、PLACEMENT属性の値がfavoredまたはrestrictedに設定されている場合にのみ指定する必要があります。アプリケーションをOracle Clusterwareリソースとして登録する際は、かわりにSERVER_POOLS属性を使用します。
注意:
applicationタイプのリソースの場合、Oracle Clusterwareは、汎用サーバー・プールのHOSTING_MEMBERS属性に示されたサーバーを配置の対象とします。
関連項目:
-
汎用サーバー・プールの詳細は、「デフォルト・サーバー・プール」を参照してください。
-
この属性の詳細は、「LOAD」を参照してください。
-
この属性の詳細は、「PLACEMENT」を参照してください。
候補ノード名のリストを取得するには、olsnodesコマンドを実行して、使用しているサーバー名のリストを表示します。
使用例
HOSTING_MEMBERS=server1 server2 server3
MODIFY_TIMEOUT
修正アクションを実行できる最大時間(秒単位)。アクションが指定された時間内に完了しなかった場合、Oracle Clusterwareはエラー・メッセージを戻します。この属性に値が指定されていなかったり、0秒が指定されている場合、Oracle ClusterwareはSCRIPT_TIMEOUT属性の値を使用します。
使用例
MODIFY_TIMEOUT=30
PLACEMENT
Oracle Clusterwareがリソースを起動するクラスタ・サーバーを選択する方法を指定します。有効な値は、balanced、favoredまたはrestrictedです。
PLACEMENT属性をfavoredまたはrestrictedに設定した場合は、SERVER_POOLSおよびHOSTING_MEMBERS属性にも値を割り当てる必要があります。PLACEMENT属性の値をbalancedに設定した場合は、HOSTING_MEMBERS属性を指定する必要はありません。
関連項目:
-
PLACEMENT属性の詳細は、「アプリケーションの配置ポリシー」を参照してください。 -
この属性の詳細は、「HOSTING_MEMBERS」を参照してください。
-
この属性の詳細は、「SERVER_POOLS」を参照してください。
使用例
PLACEMENT=favored
RELOCATE_KIND
リソースが再配置される方法を制御する場合に使用します。オフライン再配置の処理中に、ターゲット・リソース・インスタンスがソース・サーバーで停止され、その後、宛先サーバーで起動されます。オンライン再配置の操作では、リソース・インスタンスをソース・サーバーで停止する前に、宛先サーバーで最初に起動します。start-onlyは、宛先サーバーのリソース・インスタンスを起動しますが、ソース・サーバーのリソース・インスタンスは停止しません。かわりに、再配置が完了すると、エージェントがリソース・インスタンスを停止します。
このパラメータの値として、offline/0、online/1またはstart-only/2を選択できます。
使用例
RELOCATE_KIND=1
RELOCATE_KIND=start-onlySERVER_CATEGORY
ローカル・リソースの場合、local_resourceタイプの定義はカテゴリ認識に拡張されます。すなわち、ローカル・リソースを制限して特定のサーバー・カテゴリに属させることができます。クラスタ・リソースの場合、SERVER_CATEGORY属性の値は、PLACEMENT属性の値で常に機能します。PLACEMENTが制限され、SERVER_CATEGORYが使用されている場合、SERVER_POOLSを*に設定します。PLACEMENTをrestrictedに設定すると、次の属性の1つも設定されるとOracle Clusterwareでは予測されます。
たとえばresource1と呼ばれるリソースはrestrictedの対象のPLACEMENTの値を設定するポリシーを所有でき、SERVER_CATEGORYがHubCategoryに設定されます。このような場合、Oracle Clusterwareによって、HubCategoryに属するサーバー上でのみresource1が実行されます。
PLACEMENTがfavoredに設定され、かつHOSTING_MEMBERS、SERVER_POOLSまたはSERVER_CATEGORYの1つのみが設定されている場合、この値がプリファレンスを示します。HOSTING_MEMBERSが移入されSERVER_POOLSまたはSERVER_CATEGORYの1つが設定されると、HOSTING_MEMBERSによって配置のプリファレンスが示され、SERVER_POOLSまたはSERVER_CATEGORYによって制限が示されます。たとえばora.cluster.vipリソースにPLACEMENTの値をfavoredに設定するポリシーが設定可能で、SERVER_CATEGORYはHubCategoryに設定され、HOSTING_MEMBERSはserver_name1に設定されます。このような場合にOracle Clusterwareは、ora.cluster.vipの配置をHubCategoryにおけるサーバーに限定し、server_name1と呼ばれるサーバーを優先します。
使用例
SERVER_CATEGORY=my_category
SERVER_POOLS
SERVER_POOLSリソース属性の説明です。
特定のリソースが属すことができる、サーバー・プールのスペース区切りリスト。リソースがクラスタ内の任意のサーバー上で動作できる場合は、デフォルト値の*を使用し、リソースがcluster_resourceタイプ以外の場合は、SERVER_POOLS属性のデフォルト値は空白です。この属性の値に*を指定できるのはクラスタ管理者のみです。
-
次に示すように、
SERVER_POOLS属性とともにPLACEMENT属性を使用します。PLACEMENT属性の値をrestrictedまたはfavoredに設定した場合は、リソースのポリシー管理を使用する際にSERVER_POOLS属性にも値を指定する必要があります。 -
PLACEMENTの値をbalancedに設定した場合、SERVER_POOLS=*でないかぎり、リソースは汎用プールおよび空きプールのみで実行されます。
この属性は、配置に関してリソースと1つ以上のサーバー・プールとの間でアフィニティを作成します。また、PLACEMENT属性の値に依存します。
使用例
SERVER_POOLS=pool1 pool2 pool3関連項目:
-
サーバー・プールの詳細は、「ポリシー・ベースのクラスタおよび容量の管理」を参照してください。
クラスタ管理の詳細は、「ロール別管理」を参照してください。
-
この属性の詳細は、「HOSTING_MEMBERS」を参照してください。
-
この属性の詳細は、「PLACEMENT」を参照してください。
START_DEPENDENCIES
リソースを起動する際にOracle Clusterwareで考慮する一連の関係を指定します。特定のリソースが依存する可能性がある、いくつかのリソースおよびリソース・タイプに対して、依存性についてスペース区切りのリストを指定できます。
構文
START_DEPENDENCIES=dependency(resource_set) [dependency(resource_set)] [...]
前述の構文例で、変数は次のように定義されます。
-
dependency: 指定可能な値は、attraction、dispersion、exclusion、hard、pullupおよびweakです。これらの依存性は、それぞれ1回のみ指定できますが、pullupは、複数回指定できます。 -
resource_set: 構成するリソースが依存しているリソース・エンティティ(個々のリソースまたはリソース・タイプのいずれか)をカッコ()で囲み、res1[, res2[, ...]]の形式で指定したカンマ区切りリスト。各リソース・エンティティは次のように定義されます。
[modifier1:[modifier2:]] {resource_name | type:resource_type}
前述の構文例で、
resource_nameは特定のリソースの名前、type:resource_typeは特定のリソース・タイプの名前です。リソース・タイプの前にtypeに指定する必要があり、このtype修飾子はリストで最後のリソース・エンティティである必要があります。必要に応じて、修飾子を指定してリソース・エンティティの依存性をさらに詳細に構成できます。リソース・エンティティに接頭辞として次の修飾子を指定することで、各依存性を変更することができます。
-
attraction([intermediate:]{resource_name|type:resource_type}): 指定した特定のリソースまたは特定のタイプの任意のリソースと同じサーバーでこのリソースを実行する場合、attraction起動依存性を使用します。intermediateを使用すると、INTERMEDIATE状態になっている、このリソースが依存するリソース・エンティティにこのリソースが誘引されることを指定できます。指定しない場合、依存リソースを誘引するには、リソースの状態がONLINEである必要があります。リソースのリソース・タイプに
attraction依存性を指定した場合、依存リソースは、指定したタイプの任意のリソースに誘引されます。 -
exclusion([[preempt_pre: | preempt_post:]]target_resource_name| type:target_resource_type]):exclusion起動依存性を使用して、この依存性のあるリソースが同じノードで動作することを回避します。ソース・リソースを起動する前に、
preempt_pre修飾子を使用して、指定されたターゲット・リソース、または特定のリソース・タイプによって定義されるリソースを停止するためのexclusion依存性を構成します。ソース・リソースの起動後に
preempt_post修飾子を使用して、指定されたターゲット・リソース、または特定のリソース・タイプによって定義されるリソースを停止し、可能であれば再配置するためのexclusion依存性を構成します。 -
dispersion[:active]([intermediate:][pool:]{resource_name|type:resource_type}): 指定したリソースまたは特定のタイプのリソースとは異なるサーバーで実行するリソースにdispersion起動依存性を指定します。リソースは、サーバーの可用性に応じて、同じサーバーで実行されることがあります。active修飾子を使用してdispersion依存性を構成すると、依存リソースが別のリソースと同じ場所に配置されていて、別のサーバーがオンラインになった場合、Oracle Clusterwareは別サーバーへの依存リソースの再配置を試行します。Oracle Clusterwareは、active修飾子が指定されないかぎり、新しく利用可能になったサーバーへのリソースの再配置を行いません。intermediate修飾子を使用すると、リソースの状態がONLINEまたはINTERMEDIATEのいずれかである場合にOracle Clusterwareで依存リソースを再配置できるように指定できます。指定しない場合、依存リソースを分散するには、リソースの状態がONLINEである必要があります。リソースを別のサーバーではなく、ターゲットとは別のサーバー・プールに配置する場合は、
pool修飾子を使用します。 -
hard([intermediate:][global:][uniform:]{resource_name|type:resource_type}): 特定のリソースまたは特定のタイプのリソースが起動するときにのみあるリソースを起動させる場合、そのリソースにhard起動依存性を指定します。intermediate修飾子を使用すると、依存先リソースの状態がONLINEまたはINTERMEDIATEのいずれかの場合にOracle Clusterwareでこのリソースを起動できるように指定できます。指定しない場合、Oracle Clusterwareでこのリソースを起動するには、リソースの状態がONLINEである必要があります。global修飾子を使用すると、Oracle Clusterwareでこのリソースを起動する条件としてリソースが同じサーバー上に存在する必要がないように指定できます。指定しない場合、Oracle Clusterwareでこのリソースを起動するには、同じサーバー上にリソースが存在する必要があります。uniform修飾子を使用して、リソースBのすべてのインスタンスの起動を試行しますが、最低1つのインスタンスが起動されて依存性を満たす必要があります。リソースのリソース・タイプに
hard依存性を指定した場合は、指定したタイプの任意のリソースが実行されていると、このリソースを起動できます。注意:
hard起動依存性を持つリソースにはpullup起動依存性も定義することをお薦めします。 -
pullup[:always]([intermediate:][global:]{resource_name|type:resource_type}): リソースにpullup起動依存性を指定すると、このリソースは、指定したリソースの起動により起動します。pullupにalways修飾子を使用すると、TARGET属性の値がONLINEまたはOFFLINEのいずれでも、その値に関係なくOracle Clusterwareはこのリソースを起動します。そうでない場合は、always修飾子を指定しないと、このリソース用のTARGET属性の値がONLINEのときにのみ、Oracle Clusterwareはこのリソースを起動します。intermediate修飾子を使用すると、依存先リソースの状態がONLINEまたはINTERMEDIATEのいずれかの場合にOracle Clusterwareでこのリソースを起動できるように指定できます。指定しない場合、Oracle Clusterwareでこのリソースを起動するには、リソースの状態がONLINEである必要があります。global修飾子を使用すると、Oracle Clusterwareでこのリソースを起動する条件として、このリソースの依存先リソースが同じサーバー上に存在する必要がないように指定できます。指定しない場合、Oracle Clusterwareでこのリソースを起動するには、このリソースの依存先リソースが同じサーバー上に存在する必要があります。リソースのリソース・タイプに
pullup依存性を指定した場合、指定したタイプの任意のリソースが起動すると、Oracle Clusterwareはこのリソースを起動できます。注意:
hard起動依存性を持つリソースにはpullup起動依存性も定義することをお薦めします。 -
weak([concurrent:][global:][uniform:]{resource_name|type:resource_type}): 指定したリソースが実行されているかどうかにかかわらず、このリソースを起動する場合、リソースにweak起動依存性を指定します。このリソースの起動を試行すると、このリソースが依存する任意のリソースが実行されていない場合は、それらのリソースの起動も試行されます。concurrent修飾子を使用すると、依存先リソースの起動時にOracle Clusterwareで依存リソースを起動できるように指定できます。concurrentを指定しない場合、Oracle Clusterwareで依存リソースを起動するには、リソースの起動が完了している必要があります。global修飾子を使用すると、Oracle Clusterwareで依存リソースを起動する条件としてリソースが同じサーバー上に存在する必要がないことを指定できます。uniform修飾子を使用すると、リソースを実行可能なすべての場所でそのリソースのすべてのインスタンスを起動できます。修飾子を指定しない場合(デフォルトの場合)、リソースは、依存先リソースと同じサーバー上で起動します。リソースのリソース・タイプに
weak起動依存性を指定した場合は、指定したタイプの任意のリソースが実行されていると、このリソースを起動できます。
-
関連項目:
起動依存性の詳細は、「起動依存性」を参照してください。
START_TIMEOUT
startアクションを実行できる最大時間(秒単位)。アクションが指定された時間内に完了しなかった場合、Oracle Clusterwareはエラー・メッセージを戻します。この属性に値が指定されていなかったり、0秒が指定されている場合、Oracle ClusterwareはSCRIPT_TIMEOUT属性の値を使用します。
使用例
START_TIMEOUT=30
関連項目:
この属性の詳細は、「SCRIPT_TIMEOUT」を参照してください。
STOP_DEPENDENCIES
リソースを停止する際にOracle Clusterwareで考慮する一連の関係を指定します。
構文
STOP_DEPENDENCIES=dependency(resource_set) [dependency(resource_set)] ...
前述の構文例で、変数は次のように定義されます。
-
dependency: 指定可能な値はhardのみです。 -
resource_set: 構成するリソースが依存しているリソース・エンティティ(個々のリソースまたはリソース・タイプのいずれか)をres1[, res2[, ...]]の形式で指定したカンマ区切りリスト。各リソース・エンティティは次のように定義されます。
[modifier1:[modifier2:][modifier3:]] resource_name | type:resource_type
前述の構文例で、
resource_nameは特定のリソースの名前、type:resource_typeは特定のリソース・タイプの名前です。リソース・タイプの前にはtype:と記述する必要があります。必要に応じて、修飾子を指定してリソース・エンティティの依存性をさらに詳細に構成できます。リソース・エンティティに接頭辞として次の修飾子を指定することで、各依存性を変更することができます。
hard([intermediate:][global:][shutdown:]{resource_name|type:resource_type}): 指定したリソースまたは特定のリソース・タイプのリソースが停止した場合に停止させるリソースにhard停止依存性を指定します。intermediateを使用すると、リソースの状態がONLINEまたはINTERMEDIATEのいずれかである場合に依存リソースの状態をONLINEのままにできるように指定できます。指定しない場合、リソースの状態がONLINEでないかぎり、Oracle Clusterwareは依存リソースを停止します。globalを使用すると、クラスタ内の任意のノード上にあるリソースの状態がONLINEの場合に、依存リソースの状態がONLINEのままになるように指定できます。指定しない場合、同じサーバー上にあるリソースがオフラインになると、Oracle Clusterwareは依存リソースを停止します。shutdownを使用すると、Oracle Clusterwareスタックが停止する場合にこの依存性を適用します。これは、個々のリソースの計画済または計画外イベントには影響を及ぼすことなく、スタックを停止するときにリソースの停止順序に影響を与える便利な方法です。この依存性は、shutdown修飾子とともに使用されると、リソースが直接停止されてもスタックが停止している場合にのみ有効になりません。
関連項目:
停止依存性の詳細は、「停止依存性」を参照してください。
STOP_TIMEOUT
stopまたはcleanアクションを実行できる最大時間(秒単位)。アクションが指定された時間内に完了しなかった場合、Oracle Clusterwareはエラー・メッセージを戻します。この属性が指定されていない場合または0秒が指定されている場合、Oracle ClusterwareはSCRIPT_TIMEOUT属性の値を使用します。
使用例
STOP_TIMEOUT=30
関連項目:
-
この属性の詳細は、「SCRIPT_TIMEOUT」を参照してください。
-
この属性の詳細は、「START_TIMEOUT」を参照してください。
UPTIME_THRESHOLD
UPTIME_THRESHOLDの値は、Oracle Clusterwareがリソースが安定しているとみなすまでに、リソースが稼働中である必要がある時間の長さを表します。UPTIME_THRESHOLD属性の値を設定すると、リソースの安定性を示すことができます。
この属性の値は、数値の後に秒(s)、分(m)、時間(h)、日(d)または週(w)を示す文字を付けて入力します。たとえば、7hという値は、稼働時間のしきい値が7時間であることを示します。
Oracle Clusterwareは、UPTIME_THRESHOLDに指定した時間が経過すると、停止、起動、再配置または障害のようなリソース状態が変更されるイベントが次に発生したときに、RESTART_COUNTの値を0にリセットします。RESTART_COUNTの値がRESTART_ATTEMPTSに設定した値に達すると、Oracle Clusterwareはアラートを生成します。カウンタは、次回リソースの障害発生時や再起動時に、効果的にリセットされます。しきい値は、再起動がカウントされて破棄される時間の長さを示しています。しきい値に達してリソースが失敗すると、再起動されます。
注意:
RESTART_COUNTの値がRESTART_ATTEMPTSに設定した値に達すると、Oracle Clusterwareはクラスタウェア・アラート・ログ・ファイルにアラートを記録します。
関連項目:
-
この属性の詳細は、「RESTART_ATTEMPTS」を参照してください。
-
この属性の詳細は、「RESTART_COUNT」を参照してください。
読取り専用のリソース属性
次の属性は、特定のリソースに対してcrsctl status resourceコマンドを実行すると参照できます。Oracle Clusterwareは、ユーザーがリソースを登録した際にこれらの属性を設定します。
RESOURCE_LIST
リソース・グループに属しているリソースのリスト。リソースがグループに追加されると、Oracle Clusterwareはこの属性に値を移入して更新します。
この属性をリソース・グループとともに使用します。
STATE
Oracle Clusterwareからレポートされるとリソースの現在の状態が反映される、内部的に管理される属性です。リソースの状態は次のいずれかです。
-
ONLINE: リソースはオンラインで、リソースの監視が有効です(「CHECK_INTERVAL」を参照)。 -
OFFLINE: リソースはオフラインで、オフラインのリソースの監視が構成されている場合は、それのみが有効です(「OFFLINE_CHECK_INTERVAL」を参照)。 -
INTERMEDIATE: リソースは部分的にオンラインであるか、前にオンラインであることが認識されているものの、それ以降の状態確認の試行が失敗しています。リソースの監視は有効です(「CHECK_INTERVAL」を参照)。 -
UNKNOWN: リソースは管理不可能で、現在の状態は不明であるため、手動操作を行ってその操作を再開する必要があります。この状態のリソースは監視されません。
STATE_DETAILS
内部的に管理される読取り専用の属性の1つです。リソースの状態の詳細が設定されています。
リソースの4つの状態(ONLINE、OFFLINE、UNKNOWNおよびINTERMEDIATE)は、マウント、アンマウント、オープンなどの異なるリソース固有の値にマッピングされることがあります。リソース・エージェントの開発者は、STATE_DETAILS属性を使用して、リソースとリソースの状態とのマッピングに関する詳細な説明を提供できます。
詳細の提供は任意です。詳細が提供されない場合、Oracle Clusterwareは、予想される4つのリソースの状態のみを使用します。また、エージェントがこれらの詳細を提供できない場合(リソースの状態の値に対しても発生する可能性がある)、Oracle Clusterwareはこの属性の値を設定して、リソースが現在の状態になった理由を示す最小限の詳細情報を提供します。
TYPE
リソースの作成時に示されるリソースのタイプ。この属性は、リソースの作成時に指定する必要があり、リソースの作成後には変更できません。
関連項目:
リソース・タイプの詳細は、「Oracleクラスタウェアのリソース・タイプ」を参照してください。
サード・パーティ製アプリケーションのアクション・スクリプトの例
この項では、スクリプト・エージェントを使用するサード・パーティ製アプリケーションの例を示します。
例B-2に、Apache Webサーバーをフェイルオーバーするアクション・スクリプトを示します。
例B-2 Apacheアクション・スクリプト
#!/bin/sh
HTTPDCONFLOCATION=/etc/httpd/conf/httpd.conf
WEBPAGECHECK=http://<MyVIP>:80/icons/apache_pb.gif
case $1 in
'start')
/usr/sbin/apachectl -k start -f $HTTPDCONFLOCATION
RET=$?
;;
sleep(10)
;;
'stop')
/usr/sbin/apachectl -k stop
RET=$?
;;
'clean')
/usr/sbin/apachectl -k stop
RET=$?
;;
'check')
/usr/bin/wget -q --delete-after $WEBPAGECHECK
RET=$?
;;
*)
RET=0
;;
esac
# 0: success; 1 : error
if [ $RET -eq 0 ]; then
exit 0
else
exit 1
fi
例B-3に、xclockスクリプトを示します。このスクリプトは、すべてのLinuxおよびUNIXプラットフォームでデフォルト・バイナリとして利用できるxclockを使用した簡単なアクション・スクリプトです。
例B-3 xclockアクション・スクリプト
#!/bin/bash
# start/stop/check script for xclock example
# To test this change BIN_DIR to the directory where xclock is based
# and set the DISPLAY variable to a server within your network.
BIN_DIR=/usr/X11R6/bin
LOG_DIR=/tmp
BIN_NAME=xclock
DISPLAY=yourhost.domain.com:0.0
export DISPLAY
exit_code=0
if [ ! -d $BIN_DIR ]
then
echo "start failed"
exit 2
fi
PID1=`ps -ef | grep $BIN_NAME | grep -v grep | grep -v xclock_app | awk '{ print $2 }'`
case $1 in
'start')
if [ "$PID1" != "" ]
then
status_p1="running"
else
if [ -x $BIN_DIR/$BIN_NAME ]
then
umask 002
${BIN_DIR}/${BIN_NAME} & 2>${LOG_DIR}/${BIN_NAME}.log
status_p1="started"
else
echo `basename $0`": $BIN_NAME: Executable not found"
exit_code=1
fi
fi
echo "$BIN_NAME: $status_p1"
exit $exit_code
;;
'stop')
if [ "${PID1}" != "" ]
then
kill -9 ${PID1} && echo "$BIN_NAME daemon killed"
else
echo "$BIN_NAME: no running Process!"
fi
exit $exit_code
;;
'check')
if [ "$PID1" != "" ]
then
echo "running"
exit 0
else
echo "not running"
exit 1
fi
;;*)
echo "Usage: "`basename $0`" {start|stop|check}"
;;
esac
例B-4に、ファイルを監視するエージェントのシェル・スクリプトの例を示します。エージェントは、起動するとファイル(属性を使用して指定されるファイル)を作成し、停止するとファイルを削除します。CHECKアクションは、ファイルが存在するかどうかを単にチェックするものです。接頭辞_CRS_を持つ変数は、環境のスクリプトに指定する属性値です。
例B-4 アクション・スクリプトの例
#!/bin/sh
TOUCH=/bin/touch
RM=/bin/rm
PATH_NAME=/tmp/$_CRS_NAME
#
# These messages go into the CRSD agent log file.
echo " ******* `date` ********** "
echo "Action script '$_CRS_ACTION_SCRIPT' for resource[$_CRS_NAME] called for action $1"
#
case "$1" in
'start')
echo "START entry point has been called.."
echo "Creating the file: $PATH_NAME"
$TOUCH $PATH_NAME
exit 0
;;
'stop')
echo "STOP entry point has been called.."
echo "Deleting the file: $PATH_NAME"
$RM $PATH_NAME
exit 0
;;
'check')
echo "CHECK entry point has been called.."
if [ -e $PATH_NAME ]; then
echo "Check -- SUCCESS"
exit 0
else
echo "Check -- FAILED"
exit 1
fi
;;
'clean')
echo "CLEAN entry point has been called.."
echo "Deleting the file: $PATH_NAME"
$RM -f $PATH_NAME
exit 0
;;
esac