[Oracle] 10g R2 over RHEL6/CentOS6 cannot start standalone cssd after setup css with localconfig add

Blog » Oracle 10g R2 over RHEL6/CentOS6 cannot start standalone cssd after setup css with localconfig add

Post at 07 Mar 2015 06:28

Environment: Oracle 10g R2 over RHEL6/CentOS6
Problem: cssd cannot start after run "localconfig add".
Reason: RHEL6/CentOS6 replace sysvinit with upstart, which will not execute "/etc/init.d/init.cssd run &", so cannot start cssd with "/etc/init.d/init.cssd start".
Solution: Write a new css daemon respawn script instead of inittab setting.

[root@demo cssd]# cat /etc/init/cssd.conf
description "cssd"
author "DBA <dba@oracle.com>"

start on runlevel [35]
stop on runlevel [01246]

chdir /u01/oracle
script
 exec /etc/init.d/init.cssd run >> /u01/oracle/init.cssd.log 2>&1 </dev/null
end script
respawn

[root@demo bin]# initctl reload-configuration
[root@demo bin]# initctl list
rc stop/waiting
tty (/dev/tty3) start/running, process 1477
tty (/dev/tty2) start/running, process 1475
tty (/dev/tty1) start/running, process 1473
tty (/dev/tty6) start/running, process 1483
tty (/dev/tty5) start/running, process 1481
tty (/dev/tty4) start/running, process 1479
cssd start/running, process 12001
plymouth-shutdown stop/waiting
control-alt-delete stop/waiting
rcS-emergency stop/waiting
kexec-disable stop/waiting
quit-plymouth stop/waiting
rcS stop/waiting
prefdm stop/waiting
init-system-dbus stop/waiting
splash-manager stop/waiting
start-ttys stop/waiting
rcS-sulogin stop/waiting
serial stop/waiting

after wrote the article, I found the problem is that 10g is not compatible with upstart, so the /etc/init.d/init.cssd run will not be actually executed. execute init.cssd will start css once. but cannot start css twice. run the following command which in init.cssd will start css.

/bin/su -l oracle -c sh -c 'cd /u01/oracle/app/oracle/product/10.2.0/asm_1/log/demo/cssd;  ulimit -c unlimited; exec /u01/oracle/app/oracle/product/10.2.0/asm_1/bin/ocssd '

delete

[root@demo demo]# $ORACLE_HOME/bin/localconfig delete
Stopping CSSD.
Unable to communicate with the CSS daemon.
Shutdown has begun. The daemons should exit soon.

add

[root@demo demo]# strace -f -o localconfig.trc $ORACLE_HOME/bin/localconfig add
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Configuration for local CSS has been initialized

Adding to inittab
Startup will be queued to init within 90 seconds.
Checking the status of new Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
Giving up: Oracle CSS stack appears NOT to be running.
Oracle CSS service would not start as installed
Automatic Storage Management(ASM) cannot be used until Oracle CSS service is started

alert log

2015-03-07 15:25:43.886
[client(1975)]CRS-1006:The OCR location /u01/oracle/app/oracle/product/10.2.0/asm_1/cdata/localhost/local.ocr is inaccessible. Details in /u10/u01/ora
cle/app/oracle/product/10.2.0/asm_1/log/demo/client/clscfg_1975.log.
2015-03-07 15:25:43.909
[client(1975)]CRS-1006:The OCR location /u01/oracle/app/oracle/product/10.2.0/asm_1/cdata/localhost/local.ocr is inaccessible. Details in /u10/u01/ora
cle/app/oracle/product/10.2.0/asm_1/log/demo/client/clscfg_1975.log.
2015-03-07 15:25:44.054
[client(1975)]CRS-1001:The OCR was formatted using version 2.

clscfg_1975.log

[root@demo client]# cat $ORACLE_HOME/log/demo/client/clscfg_1975.log
Oracle Database 10g CRS Release 10.2.0.1.0 Production Copyright 1996, 2005 Oracle.  All rights reserved.
2015-03-07 15:25:43.855: [  OCROSD][3057743552]utread:3: problem reading buffer 8d44000 buflen 512 retval 0 phy_offset 102400 retry 0
2015-03-07 15:25:43.855: [  OCROSD][3057743552]utread:4: problem reading the buffer errno 2 errstring No such file or directory
2015-03-07 15:25:43.856: [  OCROSD][3057743552]utread:3: problem reading buffer 8d68000 buflen 4096 retval 0 phy_offset 102400 retry 0
2015-03-07 15:25:43.856: [  OCROSD][3057743552]utread:4: problem reading the buffer errno 2 errstring No such file or directory
2015-03-07 15:25:43.856: [  OCRRAW][3057743552]propriogid:1: INVALID FORMAT
2015-03-07 15:25:43.856: [  OCROSD][3057743552]utread:3: problem reading buffer 8d68000 buflen 4096 retval 0 phy_offset 102400 retry 0
2015-03-07 15:25:43.856: [  OCROSD][3057743552]utread:4: problem reading the buffer errno 2 errstring No such file or directory
2015-03-07 15:25:43.900: [  OCRRAW][3057743552]ibctx:1:ERROR: INVALID FORMAT
2015-03-07 15:25:43.901: [  OCRRAW][3057743552]proprinit:problem reading the bootblock or superbloc 22

2015-03-07 15:25:43.901: [ default][3057743552]a_init:7!: Backend init unsuccessful : [22]
2015-03-07 15:25:43.907: [  OCROSD][3057743552]utread:3: problem reading buffer 8d44000 buflen 512 retval 0 phy_offset 102400 retry 0
2015-03-07 15:25:43.907: [  OCROSD][3057743552]utread:4: problem reading the buffer errno 2 errstring No such file or directory
2015-03-07 15:25:43.908: [  OCROSD][3057743552]utread:3: problem reading buffer 8d68000 buflen 4096 retval 0 phy_offset 102400 retry 0
2015-03-07 15:25:43.908: [  OCROSD][3057743552]utread:4: problem reading the buffer errno 2 errstring No such file or directory
2015-03-07 15:25:43.909: [  OCRRAW][3057743552]propriogid:1: INVALID FORMAT
2015-03-07 15:25:43.909: [  OCROSD][3057743552]utread:3: problem reading buffer 8d68000 buflen 4096 retval 0 phy_offset 102400 retry 0
2015-03-07 15:25:43.909: [  OCROSD][3057743552]utread:4: problem reading the buffer errno 2 errstring No such file or directory
2015-03-07 15:25:43.913: [  OCRRAW][3057743552]ibctx:1:ERROR: INVALID FORMAT
2015-03-07 15:25:43.913: [  OCRRAW][3057743552]proprinit:problem reading the bootblock or superbloc 22

