日本語PDF

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

ACLは、リソースの所有者、および様々なオペレーティング・システムのユーザーとグループに付与するアクセス権限を定義します。リソースの所有者には、所有者になるオペレーティング・システム・ユーザーとその権限を定義します。

これは、リソースの作成時に構成するオプションの属性です。この属性を構成しない場合、リソースを作成するプロセスのIDに基づいて値が決定されます。リソースの既存の権限に基づいて変更が許可される場合には、属性の値を変更できます。

ノート:

ownerpgrpuserおよび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グループと同様すべての権限を持ちます。

ACTION_SCRIPT

アクション・スクリプトのパスおよびファイル名を含む絶対ファイル名。AGENT_FILENAME属性に指定されたエージェントが、ACTION_SCRIPT属性に指定されたスクリプトをコールします。

使用例

ACTION_SCRIPT=fully_qualified_path_to_action_script
ACTION_TIMEOUT

リソース上でOracle Clusterwareによって実行可能な、サポート対象のすべてのアクションに関する単一のタイムアウト値(秒単位)。

使用例

ACTION_TIMEOUT=30
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'
ACTIVE_PLACEMENT

1に設定すると、Oracle Clusterwareは、この属性を使用してクラスタ・サーバーの追加または再起動時にリソースの配置を再評価します。PLACEMENT=favoredのリソースの場合、Oracle Clusterwareは、favoredのサーバーがクラスタに追加されているときにリソースがfavored以外のサーバーで実行されていると、実行中のリソースを再配置することがあります。

使用例

ACTIVE_PLACEMENT=1
AGENT_FILENAME

リソース・タイプがそのリソースを管理するために使用するエージェント・プログラムの完全修飾されたファイル名。すべてのリソース・タイプに、そのリソースを管理するためのエージェント・プログラムが必要です。この属性に値を指定するか、またはベースになるリソース・タイプから値を継承することで、リソース・タイプはエージェント・プログラムを使用できます。Oracle Clusterware 12c以降のリリースには、applicationおよびscriptagentの2つのスクリプト・エージェントが含まれています。Oracle Clusterwareは、非推奨のapplicationリソース・タイプのリソースに対してapplicationスクリプト・エージェントを使用します。この属性のデフォルト値はscriptagentです。

ノート:

一度リソースが作成されると、この属性を変更できません。

使用例

AGENT_FILENAME=%Grid_home%/bin/application
ALERT_TEMPLATE

リソース状態のアラート・メッセージに含めようとする、追加のリソース属性を指定するために使用します。リソース属性に関するスペース区切りのリストとして、属性を指定できます。このような属性は、アラート・メッセージに表示されるために、リソース・タイプからアクセス可能である必要があります。

使用例

ALERT_TEMPLATE="DESCRIPTION HOSTING_MEMBERS"
AUTO_START

クラスタ・サーバーの再起動後、Oracle Clusterwareによってリソースを自動的に起動するかどうかを示します。AUTO_STARTの有効な値は次のとおりです。

  • always: サーバーが停止したときのリソースの状態に関係なく、サーバーの再起動時にリソースを再起動します。

  • restore: サーバーが停止したときと同じ状態にリソースをリストアします。サーバーが停止する前にTARGETの値がONLINEだった場合、Oracle Clusterwareはリソースの再起動を試行します。

  • never: サーバーが停止したときのリソースの状態に関係なく、Oracle Clusterwareはリソースを再起動しません。

CARDINALITY

リソースまたはリソース・グループを同時に実行できるサーバーの数。これが、リソース・カーディナリティの上限になります。

使用例

CARDINALITY=1

リソースまたはリソース・グループが実行されるように構成されているサーバー・プールに割り当てられるサーバー数とともに、カーディナリティが常に増減するような値を使用することもできます。値は、次のとおりです。

CARDINALITY=%CRS_SERVER_POOL_SIZE%
CARDINALITY=%CRS_HUB_SIZE%

リソースでPLACEMENT=restrictedが指定され、SERVER_POOLS属性を使用する場合にのみ、この値を使用できます。

CARDINALITY_ID

INSTANCE_COUNTリソース・インスタンスごとに異なる整数。

