ORA-01078 failure in processing system parameters

Oracle Database 11.2.0.4 RAC

Symptoms

Case Ⅰ:

~]$ srvctl start instance -d orcl -i orcl1
PRCR-1013 : Failed to start resource ora.orcl.db
PRCR-1064 : Failed to start resource ora.orcl.db on node oracle11gasm01
CRS-5017: The resource action "ora.orcl.db start" encountered the following error:
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/spfileorcl.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/spfileorcl.ora
ORA-12547: TNS:lost contact
. For details refer to "(:CLSN00107:)" in "/u01/app/11.2.0/grid/log/oracle11gasm01/agent/crsd/oraagent_oracle//oraagent_oracle.log".

CRS-2674: Start of 'ora.orcl.db' on 'oracle11gasm01' failed

Case Ⅱ:

~]$ srvctl start instance -d orcl -i orcl2

PRCR-1013 : Failed to start resource ora.orcl.db
PRCR-1064 : Failed to start resource ora.orcl.db on node oracle11grac04
CRS-5017: The resource action "ora.orcl.db start" encountered the following error:
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/spfileorcl.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/spfileorcl.ora
ORA-01034: ORACLE not available
ORA-27123: unable to attach to shared memory segment
Linux-x86_64 Error: 13: Permission denied
Additional information: 26
Additional information: 884738
. For details refer to "(:CLSN00107:)" in "/u01/app/11.2.0/grid/log/oracle11grac04/agent/crsd/oraagent_oracle/oraagent_oracle.log".

CRS-2674: Start of 'ora.orcl.db' on 'oracle11grac04' failed

Cause

The issue is caused by setuid and setgid bit missing for oracle binary under GRID_HOME.

~]$ ls -l $ORACLE_HOME/bin/oracle
-rwsr-s--x 1 oracle asmadmin 239501496 May 30 21:03 /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle

~]$ ls -l $GRID_HOME/bin/oracle
-rwxr-x--x 1 grid oinstall 209840352 May 29 15:06 /u01/app/11.2.0/grid/bin/oracle

Solution

~]$ chmod 6755 $GRID_HOME/bin/oracle

~]$ ls -l $GRID_HOME/bin/oracle
-rwsr-sr-x 1 grid oinstall 209840352 May 29 15:06 /u01/app/11.2.0/grid/bin/oracle