2015-03-07 15:25:43.915: [  OCROSD][3057743552]utread:3: problem reading buffer 8d44000 buflen 512 retval 0 phy_offset 102400 retry 0
2015-03-07 15:25:43.915: [  OCROSD][3057743552]utread:4: problem reading the buffer errno 2 errstring No such file or directory
2015-03-07 15:25:43.916: [  OCROSD][3057743552]utread:3: problem reading buffer 8d68000 buflen 4096 retval 0 phy_offset 102400 retry 0
2015-03-07 15:25:43.916: [  OCROSD][3057743552]utread:4: problem reading the buffer errno 2 errstring No such file or directory
2015-03-07 15:25:43.917: [  OCRRAW][3057743552]propriogid:1: INVALID FORMAT
2015-03-07 15:25:43.998: [  OCRRAW][3057743552]propriowv: Vote information on disk 0 [/u01/oracle/app/oracle/product/10.2.0/asm_1/cdata/localhost/loca
l.ocr] is adjusted from [0/0] to [2/2]
2015-03-07 15:25:44.054: [  OCRRAW][3057743552]propriniconfig:No 92 configuration
2015-03-07 15:25:44.054: [  OCRAPI][3057743552]a_init:6a: Backend init successful

the cssd start script init.cssd script.
after read the script, we know the flow is:
'init.cssd run' will started by inittab, runs as a daemon, check $RUNFILE is 'norun' every 30 seconds.
'init.cssd start' will set a $BOOTID to $RUNFILE, so manualstart will be executed.

the following command will be executed to make ocssd.bin be called.

cat /etc/init.d/init.cssd
 
#!/bin/sh
#
# init.cssd - Control script for the Oracle CSS daemon.
#
#   In a full RAC install, this should not be in an rcX.d
#   directory. It should only be invoked from init.crs.
#   Never by hand.
#
#     No manual invocation of init.cssd is supported on a cluster.
#
#   In a local, non-cluster, installation without RAC, it should
#   be placed in an rcX.d directory. It may be invoked by hand
#   if necessary, however there are a series of risks and complications
#   that should be kept in mind when doing so.
#
#     Actions usable in local-only configuration are:
#          start, stop, disable and enable.
#
# ==========================================================
# Porting Definitions and requirements:
#
# FAST_REBOOT - take out the machine now. We are concerned about
#               data integrity since the other node has evicted us.
# SLOW_REBOOT - We can rely on vendor clusterware to delay sending
#               the reconfig to the other node due to its IO fencing
#               guarantees. So trigger its diagnostic reboot.
# VC_UP - Determine whether Vendor clusterware processes are active.
#         If they are, then the remote node will hear that CSS/CLSMON
#         have died, and we will be forced to use FAST_REBOOT.
#         This is also used at startup time for dependency checking.
#         Returns 0 if they are up, 1 otherwise. This should be
#         an extremely fast check.
# CLINFO - Determine whether we are booted in non-cluster mode.
#          Returns 0 for cluster mode, 1 for non-cluster mode
#          This call is allowed to take a long time to decide.
 
ORA_CRS_HOME=/u01/oracle/app/oracle/product/10.2.0/asm_1
ORACLE_USER=oracle
 
ORACLE_HOME=$ORA_CRS_HOME
 
export ORACLE_HOME
export ORA_CRS_HOME
 
# Set DISABLE_OPROCD to false
DISABLE_OPROCD=false
# Default OPROCD timeout values defined here, so that it can be
# over-ridden as needed by a platform.
# default Timout of 1000 ms and a margin of 500ms
OPROCD_DEFAULT_TIMEOUT=1000
OPROCD_DEFAULT_MARGIN=500
# default Timeout for other actions
OPROCD_CHECK_TIMEOUT=2000
OPROCD_STOP_TIMEOUT=2000
 
# Incase /bin/hostname is not present in a particular platform, we
# may have to do something different.
HOSTN=/bin/hostname
EXPRN=/usr/bin/expr
CUT=/usr/bin/cut
AWK='/bin/awk'
ECHO='/bin/echo'
 
#If the hostname is an IP address, let hostname
#remain as IP address
HOST=`$HOSTN`
len1=`$EXPRN "$HOST" : '.*'`
len2=`$EXPRN match $HOST '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*'`
 
# Strip off domain name in case /bin/hostname returns
# FQDN hostname
if [ $len1 != $len2 ]; then
 HOST=`$ECHO $HOST | $CUT -d'.' -f1 | $AWK '{ print tolower($0); }'`
else
 HOST=`$ECHO $HOST | $AWK '{ print tolower($0); }'`
fi
 
# Default Location for commands on most platforms
PS='/bin/ps'
# ps -e is expected to search for all processes on the box and provide
# terse binary name output so that column count does not truncate binary
# names and confuse grep.
PSE='/bin/ps -e'
PSEF='/bin/ps -ef'
HEAD='/bin/head'
GREP='/bin/grep'
KILL='/bin/kill'
KILLTERM='/bin/kill -TERM'
KILLDIE='/bin/kill -9'
SLEEP='/bin/sleep'
NULL='/dev/null'
UNAME='/bin/uname'
CAT='/bin/cat'
RMF='/bin/rm -f'
TEST='/bin/test'
WCL='/bin/wc -l'
TOUCH='/bin/touch'
SU='/bin/su'
RENICE='/bin/renice'
RTGPID='/bin/priocntl -s -c RT -i pgid'
XARGS='/bin/xargs'
PWD_COMMAND=/usr/bin/pwd
MVF="/bin/mv -f"
EVAL=eval
LS='/bin/ls'
BASENAME=/bin/basename
DATE="/bin/date"
 
UNIQUEDATE=`/bin/date '+%Y-%m-%d-%H:%M:%S'`
 
UNIQUECORE=core.$UNIQUEDATE
 
FINDCLSMON="$PS -e -o comm,pid | $GREP '^oclsmon'"
 
# Error reporting commands. These need to be kept in sync with
# the value of $MSGFILE in root.sh.
LOGERR="/bin/logger -puser.alert"
LOGMSG="/bin/logger -puser.err"
 
OPROCD=$ORA_CRS_HOME/bin/oprocd
CRSCTL=$ORA_CRS_HOME/bin/crsctl
 
# Temp file for crsctl output
CRSCTLOUT=/tmp/crsctl.$$
 
# indicates that the key doesnt exist in OCR
CRSCTL_KEY_UNDEFINED=12
 
# Default path for SCR control files.
SCRDIR=/var/opt/oracle/scls_scr/$HOST
 
# Directory for OPROCD logfiles
OPROCDIR=/var/opt/oracle/oprocd
OPROCDLOG=$OPROCDIR/$HOST.oprocd.log
 
# How long to sleep in startcheck to cover asynchronous startups of things like
# networks, disks, and filesystems not readily checked by crsctl. This time should
# be 0 except in extenuating circumstances.
STARTCHECKSLEEP=0
 
# Rate at which we recheck the flag files for a manual startup, after
# deciding not to start.
RUNRECHECKTIME=30
 
# Defines for the priority boost mechanism
PRIORITY_BOOST_DISABLED=0
PRIORITY_BOOST_LOW=1
PRIORITY_BOOST_MID=2
PRIORITY_BOOST_HIGH=3
PRIORITY_BOOST_REALTIME=4
 
PRIORITY_BOOST_RENICE_LOW=-5
PRIORITY_BOOST_RENICE_MID=-13
PRIORITY_BOOST_RENICE_HIGH=-20
PRIORITY_BOOST_RENICE_REALTIME=0
 
PRIORITY_BOOST_ENABLED=1
PRIORITY_BOOST_DEFAULT=$PRIORITY_BOOST_HIGH
 
