Sun Microsystems, Inc.  Oracle System Handbook - ISO 7.0 May 2018 Internal/Partner Edition
   Home | Current Systems | Former STK Products | EOL Systems | Components | General Info | Search | Feedback

Asset ID: 1-72-1543410.1
Update Date:2013-05-24
Keywords:

Solution Type  Problem Resolution Sure

Solution  1543410.1 :   RAC ONE Db For DBFS Repository  


Related Items
  • Exadata X3-2 Quarter Rack
  •  
  • Oracle Database - Enterprise Edition
  •  
Related Categories
  • PLA-Support>Eng Systems>Exadata/ODA/SSC>Oracle Exadata>DB: Exadata_EST
  •  




Created from <SR 3-7015321678>

Applies to:

Exadata X3-2 Quarter Rack - Version All Versions to All Versions [Release All Releases]
Oracle Database - Enterprise Edition - Version 11.2.0.3 to 11.2.0.3 [Release 11.2]
Information in this document applies to any platform.

Symptoms

 Following "Configuring DBFS on Oracle Database Machine (Doc ID 1054431.1)" to setup dbfs on a RAC One Node and find that DBFS mounting via Oracle Clusterware will not work. The crsctl start command fails with CRS-2674.

crsctl start resource dbfs_mount
CRS-2672: Attempting to start 'ora.prddbfs.db' on 'hostname01'
CRS-2676: Start of 'ora.prddbfs.db' on 'hostname01' succeeded
CRS-2672: Attempting to start 'ora.prddbfs.dbfs.svc' on 'hostname01'
CRS-2672: Attempting to start 'dbfs_mount' on 'hostname01'
CRS-2676: Start of 'ora.prddbfs.dbfs.svc' on 'hostname01' succeeded
CRS-2674: Start of 'dbfs_mount' on 'hostname01' failed
CRS-2679: Attempting to clean 'dbfs_mount' on 'hostname01'
CRS-2681: Clean of 'dbfs_mount' on 'hostname01' succeeded
CRS-2673: Attempting to stop 'ora.prddbfs.dbfs.svc' on 'hostname01'
CRS-2677: Stop of 'ora.prddbfs.dbfs.svc' on 'hostname01' succeeded
CRS-2527: Unable to start 'dbfs_mount' because it has a 'hard' dependency on 'ora.prddbfs.db'
CRS-2525: All instances of the resource 'ora.prddbfs.db' are already running; relocate is not allowed because the force option was not specified
CRS-4000: Command Start failed, or completed with errors.

Review of /var/log/messages shows following messages indicating that the ORACLE_SID is set to null value

Apr  3 17:14:11 hostname01 DBFS_/dbfs_direct: mount-dbfs.sh mounting DBFS at /dbfs_direct from database PRDDBFS
Apr  3 17:14:12 hostname01 DBFS_/dbfs_direct: ORACLE_SID is                                <<<< not set to any value
Apr  3 17:14:12 hostname01 DBFS_/dbfs_direct: No running ORACLE_SID available on this host, exiting

The instance however is running and can be accessed via sqlplus

ps -ef|grep pmon
oracle    49499      1  0 15:57 ?        00:00:00 ora_pmon_PRDDBFS_1
oracle    62662      1  0 10:33 ?        00:00:03 asm_pmon_+ASM2
oracle    63520      1  0 10:34 ?        00:00:04 ora_pmon_TSTORD6_1

srvctl status database -d prddbfs
Instance PRDDBFS_1 is running on node edw1dbadm02

Changes

 The process works on non RAC One Node setups.

Cause

 The mount-dbfs.sh script runs following commands to set ORACLE_SID

 ### set the ORACLE_SID dynamically based on OCR info, if it is running
 export ORACLE_SID=$($SRVCTL status instance -d $DBNAME -n `$HN` | \
                     $GREP 'is running' | $AWK '{print $2}' )
 logit info "ORACLE_SID is $ORACLE_SID"

 ### if there's no SID defined locally or it isn't running, stop
 if [ -z "$ORACLE_SID" -a "$WALLET" = 'false' ]; then
   logit error "No running ORACLE_SID available on this host, exiting"
   exit 2
 fi

The $SRVCTL status instance -d $DBNAME -n `$HN` expects to see following message

Instance PRDDBFS_1 is running on node hostname01

In this case, in a RAC One Node environment, the srvctl is returning following indicating the command is not supported

srvctl status instance -d PRDDBFS -n hostname01
PRKO-2136 : 'srvctl start/stop/enable/disable/modify/status/setenv/getenv/unsetenv instance' commands are not supported with RAC One Node databases

 

Solution

 Modify the mount-dbfs.sh script to either hardcode the ORACLE_SID or change process to check pmon to see if instance is running

ie

From:

export ORACLE_SID=$($SRVCTL status instance -d $DBNAME -n `$HN` | \
                     $GREP 'is running' | $AWK '{print $2}' )

To:

export ORACLE_SID=$(ps -ef|$GREP -i pmon_$DBNAME|$GREP -v grep|$AWK '{print $8}'|sed -e 's/ora_pmon_//g')

References

<NOTE:1054431.1> - Configuring DBFS on Oracle Database Machine

Attachments
This solution has no attachment
  Copyright © 2018 Oracle, Inc.  All rights reserved.
 Feedback