このパラメータの値は1からCARDINALITY*2です。リソース・インスタンスの数は、オンライン再配置(RELOCATE_KIND=online)を使用する場合、またはリソース・インスタンス数を減らす場合にのみ、CARDINALITYの値よりも大きくすることができます。

CHECK_INTERVAL

checkアクションの実行を繰り返す時間間隔(秒単位)。間隔を短くするとより頻繁にチェックできますが、スクリプト・エージェントを使用するとリソースの消費も増大します。リソースの消費を低減するには、アプリケーション固有のエージェントを使用します。

使用例

CHECK_INTERVAL=60
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
DESCRIPTION

追加するリソースの説明を入力します。

使用例

DESCRIPTION=Apache Web server
ENABLED

Oracle Clusterwareは、この属性を使用してリソースの状態を管理します。Oracle Clusterwareは、直接的にも、別のリソースへの依存性による場合にも無効(ENABLED=0)になっているリソースの管理は試行しません。無効になっているリソースを起動することはできませんが、停止することはできます。Oracle Clusterwareは、無効なリソースをアクティブに監視せず、つまり、Oracle Clusterwareは無効なリソースの状態をチェックしません。

使用例

ENABLED=1
FAILURE_INTERVAL

リソースがFAILURE_THRESHOLD属性で指定した障害の回数を超えた場合にOracle Clusterwareがリソースを停止するまでの間隔(秒単位)。値が0(ゼロ)の場合、障害の追跡は無効になります。

使用例

FAILURE_INTERVAL=30
FAILURE_THRESHOLD

リソースに指定されたFAILURE_INTERVAL内で検出される障害の数で、この値を超えると、Oracle Clusterwareがリソースを使用不可としてマーク付けし、そのリソースの監視を停止します。指定した回数の障害がリソースで発生すると、Oracle Clusterwareはそのリソースを停止します。値が0(ゼロ)の場合、障害の追跡は無効になります。最大値は20です。

使用例

FAILURE_THRESHOLD=3
HOSTING_MEMBERS

リソースのホスティングが可能なクラスタ・サーバーの名前のリストで、スペース区切りで順序付けします。この属性は、管理者管理型を使用し、PLACEMENT属性の値がfavoredまたはrestrictedに設定されている場合にのみ指定する必要があります。アプリケーションをOracle Clusterwareリソースとして登録する際は、かわりにSERVER_POOLS属性を使用します。

ノート:

applicationタイプのリソースの場合、Oracle Clusterwareは、汎用サーバー・プールのHOSTING_MEMBERS属性に示されたサーバーを配置の対象とします。

関連項目:

候補ノード名のリストを取得するには、olsnodesコマンドを実行して、使用しているサーバー名のリストを表示します。

使用例

HOSTING_MEMBERS=server1 server2 server3
INSTANCE_FAILOVER

CLUSTER_RESOURCEタイプのリソースには、INSTANCE_FAILOVER属性を使用します。この属性を使用すると、障害が発生したサーバーからのリソース・インスタンスのフェイルオーバーを拒否できます。これによって、特定のサーバーにリソースを結合できます。

0を設定して、インスタンス・フェイルオーバーを無効にします。

使用例

INSTANCE_FAILOVER=1
INTERMEDIATE_TIMEOUT

リソースに障害が発生したと宣言される前に、リソースがINTERMEDIATE状態のままである最大時間を(秒単位)表示します。INTERMEDIATE_TIMEOUTの値が有効となるには、0よりも大きいものである必要があります。

使用例

INTERMEDIATE_TIMEOUT=60
LOAD

Oracle Clusterwareは、PLACEMENT属性の値とともにこの属性の値を解析します。PLACEMENTの値がbalancedの場合は、LOADの値によってリソースの最適な配置場所が決定されます。これは、リソースの1つのインスタンスが消費するサーバー容量を、他のリソースとの相対値として数量的に示す負以外の数値です。Oracle Clusterwareは、実行中のリソースによる負荷の合計が最小のサーバーにリソースの配置を試行します。

使用例

LOAD=1
MODIFY_TIMEOUT