# How long to wait (in seconds) before rechecking a dependency,
# and printing out messages about it.
DEP_CHECK_WAIT=60
 
#ulimit set to unlimited
ULIMIT_CORE="ulimit -c unlimited"
 
# Porting considerations:
# GETBOOTID = Returns a string that uniquely identifies this boot.
#             This string must never change while the machine is up,
#             and must change the next time the machine boots.
 
PLATFORM=`$UNAME`
 
case $PLATFORM in
Linux) LD_LIBRARY_PATH=$ORA_CRS_HOME/lib
       export LD_LIBRARY_PATH
       FAST_REBOOT="/sbin/reboot -n -f"
       HEAD='/usr/bin/head'
       SU="/bin/su -l"
       DISABLE_OPROCD=true
       # Presence of this file indicates that vendor clusterware is installed
       # And on Linux, we don't support any vendor clusterware.
       SKGXNLIB=$ORA_CRS_HOME/lib/INVALID_DIRECTORY
       # Over-ride SCRDIR
       SCRDIR=/etc/oracle/scls_scr/$HOST
       # No valid vendor clusterware
       VC_UP=/bin/true
       VC_NAME=""
       CLINFO=/bin/true
       ID=/etc/init.d
       LOGGER="/usr/bin/logger"
       if [ ! -f "$LOGGER" ];then
        LOGGER="/bin/logger"
       fi
       LOGMSG="$LOGGER -puser.err"
       LOGERR="$LOGGER -puser.alert"
       STARTCHECKSLEEP=60
       RENICE="/usr/bin/renice"
 
       # We are trying to get a timestamp of when the machine booted. It
       # appears that access time on /proc will do this, even if it looks odd.
       GETBOOTID="eval $LS -ld --full-time /proc | $AWK '{print \$6\$7\$8\$9\$10;}'"
       DIRNAME=/usr/bin/dirname
       ;;
HP-UX) MACH_HARDWARE=`/bin/uname -m`
       if [ "$MACH_HARDWARE" = "ia64" ]; then
          SO_EXT=so
          NMAPIDIR_64=/opt/nmapi/nmapi2/lib/hpux64
          NMAPIDIR_32=/opt/nmapi/nmapi2/lib/hpux32
       else
          SO_EXT=sl
          NMAPIDIR_64=/opt/nmapi/nmapi2/lib/pa20_64
          NMAPIDIR_32=/opt/nmapi/nmapi2/lib
       fi
       LD_LIBRARY_PATH=$ORA_CRS_HOME/lib:$NMAPIDIR_64:/usr/lib:$LD_LIBRARY_PATH
       SHLIB_PATH=$ORA_CRS_HOME/lib32:$NMAPIDIR_32:$SHLIB_PATH
       export LD_LIBRARY_PATH
       export SHLIB_PATH
       # NOTE: Not supporting Hardware partitioning machines.
       FAST_REBOOT="/usr/sbin/reboot -r -n -q"
       SLOW_REBOOT="/bin/kill -HUP `$CAT /var/run/syslog.pid` ; /bin/sync & $SLEEP 2 ; /usr/sbin/reboot -r -n -q"
       # Presence of this file indicates that vendor clusterware is installed
       SKGXNLIB=${NMAPIDIR_64}/libnmapi2.${SO_EXT}
       VC_UP="$PSEF | $GREP '/usr/lbin/cm[g]msd' 1>$NULL 2>$NULL"
       VC_NAME="Service Guard"
       CLINFO=/bin/true
       ID=/sbin/init.d
       LVINFO=/usr/sbin/lvdisplay
       VGINFO=/usr/sbin/vgdisplay
       VG_ACTIVATE="/usr/sbin/vgchange -a s"
       VG_DEACTIVATE="/usr/sbin/vgchange -a n"
       GETBOOTID="/bin/who -b"
       RENICE='/usr/bin/renice -n '
       DIRNAME=/bin/dirname
       UNIX95=true
       export UNIX95
       ;;
SunOS) case `/bin/uname -i` in
       i86pc)
         CLUSTERDIR=/opt/ORCLcluster
         LD_LIBRARY_PATH=$ORA_CRS_HOME/lib:$CLUSTERDIR/lib:/usr/lib:/usr/ucblib:$LD_LIBRARY_PATH
         export LD_LIBRARY_PATH
         ;;
       *)
         CLUSTERDIR=/opt/ORCLcluster
         LD_LIBRARY_PATH=$ORA_CRS_HOME/lib32:$CLUSTERDIR/lib:/usr/lib:/usr/ucblib:$LD_LIBRARY_PATH
         LD_LIBRARY_PATH_64=$ORA_CRS_HOME/lib:$CLUSTERDIR/lib:/usr/lib:/usr/ucblib:$LD_LIBRARY_PATH_64
         export LD_LIBRARY_PATH
         export LD_LIBRARY_PATH_64
         ;;
       esac
 
       # Presence of this file indicates that vendor clusterware is installed
       SKGXNLIB=$CLUSTERDIR/lib/libskgxn2.so
 
       # Define some variables based on the presence of vendor clusterware.
       DFL_CLSINFO=$CLUSTERDIR/bin/clsinfo
       if [ ! -f $SKGXNLIB ]; then
         # We are not using vendor clusterware.
         SLOW_REBOOT="/sbin/uadmin 1 1"
         FAST_REBOOT="/sbin/uadmin 1 1"
         VC_UP=/bin/true
         CLINFO=/bin/true
         VC_NAME=""
       elif [ -f $DFL_CLSINFO ]; then
         # We are using vendor clusterware other than Sparc32/64 SunCluster
         SLOW_REBOOT="/bin/pkill -HUP syslogd ; /bin/sync & /bin/sleep 2; /sbin/uadmin 5 1"
         FAST_REBOOT="/sbin/uadmin 1 1"
         CLINFO=$DFL_CLSINFO
         VC_UP=/bin/true  # No known way to detect the clusterware via PS
         VC_NAME="Generic SunOS Vendor Clusterware"
       else
         # We are using SunCluster and the UDLM as vendor clusterware
         SLOW_REBOOT="/bin/pkill -HUP syslogd ; /bin/sync & /bin/sleep 2; /bin/pkill -TERM ucmmd ; /bin/sleep 35 ; /sbin/uadmin 5 1"
         FAST_REBOOT="/sbin/uadmin 1 1"
         CLINFO=/usr/sbin/clinfo
         VC_UP="$TEST \`$PSE -u 0 | /bin/egrep 'lk[m]gr|ucm[m]d' | $WCL\` -ge 4"
         VC_NAME="SunCluster and UDLM"
       fi
 
       ID=/etc/init.d
       GETBOOTID="/bin/who -b"
       DIRNAME=/bin/dirname
       ;;
