Wednesday, August 3, 2011

Oracle OPMN Startup Script

Doing some OIM work and I have a few components that rely on OPMN managed processes to start such as OID, OVD, and OHS. While the processes themselves can be managed from OPMN to start the individual services, a dependency on the EMAgent to be online for this remote control capability exists. So, we have a chicken and egg issue, we need to start a OPMN process in order to remotely manage OPMN processes.

I developed this script to run on redhat boxes to automatically start/stop OPMN processes within the init process. Please note, it starts all processes and you must modify some of the environment variables before you use it yourself. Otherwise, enjoy!

#!/bin/sh
# Startup script for all opmn components

ORA_BASE=/u01/app/oracle
ORA_INSTANCE=/u01/app/oracle/admin/oid_inst1
ORA_OWNER=oracle

case "$1" in
'start')
#Start all opmn components
su - $ORA_OWNER -c "$ORA_INSTANCE/bin/opmnctl startall"
;;
'stop')
#stop all opmn components
su - $ORA_OWNER -c "$ORA_INSTANCE/bin/opmnctl stopall"
;;
'restart')
#stop then start
su - $ORA_OWNER -c "$ORA_INSTANCE/bin/opmnctl stopall"
su - $ORA_OWNER -c "$ORA_INSTANCE/bin/opmnctl startall"
esac
exit $RETVAL

2 comments:

  1. Thanks for this, it saved me some time writing one from scratch. One question, what is the purpose of the ORA_BASE variable, it seems not to be used

    ReplyDelete
  2. ORA_INSTANCE should be $ORA_BASE/admin/oid_inst1, but for whatever reason I automatically expand my variable references while typing.

    Glad it could be helpful :)

    ReplyDelete