Categories: Oracle

【Oracle】Racのインスタンスと連動したリソースをOracle Clusterwareに登録する

前回の【Oracle】EnterpriseManagerを自動起動するようClusterwareに組み込むでリソースを登録すると、

どのノードでインスタンスが起動してようが、してなかろうが問答無用にリソースが起動する。

しかし、今回はインスタンスが立ち上がっているノードでのみリソースを起動して欲しかった。

Racをポリシーベースで使っていると、どこのノードでどのインスタンスが上がってくるかわからない。

その状態で、インスタンスが立ち上がったらそのノードにあわせてリソースを起動するようにしたメモ。

リソース仕様

・インスタンスが起動しているノードでのみ起動される

・インスタンスが起動しているのが前提で起動される

・30秒間隔でチェック

・実行ユーザはoracleユーザ

環境

・Oracle RAC 11g R2
・RACの管理方法はポリシーベース管理
・3ノード中、2ノードがアクティブで1ノードはスタンバイてきな感じで使われる環境です
・インスタンス名はapp
・サーバプール名はhogePool

登録方法

仕様でoracleユーザで実行する必要があるので以下をoracleユーザで実行する。

/u01/app/11.2.0/grid/bin/crsctl add resource hoge.app -type cluster_resource -attr "
ACTION_SCRIPT=/home/oracle/scripts/hoge.sh,
CHECK_INTERVAL=30,
SCRIPT_TIMEOUT=60,
RESTART_ATTEMPTS=2,
CARDINALITY=2,
START_DEPENDENCIES=attraction(intermediate:ora.app.db) pullup(ora.app.db),
STOP_DEPENDENCIES=hard(shutdown:ora.app.db),
ACL='owner:oracle:rwx,pgrp:oinstall:rwx,other::r--,group:oinstall:r-x,user:oracle:rwx',
SERVER_POOLS=ora.hogePool,
PLACEMENT=restricted,
AUTO_START=restore"

今回はクラスタリソースとして登録するので-type cluster_resourceを指定している。

同じくクラスタリソースであるappインスタンスの状態をみて、リソースを操作する必要があるのでcluster_resourceなんです。

ACTION_SCRIPTには実行するスクリプトを指定。

CHECK_INTERVALはリソースのチェック間隔。スクリプトのcheckが呼ばれます。

SCRIPT_TIMEOUTはタイムアウトの指定。

RESTART_ATEMPTSは今回、2回リソースの再起動を試みます。

CARDINALITYを2に指定することで、2ノードでしか動かさないように限定している。

START_DEPENDENCIESはappインスタンスが立ち上がるのと連動してリソースを起動させるように設定している

STOP_DEPENDENCIESはappインスタンスが落ちるのに連動してリソースも停止させるようにしてます。

ACLはリソースの所有者や実行権限などを設定してます。

PLACEMENT=restrictedを指定することで起動する状態をポリシーベースのポリシーに依存させることが出来る。

なお、restrictedを指定した場合はSERVER_POOLSでサーバプールの指定が必要なためora.hogePoolを指定している。

AUTO_START=restoreを指定することでサーバーが停止したときと同じ状態にリソースをリストアします。

以上でリソースを登録した後は、以下でリソースを起動させてあげる。

crsctl start res hoge.app

いい感じに起動出来てるのを確認する。

$ crsctl stat res hoge.app -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
hoge.app
      1        ONLINE  ONLINE       ora01
      2        ONLINE  ONLINE       ora02

これでインスタンスに合わせてリソースも起動してくれることでしょう。

mogmet

View Comments

Share
Published by
mogmet