AIX)   LIBPATH=$ORA_CRS_HOME/lib:$ORA_CRS_HOME/lib32:/usr/lib:$LIBPATH
       LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH
       export LIBPATH
       export LD_LIBRARY_PATH
       FAST_REBOOT="/usr/bin/sysdumpstart -p"
       SLOW_REBOOT="/bin/kill -HUP `$CAT /etc/syslog.pid`; /bin/sync & $SLEEP 2; /usr/sbin/fastboot -n -q"
       # Presence of this file indicates that vendor clusterware is installed
       SKGXNLIB=/usr/sbin/cluster/utilities/cldomain
       # Over-ride SCRDIR
       OPROCDIR=/etc/oracle/oprocd
       OPROCDLOG=$OPROCDIR/$HOST.oprocd.log
       SCRDIR=/etc/oracle/scls_scr/$HOST
       VC_UP="$PSEF | $GREP 'ha[g]sd' | $GREP '[g]rpsvcs' 1>$NULL 2>$NULL"
       # NOTE: If RPD happens to get supported later, modify clustername
       #       accordingly
       VC_NAME="HACMP"
       CLINFO=/bin/true
       ID=/etc
       LVINFO=/usr/sbin/lslv
       VGINFO=/usr/sbin/lsvg
       VG_ACTIVATE="/etc/varyonvg -c"
       VG_DEACTIVATE="/etc/varyoffvg"
       GETBOOTID="/bin/who -b"
       DIRNAME=/bin/dirname
       ;;
OSF1)  LD_LIBRARY_PATH=$ORA_CRS_HOME/lib:/usr/lib
       export LD_LIBRARY_PATH
       FAST_REBOOT="/usr/sbin/reboot -n -q"
       SLOW_REBOOT="/bin/kill -HUP `$CAT /var/run/syslog.pid`; /bin/sync & $SLEEP 2 ; /usr/sbin/reboot -n -q"
       # No need for OPROCD on Tru64. We don't support a configuration
       # without Tru64 clusterware, AND, Tru64 clusterware is responsible
       # for I/O Fencing.
       DISABLE_OPROCD=true
       # Presence of this file indicates that vendor clusterware is installed
       SKGXNLIB=/usr/ccs/lib/libdlm.a
       VC_UP=/bin/true
       VC_NAME="TruCluster"
       CLINFO=/bin/true
       ID=/sbin/init.d
       GETBOOTID="/bin/who -b"
       DIRNAME=/usr/bin/dirname
       ;;
*)     /bin/echo "ERROR: Unknown Operating System"
       exit -1
       ;;
esac
 
# If no immediate reboot specified, use FAST_REBOOT
if [ -z "$SLOW_REBOOT" ]
then
  SLOW_REBOOT=$FAST_REBOOT
fi
 
# These five files contain system settings used for controlling CSS, and CRS.
AUTOSTARTFILE=$SCRDIR/root/crsstart
FATALFILE=$SCRDIR/$ORACLE_USER/cssfatal
NOCLSMON=$SCRDIR/root/noclsmon
NOOPROCD=$SCRDIR/root/nooprocd
RUNFILE=$SCRDIR/root/cssrun
 
# Only setup environment for OPROCD if
# 1) it is Not DISABLED for this platform
# 2) the daemon is installed
# 3) and vendor clusterware is not provided
unset OPROCD_EXISTS
if [ "$DISABLE_OPROCD" = "false" ] && [ -f $OPROCD ] && [ ! -f $SKGXNLIB ]
then
  OPROCD_EXISTS=1
fi
 
# Priority boost is only applied to the CSS daemon, invoked by one of these two actions.
if [ $1 = 'daemon' ] || [ $1 = 'run' ]; then
  if [ $PRIORITY_BOOST_ENABLED = '1' ]; then
    NODENAME=`$CRSCTL get nodename`
 
    # check to see the error codes
    case $? in
    0)
      # since we got the node name, now try to get the actual
      # boost value for the node
      PRIORITY_BOOST_VALUE=`$CRSCTL get css priority node $NODENAME`
 
      # be sure to check if we hit any errors
      case $? in
      0)
        # no errors, all things are good
        ;;
 
      $CRSCTL_KEY_UNDEFINED)
        # if we get back an error saying the value wasn't there,
        # then we can just assume the default
        PRIORITY_BOOST_VALUE=$PRIORITY_BOOST_DEFAULT
        ;;
 
      *)
        # for any other errors we still assume the defaults
        PRIORITY_BOOST_VALUE=$PRIORITY_BOOST_DEFAULT
        ;;
      esac
      ;;
 
    *)
      # we expect to be able to retrieve the local nodename otherwise
      # we just assume the default behaviour
      PRIORITY_BOOST_VALUE=$PRIORITY_BOOST_DEFAULT
      ;;
    esac
 
    # if the chosen priority boost is 0 then just disable the mechanism
    if [ "$PRIORITY_BOOST_VALUE" = "$PRIORITY_BOOST_DISABLED" ]; then
      PRIORITY_BOOST_ENABLED=0
    fi
 
    # we can only support realtime boost on platforms that understand
    # the mechanism, otherwise it will be changed to the default boost
    if [ "$PRIORITY_BOOST_VALUE" = "$PRIORITY_BOOST_REALTIME" ]; then
    case $PLATFORM in
      SunOS)
        # We support realtime, so dont change anything
        ;;
      *)
        # any platform not selected above will return the boost to
        # the normal default value, it is assumed that default is not
        # going to be set to REALTIME on platforms that do not support
        # the functionality
        $PRIORITY_BOOST_VALUE=$PRIORITY_BOOST_DEFAULT
        ;;
    esac
    fi
 
    # now that we have the priorty boost value to use, just boost
    # the priority of the entire shell, so that all it's children
    # will also be boosted
    case $PRIORITY_BOOST_VALUE in
      $PRIORITY_BOOST_LOW)
        # low priority boost
        $RENICE $PRIORITY_BOOST_RENICE_LOW -p $$
        ;;
 
      $PRIORITY_BOOST_MID)
        # medium level boost
        $RENICE $PRIORITY_BOOST_RENICE_MID -p $$
        ;;
 
      $PRIORITY_BOOST_HIGH)
        # highest level normal boost
        $RENICE $PRIORITY_BOOST_RENICE_HIGH -p $$
        ;;
 
      $PRIORITY_BOOST_REALTIME)
        # realtime boost only should be used on platforms that support this
        $RTGPID $$
        ;;
 
      $PRIORITY_BOOST_DISABLED)
        # this is the disabled priority boost case, and nothing needs be done
        ;;
 
      *)
        # well we shouldn't have anything else, but we can just
        # skip doing anything if we happen to get some other bogus value
        ;;
    esac
  fi
fi
 
case $1 in
'home')
    $ECHO $ORA_CRS_HOME
    exit 0;
    ;;
'user')
    $ECHO $ORACLE_USER
    exit 0;
    ;;
'bootid')
    # Set a null timezone. Some implementations of GETBOOTID are sensitive
    # to the timezone in the multiple environments this can get invoked from.
    TZ=
    export TZ
 
    # Set a null language id. GETBOOTID can also be sensitive to the language
    # codes, when init.cssd is run in a user shell compared to being run
    # under init. Setting a blank language code should guarantee consistency.
    LANG=
    export LANG
 
    $GETBOOTID
    exit 0;
    ;;
'disable')
    # Disable the CSS daemon from starting at boot time.
    $ECHO "Automatic startup disabled for system boot."
    $ECHO disable > $AUTOSTARTFILE
    exit 0;
    ;;
'enable')
    # Enable automatic CSS startup at boot time.
    $ECHO "Automatic startup enabled for system boot."
    $ECHO enable > $AUTOSTARTFILE
    exit 0;
    ;;