修正アクションを実行できる最大時間(秒単位)。アクションが指定された時間内に完了しなかった場合、Oracle Clusterwareはエラー・メッセージを戻します。この属性に値が指定されていなかったり、0秒が指定されている場合、Oracle ClusterwareはSCRIPT_TIMEOUT属性の値を使用します。

使用例

MODIFY_TIMEOUT=30
NAME

リソースの名前を示す英数字の文字列で、大/小文字が区別されます。ネーミング規則として、名前の先頭を英数字の接頭辞(myApacheなど)にし、末尾をリソースについて説明する識別子にすることをお薦めします。リソース名には、プラットフォームでサポートされているすべての文字(感嘆符(!)およびチルダ(~)を除く)を使用できます。リソース名の先頭をピリオド(.)またはoraという文字列にすることはできません。

使用例

NAME=myApache
OFFLINE_CHECK_INTERVAL

リソースのオフライン監視を制御します。値は、リソースの状態がOFFLINEの場合に、Oracle Clusterwareがそのリソースを監視する時間間隔(秒単位)を表します。値が0の場合、監視は無効になります。

使用例

OFFLINE_CHECK_INTERVAL=30
ONLINE_RELOCATION_TIMEOUT

再配置されたインスタンスが起動されサービスが移行されてから、前のサービス・インスタンスが停止されるまでの時間(分)。デフォルト値は、30分です。

関連項目:

PLACEMENT

Oracle Clusterwareがリソースを起動するクラスタ・サーバーを選択する方法を指定します。有効な値は、balancedfavoredまたはrestrictedです。

PLACEMENT属性をfavoredまたはrestrictedに設定した場合は、SERVER_POOLSおよびHOSTING_MEMBERS属性にも値を割り当てる必要があります。PLACEMENT属性の値をbalancedに設定した場合は、HOSTING_MEMBERS属性を指定する必要はありません。

関連項目:

使用例

PLACEMENT=favored
RELOCATE_KIND

リソースが再配置される方法を制御する場合に使用します。オフライン再配置の処理中に、ターゲット・リソース・インスタンスがソース・サーバーで停止され、その後、宛先サーバーで起動されます。オンライン再配置の操作では、リソース・インスタンスをソース・サーバーで停止する前に、宛先サーバーで最初に起動します。start-onlyは、宛先サーバーのリソース・インスタンスを起動しますが、ソース・サーバーのリソース・インスタンスは停止しません。かわりに、再配置が完了すると、エージェントがリソース・インスタンスを停止します。

このパラメータの値として、offline/0online/1またはstart-only/2を選択できます。

使用例

RELOCATE_KIND=1
RELOCATE_KIND=start-only
RELOCATE_BY_DEPENDENCY

再配置が要求されたリソースへの依存関係のため、リソースの再配置が要求された場合に、この再配置が可能かどうかを宣言するために使用します。0の場合、再配置が要求されたリソースへの依存関係のため、このリソースの再配置は許可されません。有効値は1または0です。

使用例

RELOCATE_BY_DEPENDENCY=1
RESTART_ATTEMPTS

Oracle Clusterwareが、リソースの再配置を試行する前に、リソースの現行のサーバー上でリソースの再起動を試行する回数。1の値を指定した場合、Oracle Clusterwareはサーバー上でリソースの再起動を1回のみ試行します。2回失敗すると、Oracle Clusterwareの再配置が試行されます。0の値を指定した場合、再起動は試行されませんが、Oracle Clusterwareは常時、別のサーバーへのリソースのフェイルオーバーを試行します。

使用例

RESTART_ATTEMPTS=2
SCRIPT_TIMEOUT

アクションを実行する最大時間(秒単位)。アクション・スクリプトが指定された時間内に完了しなかった場合、Oracle Clusterwareはエラー・メッセージを戻します。このタイムアウトは、すべてのアクション(startstopcheckおよびclean)に適用されます。

使用例

SCRIPT_TIMEOUT=45
SERVER_CATEGORY

