一、故障现象
suse11a:/u01/app/crs # /u01/app/crs/root.sh
WARNING: directory '/u01/app' is not owned by root
Checking to see if Oracle CRS stack is already configured
/etc/oracle does not exist. Creating it now.
Setting the permissions on OCR backup directory
Setting up NS directories
Failed to upgrade Oracle Cluster Registry configuration #此处为错误提示
Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
Linux x86
IBM: Linux on POWER Systems
Linux x86-64
Linux Itanium
***Checked for relevance on 11-Mar-2013***
SYMPTOMS
On a new clusterware installation on Linux root.sh script is failing with the following error while running root.sh on the first node:
PROT-1: Failed to initialize ocrconfig
Failed to upgrade Oracle Cluster Registry configuration
The problem can be tracked down to clsfmt command:
./clsfmt ocr /dev/raw/raw1
clsfmt: Received unexpected error 4 from skgfifi
skgfifi: Additional information: -2
Additional information: 1000718336
CHANGES
It has been found that the following changes can cause this problem to occur:
1. Use Mutiple Path (MP) disk configuration, may hit this issue.
2. Use EMC device (powerpath**) may hit this issue.
But it was not confirmed that these are the only things that can cause this problem to occur, as it has been found that on other hardware and configuration the problem might occur, the key change in this issue is that if the disk size presented from the storage to the cluster nodes are not dividable by 4K the problem should occur.
CAUSE
This issue is addressed in Bug:4679769 which states that this is a known issue with the clusterware installation on platforms: Linux x86, x86-64 and "IBM Power Based Linux".
SOLUTION
Before running the root.sh on the first node in the cluster do the following:
1. Download Patch:4679769 from Metalink (contains a patched version of clsfmt.bin).
2. Do the following steps as stated in the patch README to fix the problem:
Note: clsfmt.bin need only be replaced on the 1st node of the cluster
# Patch Installation Instructions:
# --------------------------------
# To apply the patch, unzip the PSE container file:
#
# p4679769_10201_LINUX.zip
#
# Set your current directory to the directory where the patch
# is located:
#
# % cd 4679769
#
# Copy the clsfmt.bin binary to the $ORACLE_HOME/bin directory where
# clsfmt is being run:
#
# % cp $ORACLE_HOME/bin/clsfmt.bin $ORACLE_HOME/bin/clsfmt.bin.bak
# % cp clsfmt.bin $ORACLE_HOME/bin/clsfmt.bin
#
# Ensure permissions on the clsfmt.bin binary are correct:
#
# % chmod 755 $ORACLE_HOME/bin/clsfmt.bin
3. Run the root.sh script and proceed with the installation.