'norun')
    # Mark the norun flag to disable any daemons from restarting.
    $ECHO "norun" > $RUNFILE
    exit 0;
    ;;
'start')
    CMD=`$BASENAME $0`
 
    # If we are being invoked by the user, perform manual startup.
    # If we are being invoked as an RC script, check for autostart.
    if [ "$CMD" = "init.cssd" ]; then
      $LOGMSG "Oracle Cluster Synchronization Service starting by user request."
      $ID/init.cssd manualstart
    else
      $ID/init.cssd autostart
    fi
    ;;
'manualstart')
    # Queue a startup to the CRS scripts invoked by inittab.
    BOOTID=`$ID/init.cssd bootid`
    $ECHO "$BOOTID" > $RUNFILE
    start_interval=`$EXPRN $RUNRECHECKTIME + $STARTCHECKSLEEP`
    $ECHO "Startup will be queued to init within ${start_interval} seconds."
    ;;
'autostart')
    # Check to see whether the user has enabled automatic startup.
 
    # Is the flag file still there?
    if [ -r $AUTOSTARTFILE ]
    then
      case `$CAT $AUTOSTARTFILE` in
      disable*)
        $LOGMSG "Oracle Cluster Ready Services disabled by administrator."
        $ID/init.cssd norun
        ;;
      enable*)
        # Continue on to the next check
        $LOGMSG "Oracle Cluster Ready Services starting up automatically."
        $ID/init.cssd manualstart
        ;;
      *)
        $LOGERR "Oracle Cluster Ready Services disabled by damaged install."
        $LOGERR "   Unexpected settings found in $AUTOSTARTFILE."
        $ID/init.cssd norun
        ;;
      esac
    else
      # If the SCR directory does not exist, then either the user changed
      # their hostname, or they wiped sections of the disk. Give them a
      # slightly less frightening message.
      if [ ! -d $SCRDIR ]
      then
        $LOGERR Oracle Cluster Ready Services startup disabled.
        $LOGERR    Did the hostname change? Could not access $AUTOSTARTFILE.
      else
        $LOGERR Oracle Cluster Ready Services is disabled by damaged install.
        $LOGERR    Could not access $AUTOSTARTFILE.
      fi
 
      $ID/init.cssd norun
    fi
    exit 0;
    ;;
 
# Runcheck is intended to check the run status for any of the
# run or fatal scripts (evm/crs/css) as initialized by the automatic startup
# or manual startup routines.
# Runcheck is supposed to be a very fast check, and be silent since it
# will get invoked regularly while the system is up.
# Exit codes should match the requirements of startcheck.
'runcheck')
    if [ ! -r "$RUNFILE" ]; then
      # If this file does not exist, then the automatic startup checks
      # in the "start" target will warn the user of problems.
      exit 3;
    fi
 
    BOOTID=`$ID/init.cssd bootid`
    RUNID=`$CAT $RUNFILE`
    if [ "$BOOTID" != "$RUNID" ]; then
 
      if [ "$RUNID" = "startstack" ]; then
          $ID/init.cssd manualstart
 
      else
          # We do not have clearance to start up. So respect that authority.
          # Nothing needs to be logged in this case.
          exit 3;
      fi
 
    fi
 
    exit 0;
    ;;
 
# Startcheck is intended to check the run status for any of the
# run or fatal scripts (evm/crs/css) (see runcheck), and additionally
# check on vendor clusterware and filesystem dependencies.
# Startcheck is supposed to block for a long time waiting on dependencies.
'startcheck') # Returns 0 if we should start
              # Returns 1 on a non-cluster boot
              # Returns 2 if disabled by admin
              # Returns 3 on error
 
    # Check our startup run status, initialized by the automatic startup
    # or manual startup routes.
    $ID/init.cssd runcheck
    STATUS=$?
    if [ "$STATUS" != "0" ]; then
      exit $STATUS;
    fi
 
    # If we have vendor clusterware, and CLINFO indicates a non-clustered boot
    # then prevent CRS startup.
    if [ -f $SKGXNLIB ]
    then
      # Run CLINFO to get cluster status. It returns 0 if the machine is
      # booting in clustered mode.
      $EVAL $CLINFO
      if [ "$?" != "0" ]; then
        $LOGMSG "Oracle Cluster Ready Services disabled by non-clustered boot."
        $ID/init.cssd norun
        exit 1;
      fi
 
      # Wait for the Vendor Clusterware to start
      $EVAL $VC_UP
      RC=$?
      while [ $RC -ne 0 ]; do
        $LOGMSG "Oracle Cluster Ready Services waiting for $VC_NAME to start."
        $SLEEP $DEP_CHECK_WAIT
        $EVAL $VC_UP
        RC=$?
      done
    fi
 
    # Wait until it is safe to start CRS daemons
    while [ ! -r $CRSCTL ]
    do
      $LOGMSG "Waiting for filesystem containing $CRSCTL."
      $SLEEP $DEP_CHECK_WAIT
    done
 
    # Now bring up the OCR, Voting Disk Volume Group(s), but only if we are
    # called by the CSS startup
    if [ "$2" = "CSS" ]
    then
      $SLEEP 0  # do nothing for now.
    fi
 
    # Wait for additional filesystems and objects to become available
    # crsctl should print out a message indicating cause of failure.
    $SU $ORACLE_USER -c "$CRSCTL check boot > $CRSCTLOUT"
    RC=$?
    while [ "$RC" != "0" ]
    do
      $LOGMSG Cluster Ready Services waiting on dependencies. Diagnostics in $CRSCTLOUT.
      $SLEEP $DEP_CHECK_WAIT
      $SU $ORACLE_USER -c "$CRSCTL check boot > $CRSCTLOUT"
      RC=$?
    done
 
    # Finished waiting on dependencies. Diagnostics are no longer necessary.
    $LOGMSG Cluster Ready Services completed waiting on dependencies.
    $RMF $CRSCTLOUT
 
    # Some platforms may need additional sleeps to be done here in
    # rare circumstances.
    $SLEEP $STARTCHECKSLEEP
 
    # all good
    exit 0;
    ;;
 
