前回の【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
これでインスタンスに合わせてリソースも起動してくれることでしょう。
こんにちは。virapture…
View Comments
Your point of view caught my eye and was very interesting. Thanks. I have a question for you. https://www.binance.com/sl/register?ref=S5H7X3LP
I may need your help. I tried many ways but couldn't solve it, but after reading your article, I think you have a way to help me. I'm looking forward for your reply. Thanks.
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me? https://www.binance.com/tr/register?ref=T7KCZASX
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
Your point of view caught my eye and was very interesting. Thanks. I have a question for you.