ローカル・リソースの場合、local_resourceタイプの定義はカテゴリ認識に拡張されます。すなわち、ローカル・リソースを制限して特定のサーバー・カテゴリに属させることができます。クラスタ・リソースの場合、SERVER_CATEGORY属性の値は、PLACEMENT属性の値で常に機能します。PLACEMENTが制限され、SERVER_CATEGORYが使用されている場合、SERVER_POOLS*に設定します。PLACEMENTrestrictedに設定すると、次の属性の1つも設定されるとOracle Clusterwareでは予測されます。

たとえばresource1と呼ばれるリソースはrestrictedの対象のPLACEMENTの値を設定するポリシーを所有でき、SERVER_CATEGORYHubCategoryに設定されます。このような場合、Oracle Clusterwareによって、HubCategoryに属するサーバー上でのみresource1が実行されます。

PLACEMENTfavoredに設定され、かつHOSTING_MEMBERSSERVER_POOLSまたはSERVER_CATEGORYの1つのみが設定されている場合、この値がプリファレンスを示します。HOSTING_MEMBERSが移入されSERVER_POOLSまたはSERVER_CATEGORYの1つが設定されると、HOSTING_MEMBERSによって配置のプリファレンスが示され、SERVER_POOLSまたはSERVER_CATEGORYによって制限が示されます。たとえばora.cluster.vipリソースにPLACEMENTの値をfavoredに設定するポリシーが設定可能で、SERVER_CATEGORYHubCategoryに設定され、HOSTING_MEMBERSserver_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

関連項目:

START_CONCURRENCY

同時に実行可能なアクションの最大数を説明しています。0を指定すると、上限は設定されません。

使用例

START_CONCURRENCY=10
START_DEPENDENCIES

リソースを起動する際にOracle Clusterwareで考慮する一連の関係を指定します。特定のリソースが依存する可能性がある、いくつかのリソースおよびリソース・タイプに対して、依存性についてスペース区切りのリストを指定できます。

構文

START_DEPENDENCIES=dependency(resource_set) [dependency(resource_set)] [...]

前述の構文例で、変数は次のように定義されます。

  • dependency: 指定可能な値は、attractiondispersionexclusionhardpullupおよび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起動依存性を指定すると、このリソースは、指定したリソースの起動により起動します。

      pullupalways修飾子を使用すると、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_CONCURRENCY

同時に停止可能なアクションの最大数を説明しています。0を指定すると、上限は設定されません。

使用例

STOP_CONCURRENCY=10
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を参照してください。

USER_WORKLOAD

What-If分析に関して、リソースがワークロードの生成リソースであるかどうかを示すために使用します。使用可能な値はyesまたはnoです。

使用例

USER_WORKLOAD=yes
USE_STICKINESS

可能な場合はリソースが最後に実行された場所で実行され、そうでない場合に適用されるロード・バランシングを許可しないことを示すために使用します。1に設定すると、Oracle Clusterwareは、最後に動作したリソースの開始を試行します。USE_STICKINESSの無効化によっても、ロード・バランシングを無効化できます。デフォルト値は0です。使用可能な値は、0および1です。

使用例

USE_STICKINESS=1

読取り専用のリソース属性

次の属性は、特定のリソースに対してcrsctl status resourceコマンドを実行すると参照できます。Oracle Clusterwareは、ユーザーがリソースを登録した際にこれらの属性を設定します。

ACTION_FAILURE_EVENT_TEMPLATE

これは、ora.*リソース用に内部的に管理される属性の1つです。この属性を編集することはできません。

INSTANCE_COUNT

INSTANCE_COUNT属性は内部的に管理されている属性で、これにはリソースが現在所有しているインスタンス数が含まれています。

INTERNAL_STATE

現在ポリシー・エンジンがリソースで実行しているアクション(ある場合)について説明する、内部的に管理される読取り専用の属性です。

指定可能な値とその説明は、次のとおりです。

  • STARTING: ポリシー・エンジンは、現在リソースを起動しています。

  • STOPPING: ポリシー・エンジンは、現在リソースを停止しています。

  • CLEANING: ポリシー・エンジンは、現在リソースをクリーンアップしています。

  • STABLE: ポリシー・エンジンは、現在リソースでアクションを実行していません

    ただし、その他のいくつかのコマンドの一環として、そのリソースがまだロックされている可能性があります。