'oclsmon')
    # This action is expected to start and monitor the oclsmon daemon.
    # Its purpose is to assist the CSS daemon in monitoring vendor clusterware
    # and allow additional diagnostics to be obtained in the case of system
    # failures.
 
    # On rare occasion this will get re-invoked while a shutdown is
    # in progress. If so, this script should exit.
    $ID/init.cssd runcheck
    if [ "$?" != "0" ]; then
      exit 0;
    fi
 
    # Arguments. By default none.
    CLSMON_ARGS=
 
    CLSMONDIR=$ORA_CRS_HOME/log/$HOST/cssd/oclsmon
 
    # Run oclsmon out of the CSS log directory in case it drops a core
    $SU $ORACLE_USER -c \
      "/bin/sh -c 'cd $CLSMONDIR; $ULIMIT_CORE; $ORA_CRS_HOME/bin/oclsmon $CLSMON_ARGS || exit \$?'"
    RC=$?
 
    # CLSMON will return a status code of 9 if it has received a TERM signal.
    # TERM signal will either be caused by init when we are shutting down,
    # or be caused by the graceful shutdown script. In either case, this
    # monitor script has nothing left to do, and no log message is warranted.
    if [ "$RC" = "9" ]; then
      $TOUCH $NOCLSMON
      exit 0;
    fi
 
    # CLSMON will return a status code of 11 if it has a failure in
    # a vendor clusterware API. Retry.
    if [ "$RC" = "11" ]; then
      $LOGMSG "Oracle CLSMON was unable to interact with vendor clusterware. Retrying"
      $RMF $NOCLSMON
      exit 1;
    fi
 
    # CLSMON will return a status code of 13 if it is unable to find
    # vendor clusterware. Do not retry.
    # The oclsmon part of init.cssd is not supposed to be run without vendor
    # clusterware, though, so this should not happen.
    if [ "$RC" = "13" ]; then
      $LOGMSG "Oracle CLSMON did not find any vendor clusterware."
      $TOUCH $NOCLSMON
      exit 0;
    fi
 
    # CLSMON will return a status code of 14 if it thinks that another
    # copy of clsmon is alive. This will generally only happen if the
    # user has come along and killed off a wrapper script and then duplicates
    # got spawned. Here we shut down the other clsmon, exit requesting a respawn,
    # and start up again. If there is another copy of init.cssd oclsmon hanging
    # around then it will also exit, but not get respawned. Our respawn will
    # create a new copy of the daemon, and then be able to properly wait on it.
    if [ "$RC" = "14" ]; then
      $LOGMSG "Duplicate Oracle CLSMON found. Killing and restarting it."
      $EVAL $FINDCLSMON | $AWK '{ print $2 ; }' | $XARGS $KILLDIE > $NULL 2>&1
      $RMF $NOCLSMON
      exit 1;
    fi
 
    $LOGMSG "Oracle CLSMON terminated with unexpected status $RC. Respawning"
    $RMF $NOCLSMON
    exit 1;
    ;;
 
'oprocd')
    # Runs the oprocd daemon. This script is supposed to exit 0
    # if it decides that it should not be respawned, and exit 1 if it
    # wants to be respawned. The purpose of oprocd is to detect system
    # hangs, which often occur due to faulty drivers or hardware.
 
    # On rare occasion this will get re-invoked while a shutdown is
    # in progress. If so, this script should exit.
    $ID/init.cssd runcheck
    if [ "$?" != "0" ]; then
      exit 0;
    fi
 
    # Do an additional bit of checking for OPROCD. Some platforms may
    # choose to disable OPROCD in this fashion.
    if [ "$OPROCD_EXISTS" != "1" ]; then
      $TOUCH $NOOPROCD
      exit 0;
    fi
 
    # If we are in fatal mode, then let oprocd know right away.
    if [ -f $FATALFILE ] && [ `$CAT $FATALFILE` = "enable" ] ; then
      FATALARG="-f"
    else
      FATALARG=
    fi
 
    # Run oprocd synchronously and look for its status code
    cd $OPROCDIR
    $OPROCD run -t $OPROCD_DEFAULT_TIMEOUT -m $OPROCD_DEFAULT_MARGIN $FATALARG \
            > $OPROCDLOG 2>&1
    RC=$?
 
    # Oprocd will return a status code of 0 if a graceful shutdown has been
    # requested. In this case, we do not want to be respawned.
    if [ "$RC" = "0" ]; then
      $LOGMSG "Oprocd received graceful shutdown request. Shutting down."
      $TOUCH $NOOPROCD
      exit 0;
    fi
 
    # Oprocd will return a status code of 1 if it notices that it is a
    # duplicate copy of the daemon. This will generally only happen if the
    # user has come along and killed off a wrapper script and then duplicates
    # got spawned. Here we shut down the other oprocd, exit requesting a respawn,
    # and start up again. If there is another copy of init.cssd oprocd hanging
    # around then it will also exit, but not get respawned. Our respawn will
    # create a new copy of the daemon, and then be able to properly wait on it.
    if [ "$RC" = "1" ]; then
      $OPROCD stop -t $OPROCD_STOP_TIMEOUT 2>$NULL
      $LOGMSG "Duplicate spawn of Oprocd. See init.cssd for description."
      $RMF $NOOPROCD
      exit 1;
    fi
 
    # Oprocd will return a status code of 2 if it has noticed a system hang
    # while in nonfatal mode. In this case we need to respawn it, so that if
    # CSS starts allowing database IO that we have fencing guarantees.
    if [ "$RC" = "2" ]; then
      $LOGMSG "Oprocd detected system hang while in nonfatal mode. Respawning."
      $RMF $NOOPROCD
      exit 1;
    fi
 
    # If it is not one of the above, then request a respawn. Delay a bit
    # in case this is a recurring failure, to avoid spinning.
    $LOGMSG "Oprocd terminated with unexpected status $RC. Respawning."
    $RMF $NOOPROCD
    exit 1;
    ;;
 
'stop')
    $LOGMSG "Oracle CSSD being stopped"
 
    # disable CSS startup until the next boot
    $ID/init.cssd norun
    $TOUCH $NOOPROCD
    $TOUCH $NOCLSMON
 
    # shutdown the OPROCD process if it is running
    if [ $OPROCD_EXISTS ]; then
       $OPROCD stop -t $OPROCD_STOP_TIMEOUT 2>$NULL
    fi
 
    # Shut down oclsmon if it is up.
    $EVAL $FINDCLSMON | $AWK '{ print $2 ; }' | $XARGS $KILLTERM > $NULL 2>&1
 
    # Now tell it to shut down.
    if [ -x "$CRSCTL" ]; then
      $CRSCTL stop crs
    fi
 
    $ECHO "Shutdown has begun. The daemons should exit soon."
    ;;
 
'run')
    # Foreground run, for single instance or single-node installs only.
    # If this is used in a cluster install, RDBMS datafile corruption is
    # likely.
 
    # Run the startcheck to see whether we should continue
    # NOTE: The 'run' target should not invoke startcheck with the CSS
    #       argument, since the single-instance CSS daemon should not have
    #       volume group dependencies.
    $ID/init.cssd startcheck
    while [ "$?" != "0" ]; do
      # recheck every 5 minutes to cover oddities of the HP-UX init system
      $SLEEP $RUNRECHECKTIME
      $ID/init.cssd startcheck
    done
 
    # If there is an old corefile by such a collision prone name, then
    # rename it to something safe.
    if [ -f ./core ]; then
      $MVF ./core "$UNIQUECORE"
    fi
 
    #
    # NOTE: su will wipe your LD_LIBRARY_PATH, but keep most of the
    #       remainder of the environment. It is necessary to run the ocssd
    #       wrapper script from here instead of the binary directly.
    shift
    exec $SU $ORACLE_USER -c "sh -c 'cd $ORA_CRS_HOME/log/$HOST/cssd;  $ULIMIT_CORE; exec $ORA_CRS_HOME/bin/ocssd $*'"
    ;;
 
