Database Reference
In-Depth Information
There is a loop in
/etc/init.d/init.cssd
that calls
crsctl
check
boot
until it returns exit
code 0. With all voting disks offline, this will never happen, so CRS loops forever.
3
# crsctl check boot
Failure reading from offset 2560 in device votedisk
Failure 1 checking the CSS voting disk 'votedisk'.
Not able to read adequate number of voting disks
# echo $?
6
Another way to simulate the failure of voting disks as well as any other files such as the
Oracle Cluster Registry, ASM disks, or data files, is to overwrite the first few blocks with binary
zeros. This can be done with the following
dd
(device dump) command:
dd if=/dev/zero bs=8192 count=2 of=voting_disk_file
Obviously this is a destructive test, so you need to take a backup of your voting disks with
dd
before you attempt this. However, it has the advantage that it can be performed while Oracle
Clusterware is running, whereas the
raw
command cannot remap a device that is in use.
4
Errors
caused by this latter test are properly reported in the documented log files below
$ORA_CRS_HOME/log/
nodename
.
Back to my initial claim that an
oracle
executable with RAC linked in cannot be used to
start a DBMS instance, unless Oracle Clusterware is functional. In case ASM is used, an ASM
instance must be started before the DBMS instance. Here's some evidence (run SQL*Plus as
the owner of the ORACLE installation):
$ env ORACLE_SID=+ASM1 sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Thu Jul 26 02:35:22 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> STARTUP
ORA-29701: unable to connect to Cluster Manager
For completeness, let's confirm that a similar error is reported by an RDBMS instance.
$ env ORACLE_SID=TEN1 sqlplus / as sysdba
SQL> STARTUP NOMOUNT
ORA-29702: error occurred in Cluster Group Service operation
Even
STARTUP
NOMOUNT
does not work when Cluster Group Services are unavailable.
Removing the RAC Option with the Make Utility
As long as ASM is not in use, it is very easy to convert the
oracle
executable from RAC to single
instance and to get one instance in the cluster running. Calling
make
as the owner of the ORACLE
installation (usually oracle) and specifying the undocumented
make
target
rac_off
does the job.
3.
The same happens when all copies of the OCR are unavailable. The error reported in my test was “OCR
initialization failed accessing OCR device: PROC-26: Error while accessing the physical storage Operating
System error [Success] [0]”.
4.
The error thrown is “Error setting raw device (Device or resource busy)”.