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に基づいて値が決定されます。リソースの既存の権限に基づいて変更が許可される場合には、属性の値を変更できます。
ノート:
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%
CARDINALITY=%CRS_HUB_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
ONLINE_RELOCATION_TIMEOUT
再配置されたインスタンスが起動されサービスが移行されてから、前のサービス・インスタンスが停止されるまでの時間(分)。デフォルト値は、30分です。
関連項目:
-
オンラインでのデータベースの再配置については、Oracle Real Application Clusters管理およびデプロイメント・ガイド
-
srvctl
relocate
database
については、Oracle Real Application Clusters管理およびデプロイメント・ガイド
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-only
SERVER_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は、ユーザーがリソースを登録した際にこれらの属性を設定します。
INTERNAL_STATE
現在ポリシー・エンジンがリソースで実行しているアクション(ある場合)について説明する、内部的に管理される読取り専用の属性です。
指定可能な値とその説明は、次のとおりです。
-
STARTING
: ポリシー・エンジンは、現在リソースを起動しています。 -
STOPPING
: ポリシー・エンジンは、現在リソースを停止しています。 -
CLEANING
: ポリシー・エンジンは、現在リソースをクリーンアップしています。 -
STABLE
: ポリシー・エンジンは、現在リソースでアクションを実行していませんただし、その他のいくつかのコマンドの一環として、そのリソースがまだロックされている可能性があります。
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