'fatal')
    # This action is invoked to start the CSS daemon in cluster mode,
    # and one or more of its accompanying daemons oprocd or oclsmon.
    # This respawn wrapper is done in lieu of adding new entries to inittab.
 
    # Check to see if we are supposed to run this boot.
    $ID/init.cssd startcheck
    while [ "$?" != "0" ]; do
      # recheck every 5 minutes to cover oddities of the HP-UX init system
      $SLEEP $RUNRECHECKTIME
      $ID/init.cssd startcheck
    done
 
    # Presence of vendor clusterware and choice of platform decides
    # which co-daemon we use.
    $TOUCH $NOCLSMON
    $TOUCH $NOOPROCD
    if [ $OPROCD_EXISTS ]; then
      $RMF $NOOPROCD
      $ID/init.cssd oprocd &
      OPROCDSCRIPTPID=$!
    fi
    if [ -f $SKGXNLIB ]; then
      $RMF $NOCLSMON
      $ID/init.cssd oclsmon &
      CLSMONSCRIPTPID=$!
    fi
 
    $ID/init.cssd daemon &
    DAEMONSCRIPTPID=$!
 
    while $TRUE; do
      # Poll every second to see which of our children has gone away.
      $SLEEP 1
 
      # Check to see whether we should go away. Only invoke runcheck,
      # since all of the dependency checking has already been done.
      $ID/init.cssd runcheck
      if [ "$?" != "0" ]; then
        exit 1;
      fi
 
      # Did the oprocd script go away?
      if [ ! -f $NOOPROCD ]; then
        $KILL -0 $OPROCDSCRIPTPID > $NULL 2>&1
        if [ "$?" != "0" ]; then
          $ID/init.cssd oprocd &
          OPROCDSCRIPTPID=$!
        fi
      fi
 
      # Did the clsmon script go away?
      if [ ! -f $NOCLSMON ]; then
        $KILL -0 $CLSMONSCRIPTPID > $NULL 2>&1
        if [ "$?" != "0" ]; then
          $ID/init.cssd oclsmon &
          CLSMONSCRIPTPID=$!
        fi
      fi
 
      # Did the daemon script go away? If it does not want to be respawned,
      # then we disable the CSS init scripts.
      $KILL -0 $DAEMONSCRIPTPID > $NULL 2>&1
      if [ "$?" != "0" ]; then
        $ID/init.cssd daemon &
        DAEMONSCRIPTPID=$!
      fi
 
    done
 
    # We will never reach this
    exit 0;
    ;;
 
'daemon')
    # Run the CSS daemon in cluster mode. This will enable the fencing
    # functionality not required in single-node mode. The CSS daemon
    # monitors node health, and provides endpoint discovery for RDBMS.
 
    # On rare occasion this will get re-invoked while a shutdown is
    # in progress. If so, this script should exit.
    $ID/init.cssd runcheck
    if [ "$?" != "0" ]; then
      exit 0;
    fi
 
    # Renice ourselves, and the child scripts. This is useful to ensure
    # that we can perform the fence action if CSS kills itself due to
    # unreasonable load. This script will remain asleep most of the time
    # so a high priority shouldn't bother anything.
    $RENICE -5 $$
 
    # Wait for oprocd to come up.
    if [ $OPROCD_EXISTS ]; then
      $OPROCD check -t $OPROCD_CHECK_TIMEOUT > $NULL 2>&1
      RC=$?
      while [ "$RC" != "0" ] && [ "$RC" != "1" ]; do
        $SLEEP 5
        $OPROCD check -t $OPROCD_CHECK_TIMEOUT > $NULL 2>&1
        RC=$?
      done
    fi
 
    # If there is an old corefile by such a collision prone name, then
    # rename it to something safe.
    if [ -f ./core ]; then
      $MVF ./core "$UNIQUECORE"
    fi
 
    # Arguments. By default none.
    OCSSD_ARGS=
 
    #
    # Note: su will wipe your LD_LIBRARY_PATH, but keep most of the
    #       remainder of the environment. It is necessary to run the ocssd
    #       wrapper script from here instead of the binary directly.
    $SU $ORACLE_USER -c \
      "/bin/sh -c '$ULIMIT_CORE; cd $ORA_CRS_HOME/log/$HOST/cssd;  $ORA_CRS_HOME/bin/ocssd $OCSSD_ARGS || exit \$?'"
 
    RC=$?
    if [ "$RC" = "100" ]; then
        # Disable the CSS daemon from getting restarted until the next
        # user intiated startup, or the next reboot cycle.
 
        $LOGMSG "Oracle CSS daemon failed to start up. Check CRS logs for diagnostics."
        $ID/init.cssd norun
 
        exit 0;
    fi
 
    if [ "$RC" = "0" ]; then
        $LOGMSG "Oracle CSSD graceful shutdown"
 
        # on graceful shutdown, be sure to stop the OPROCD process too
        if [ $OPROCD_EXISTS ]; then
          $OPROCD stop 2>$NULL
        fi
    else
        case `$CAT $FATALFILE` in
        disable*)
          # continue below to disable the next startup. It failed,
          # but we did not have any clients threatening data integrity.
          ;;
 
        # If the value is "enable" then fatal mode was armed, and we need
        # to blow up. If the value was anything else, it was corrupted,
        # so we will blow up just to be safe.
        *)
          $LOGERR "Oracle CSSD failure.  Rebooting for cluster integrity."
 
          # We want to reboot here as fast as possible. It is imperative
          # that we do not flush any IO to the shared disks. Choosing not
          # to flush local disks or kill off processes gracefully shuts
          # us down quickly.
 
          # Assume that we have to do a fast reboot. Now look for conditions
          # that might make it safe to do a slow reboot.
          REBOOT_CMD=$FAST_REBOOT
          if [ ! -f $NOCLSMON ]; then
            CLSMONUP=true
 
            # oclsmon should be running, check to see if it is
            CLSMONPID=`$PSE | $GREP 'oclsm[o]n' | $AWK '{ print $1 ; }'`
            if [ "$CLSMONPID" = "" ]; then
              CLSMONUP=false
            fi
            if [ "$CLSMONUP" = "false" ];
            then
              $SLEEP 2
              CLSMONPID=`$PSE | $GREP 'oclsm[o]n' | $AWK '{ print $1 ; }'`
              if [ "$CLSMONPID" != "" ]; then
                CLSMONUP=true
              fi
            fi
            if [ "$CLSMONUP" = "true" ]; then
              # oclsmon is running, so it should be safe to do the slow reboot
              REBOOT_CMD=$SLOW_REBOOT
            else
              # Check to see if the vendor clusterware processes are up.
              # If they are, then we need to do a fast reboot. Otherwise
              # it is safe to do a slow reboot.
              $EVAL $VC_UP
              if [ "$?" != "0" ]; then
                # Vendor clusterware is not up.
                REBOOT_CMD=$SLOW_REBOOT
              fi
            fi
          fi
 
          $EVAL $REBOOT_CMD
 
          # keep init from respawning while reboot happens
          $ID/init.cssd norun
          $SLEEP 300
          ;;
        esac
    fi
 
    exit 0;
    ;;
'activatevg')
    # Do nothing for now
    exit 0;
    ;;
*)
    $ECHO "See documentation at the top of $0 about supported commands."
    exit 1;
    ;;
esac
[root@demo oracle]#

start cssd
the cssd will boot in several minutes.

[root@demo demo]# /etc/init.d/init.cssd run &
3120: old priority 0, new priority -20

