I am trying to start GG resource on 11gR2 RAC but facing the following problem. Golden Gate software is located on a shared mount point using ACFS
[root@rac1 bin]# ./crsctl start resource ggateapp
CRS-2672: Attempting to start 'mvggatevip' on 'rac2'
CRS-2676: Start of 'mvggatevip' on 'rac2' succeeded
CRS-2672: Attempting to start 'ggateapp' on 'rac2'
CRS-2674: Start of 'ggateapp' on 'rac2' failed
CRS-2679: Attempting to clean 'ggateapp' on 'rac2'
CRS-2681: Clean of 'ggateapp' on 'rac2' succeeded
CRS-2673: Attempting to stop 'mvggatevip' on 'rac2'
CRS-2677: Stop of 'mvggatevip' on 'rac2' succeeded
CRS-2563: Attempt to start resource 'ggateapp' on 'rac2' has failed. Will re-retry on 'rac1' now.
CRS-2672: Attempting to start 'mvggatevip' on 'rac1'
CRS-2676: Start of 'mvggatevip' on 'rac1' succeeded
CRS-2672: Attempting to start 'ggateapp' on 'rac1'
CRS-2674: Start of 'ggateapp' on 'rac1' failed
CRS-2679: Attempting to clean 'ggateapp' on 'rac1'
CRS-2681: Clean of 'ggateapp' on 'rac1' succeeded
CRS-2673: Attempting to stop 'mvggatevip' on 'rac1'
CRS-2677: Stop of 'mvggatevip' on 'rac1' succeeded
CRS-2632: There are no more servers to try to place resource 'ggateapp' on that would satisfy its placement policy
CRS-4000: Command Start failed, or completed with errors.
Find the below action script used for the same
#!/bin/sh
GGS_HOME=/GG
#DBFS_MOUNT_POINT=<DBFS mount point, e.g. /mnt/dbfs>
#DBFS_FILE_SYSTEM=<DBFS file system, e.g. /mnt/dbfs/dbfs_fs>
#specify delay after start before checking for successful start
start_delay_secs=5
#Include the GoldenGate home in the library path to start GGSCI
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GGS_HOME}
#set the oracle home to the database to ensure GoldenGate will get the
#right environment settings to be able to connect to the database
export ORACLE_HOME=/db/oracle/product/11.2.0/db_1
#check_process validates that a manager process is running at the PID
#that GoldenGate specifies.
check_process () {
if ( [ -f "${GGS_HOME}/dirpcs/MGR.pcm" ] )
then
pid=`cut -f8 "${GGS_HOME}/dirpcs/MGR.pcm"`
if [ ${pid} = `ps -e |grep ${pid} |grep mgr |cut -d " " -f2` ]
then
#manager process is running on the PID . exit success
exit 0
else
if [ ${pid} = `ps -e |grep ${pid} |grep mgr |cut -d " " -f1` ]
then
#manager process is running on the PID . exit success
exit 0
else
#manager process is not running on the PID
exit 1
fi
fi
else
#manager is not running because there is no PID file
exit 1
fi
}
#call_ggsci is a generic routine that executes a ggsci command
call_ggsci ()
{
ggsci_command=$1
ggsci_output=`${GGS_HOME}/ggsci << EOF
${ggsci_command}
exit
EOF`
}
#mount_dbfs will mount the DBFS file system if it has not yet been mounted
#mount_dbfs () {
#if ( [ ! -d ${DBFS_FILE_SYSTEM} ] )
#then
#this assumes the DBFS mount point was added to fstab
#will not mount automatically upon reboot because fuse does not
#support this; use Oracle wallet for automatic DBFS database login
#mount ${DBFS_MOUNT_POINT}
#fi
#}
##unmount_dbfs will unmount the DBFS file system
#unmount_dbfs () {
#if ( [ -d ${DBFS_FILE_SYSTEM} ] )
#then
#fusermount -u ${DBFS_MOUNT_POINT}
#fi
#}
#case $1 in
#'start')
##mount the DBFS file system if it is not yet mounted
#mount_dbfs
start manager
call_ggsci 'start manager'
#there is a small delay between issuing the start manager command
#and the process being spawned on the OS . wait before checking
sleep ${start_delay_secs}
#check whether manager is running and exit accordingly
check_process
;;
'stop')
#attempt a clean stop for all non-manager processes
call_ggsci 'stop er *'
#ensure everything is stopped
call_ggsci 'stop er *!'
#stop manager without (y/n) confirmation
call_ggsci 'stop manager!'
#unmount DBFS
#unmount_dbfs
exit success
exit 0
;;
'check')
#check_process
;;
'clean')
#attempt a clean stop for all non-manager processes
call_ggsci 'stop er *'
#ensure everything is stopped
call_ggsci 'stop er *!'
#in case there are lingering processes
call_gsci 'kill er *'
#stop manager without (y/n) confirmation
call_ggsci 'stop manager!'
#unmount DBFS
#unmount_dbfs
#exit success
exit 0
;;
'abort')
#ensure everything is stopped
call_ggsci 'stop er *!'
#in case there are lingering processes
call_gsci 'kill er *'
#stop manager without (y/n) confirmation
call_ggsci 'stop manager!'
#unmount DBFS
#unmount_dbfs
#exit success
exit 0
;;
esac
Edited by: Bhavi Savla on Sep 25, 2012 11:24 AM