揮発性のメモ2

http://d.hatena.ne.jp/iww/

Cluster Ready Service が起動しないとき

Apr 19 09:25:20 oracle01 logger: (Oracle CRSD is running. CRSD must be terminated before another CRSD can be started) 
Apr 19 09:25:20 oracle01 su(pam_unix)[3404]: session opened for user oracle by (uid=0)
Apr 19 09:25:20 oracle01 su(pam_unix)[3404]: session closed for user oracle
Apr 19 09:25:20 oracle01 logger: (Oracle CRSD is running. CRSD must be terminated before another CRSD can be started) 
Apr 19 09:25:20 oracle01 init: Id "h3" respawning too fast: disabled for 5 minutes

init.crsdは起動時にときどき死ぬが、そのときにPIDファイルが残っていて再起動が必ずコケる。Oracleの二重のバグ。


init.crsdの起動オプションは3つ

  • start 起動するフラグを立てる(/etc/init.d/init.crsから)
  • stop 停止する(/etc/init.d/init.crsから)
  • run 起動する(/etc/inittab から)

startを実施すると、再起動フラグが立つ。


CRSの本体はinittabで起動する

h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null
h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null
h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null

init.crsd runは、起動時にPIDファイルを確認し、存在すれば(すでに起動していると判断し)エラーを吐いて終了する。
このとき、再起動フラグが立っていたら起動済みのinit.crsdを殺し、PIDファイルも消し、次のinit.crsd runで正常に起動するように準備する。

/etc/init.d/init.crsd stop
/etc/init.d/init.crsd start

最長で5分くらい待てば正常に起動する。はず。