LAST_SERVER

cluster_resourceタイプのリソースの場合、内部的に管理される読取り専用の属性の1つで、ソースのstartアクションが最後に成功したサーバーの名前が設定されています。

local_resourceタイプのリソースの場合、リソース・インスタンスが固定されるサーバーの名前です。

LAST_STATE_CHANGE

ポリシー・エンジンがリソースの現在の状態を登録した時点について説明する、内部的に管理される読取り専用の属性です。これは、CRSDの再起動時に発生する、リソースの状態が変更された時点、またはポリシー・エンジンがその状態を検出した時点のタイムスタンプである場合があります。

PROFILE_CHANGE_EVENT_TEMPLATE

これは、ora.*リソース用に内部的に管理される属性の1つです。この属性を編集することはできません。

RESOURCE_LIST

リソース・グループに属しているリソースのリスト。リソースがグループに追加されると、Oracle Clusterwareはこの属性に値を移入して更新します。

この属性をリソース・グループとともに使用します。

RESTART_COUNT

Oracle Clusterwareデーモンが使用する内部的に管理される属性で、リソース再起動の試行回数を0(ゼロ)からRESTART_ATTEMPTS属性に指定した値までカウントします。この属性を編集することはできません。

STATE

Oracle Clusterwareからレポートされるとリソースの現在の状態が反映される、内部的に管理される属性です。リソースの状態は次のいずれかです。

  • ONLINE: リソースはオンラインで、リソースの監視が有効です(「CHECK_INTERVAL」を参照)。

  • OFFLINE: リソースはオフラインで、オフラインのリソースの監視が構成されている場合は、それのみが有効です(「OFFLINE_CHECK_INTERVAL」を参照)。

  • INTERMEDIATE: リソースは部分的にオンラインであるか、前にオンラインであることが認識されているものの、それ以降の状態確認の試行が失敗しています。リソースの監視は有効です(「CHECK_INTERVAL」を参照)。

  • UNKNOWN: リソースは管理不可能で、現在の状態は不明であるため、手動操作を行ってその操作を再開する必要があります。この状態のリソースは監視されません。

STATE_CHANGE_EVENT_TEMPLATE

これは、ora.*リソース用に内部的に管理される属性の1つです。この属性を編集することはできません。

STATE_DETAILS

内部的に管理される読取り専用の属性の1つです。リソースの状態の詳細が設定されています。

リソースの4つの状態(ONLINEOFFLINEUNKNOWNおよびINTERMEDIATE)は、マウント、アンマウント、オープンなどの異なるリソース固有の値にマッピングされることがあります。リソース・エージェントの開発者は、STATE_DETAILS属性を使用して、リソースとリソースの状態とのマッピングに関する詳細な説明を提供できます。

詳細の提供は任意です。詳細が提供されない場合、Oracle Clusterwareは、予想される4つのリソースの状態のみを使用します。また、エージェントがこれらの詳細を提供できない場合(リソースの状態の値に対しても発生する可能性がある)、Oracle Clusterwareはこの属性の値を設定して、リソースが現在の状態になった理由を示す最小限の詳細情報を提供します。

TARGET

内部用の読取り専用属性の1つで、リソースの望ましい状態について説明します。ただし、crsctl start resource_nameまたはcrsctl stop resource_nameコマンドを使用すると、この属性の値に影響が及ぶ場合があります。

TARGET_SERVER

これは、リソースが起動しているサーバー名を含んでいる、内部管理属性です。この値は、リソースの起動時に関連します。

TYPE

リソースの作成時に示されるリソースのタイプ。この属性は、リソースの作成時に指定する必要があり、リソースの作成後には変更できません。

関連項目:

リソース・タイプの詳細は、Oracleクラスタウェアのリソース・タイプを参照してください。

非推奨のリソース属性

次のリソース属性は、Oracle Clusterware 12cでは非推奨です。

DEGREE

単一サーバー上で実行可能なクラスタ・リソースのインスタンスの数。

サード・パーティ製アプリケーションのアクション・スクリプトの例

この項では、スクリプト・エージェントを使用するサード・パーティ製アプリケーションの例を示します。

例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