[root@demo demo]# ps -ef | grep css
root      3016  1602  0 18:14 pts/0    00:00:00 /bin/sh /etc/init.d/init.cssd run
root      3031  3016  0 18:14 pts/0    00:00:00 /bin/sh /etc/init.d/init.cssd startcheck
root      3084  1602  0 18:15 pts/0    00:00:00 grep css

[root@demo demo]# ps -ef | grep css
root      3016  1602  0 18:14 pts/0    00:00:00 /bin/su -l oracle -c sh -c 'cd /u01/oracle/app/oracle/product/10.2.0/asm_1/log/demo/cssd;  ulimit -c u
nlimited; exec /u01/oracle/app/oracle/product/10.2.0/asm_1/bin/ocssd '
oracle    3095  3016  0 18:15 ?        00:00:00 /u01/oracle/app/oracle/product/10.2.0/asm_1/bin/ocssd.bin
root      3120  1602  0 18:16 pts/0    00:00:00 /bin/sh /etc/init.d/init.cssd run
root      3135  3120  0 18:16 pts/0    00:00:00 /bin/sh /etc/init.d/init.cssd startcheck
root      3186  1602  0 18:17 pts/0    00:00:00 grep css

[root@demo demo]# crsctl check css
CSS appears healthy

after install ASM with dbca and create a disk group +DG1.
+ASM instance works well with cssd.

SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME                                                        VERSION           STARTUP_T STATUS       PAR
--------------- ---------------- ---------------------------------------------------------------- ----------------- --------- ------------ ---
   THREAD# ARCHIVE LOG_SWITCH_WAIT LOGINS     SHU DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_ST BLO
---------- ------- --------------- ---------- --- ----------------- ------------------ --------- ---
              1 +ASM             demo.domain                                                      10.2.0.1.0        07-MAR-15 STARTED      NO
         0 STOPPED                 ALLOWED    NO  ACTIVE            UNKNOWN            NORMAL    NO

SQL> select * from v$database;
select * from v$database
              *
ERROR at line 1:
ORA-01507: database not mounted

install orcl database on +DG1

SQL> select * from v$database;

      DBID NAME      CREATED  RESETLOGS_CHANGE# RESETLOG PRIOR_RESETLOGS_CHANGE# PRIOR_RE LOG_MODE     CHECKPOINT_CHANGE# ARCHIVE_CHANGE# CONTROL
---------- --------- -------- ----------------- -------- ----------------------- -------- ------------ ------------------ --------------- -------
CONTROLF CONTROLFILE_SEQUENCE# CONTROLFILE_CHANGE# CONTROLF OPEN_RESETL VERSION_ OPEN_MODE  PROTECTION_MODE      PROTECTION_LEVEL     REMOTE_A
-------- --------------------- ------------------- -------- ----------- -------- ---------- -------------------- -------------------- --------
ACTIVATION# SWITCHOVER# DATABASE_ROLE    ARCHIVELOG_CHANGE# ARCHIVEL SWITCHOVER_STATUS    DATAGUAR GUARD_S SUPPLEME SUP SUP FOR PLATFORM_ID
----------- ----------- ---------------- ------------------ -------- -------------------- -------- ------- -------- --- --- --- -----------
PLATFORM_NAME                                                                                         RECOVERY_TARGET_INCARNATION#
----------------------------------------------------------------------------------------------------- ----------------------------
LAST_OPEN_INCARNATION# CURRENT_SCN FLASHBACK_ON       SUP SUP DB_UNIQUE_NAME                 STANDBY_BECAME_PRIMARY_SCN FS_FAILOVER_STATUS
---------------------- ----------- ------------------ --- --- ------------------------------ -------------------------- ---------------------
FS_FAILOVER_CURRENT_TARGET     FS_FAILOVER_THRESHOLD FS_FAIL
------------------------------ --------------------- -------
FS_FAILOVER_OBSERVER_HOST
------------------------------------------------------------------------------------------------------------------------------------------------------

1401525038 ORCL      15-03-07            446075 15-03-07                       1 05-06-30 ARCHIVELOG               454376               0 CURRENT
15-03-07                   386              455190 15-03-07 NOT ALLOWED 15-03-07 READ WRITE MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE  ENABLED
 1401562155  1401562155 PRIMARY                      446075 DISABLED NOT ALLOWED          DISABLED NONE    NO       NO  NO  NO           10
Linux IA (32-bit)                                                                                                                2
                     2      455216 NO                 NO  NO  orcl                                                    0 DISABLED

SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
+DG1/orcl/users01.dbf
+DG1/orcl/sysaux01.dbf
+DG1/orcl/undotbs01.dbf
+DG1/orcl/system01.dbf

SQL> create tablespace demo datafile '+DG1/orcl/demo01.dbf' size 10m autoextend on next 10m maxsize 1g;

Tablespace created.
demo$ rman target / nocatalog

RMAN> backup as compressed backupset database plus archivelog delete input;

Starting backup at 07-MAR-15
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=49 devtype=DISK
channel ORA_DISK_1: starting compressed archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=2 recid=1 stamp=873749791
channel ORA_DISK_1: starting piece 1 at 07-MAR-15
channel ORA_DISK_1: finished piece 1 at 07-MAR-15
piece handle=+DG1/orcl/backupset/2015_03_07/annnf0_tag20150307t201631_0.270.873749793 tag=TAG20150307T201631 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:05
channel ORA_DISK_1: deleting archive log(s)
archive log filename=+DG1/orcl/1_2_873744303.dbf recid=1 stamp=873749791
Finished backup at 07-MAR-15

Starting backup at 07-MAR-15
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=+DG1/orcl/system01.dbf
input datafile fno=00003 name=+DG1/orcl/sysaux01.dbf
input datafile fno=00002 name=+DG1/orcl/undotbs01.dbf
input datafile fno=00005 name=+DG1/orcl/demo01.dbf
input datafile fno=00004 name=+DG1/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 07-MAR-15
channel ORA_DISK_1: finished piece 1 at 07-MAR-15
piece handle=+DG1/orcl/backupset/2015_03_07/nnndf0_tag20150307t201636_0.269.873749797 tag=TAG20150307T201636 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
channel ORA_DISK_1: starting compressed full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 07-MAR-15
channel ORA_DISK_1: finished piece 1 at 07-MAR-15
piece handle=+DG1/orcl/backupset/2015_03_07/ncsnf0_tag20150307t201636_0.271.873749833 tag=TAG20150307T201636 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 07-MAR-15

Starting backup at 07-MAR-15
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=3 recid=2 stamp=873749834
channel ORA_DISK_1: starting piece 1 at 07-MAR-15
channel ORA_DISK_1: finished piece 1 at 07-MAR-15
piece handle=+DG1/orcl/backupset/2015_03_07/annnf0_tag20150307t201715_0.273.873749837 tag=TAG20150307T201715 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
channel ORA_DISK_1: deleting archive log(s)
archive log filename=+DG1/orcl/1_3_873744303.dbf recid=2 stamp=873749834
Finished backup at 07-MAR-15

RMAN>

Reference:
http://www.itpub.net/forum.php?mod=viewthread&tid=1911766&extra=
http://www.pythian.com/blog/howto-set-up-oracle-asm-on-ubuntu-gutsy-gibbon/

Rating

rating: 0+x

Comment

Add a New Comment