首页 > 代码库 > 在linux AS5.4 64bit 安装CRS时,执行root.sh时报错

在linux AS5.4 64bit 安装CRS时,执行root.sh时报错

在linux AS5.4 64bit 安装CRS时,执行root.sh时报错

[root@rac02 crs]# sh root.sh 
WARNING: directory ‘/opt/ora10g/product/10.2.0‘ is not owned by root
WARNING: directory ‘/opt/ora10g/product‘ is not owned by root
WARNING: directory ‘/opt/ora10g‘ is not owned by root
WARNING: directory ‘/opt‘ 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
/opt/ora10g/product/10.2.0/crs/install/rootconfig: line 815: 10438  segment fault                 
$CH/bin/ocrconfig -upgrade $CRS_ORACLE_OWNER $CRS_DBA_GROUP
Failed to upgrade Oracle Cluster Registry configuration


首先开始检查连个节点的/etc/hosts的IP与主机名对应是否都正确,检查/etc/sysconfig/network ,裸设备的权限,检查无误后没找到其他原因
重新安装依旧失败。。。。

按照metalink做法
Failed to upgrade Oracle Cluster Registry segmentation fault executing ocrconfig [ID 393553.1] 

适用于: 
Linux x86-64 Oracle Enterprise  Version: 10.1.0.2 to 11.1.0.7 - Release: 10.1 to 11.1

Symptoms
Segmentation fault when  root.sh execute ocrconfig 


Checking to see if Oracle CRS stack is already configured 
Setting the permissions on OCR backup directory 
Setting up NS directories 
/u00/oracle/product/10.2.0/crs/install/rootconfig: line 815: 
20749 Segmentation fault $CH/bin/ocrconfig -upgrade $CRS_ORACLE_OWNER 
$CRS_DBA_GROUP 
Failed to upgrade Oracle Cluster Registry configuration

导致root.sh执行失败的原因是:
The symbolic link to gcc32 and g++32 were broken . 

Action:

#which gcc 
/usr/bin/gcc 

#which g++ 
/usr/bin/g++ 

#ls -ltra /usr/bin/gcc*
-rwxr-xr-x 2 root root 94360 Dec 1 2004 /usr/bin/gcc32 
-rwxr-xr-x 1 root root 914 Feb 23 2005 /usr/bin/gcc 

#ls -ltra /usr/bin/g+* 
-rwxr-xr-x 3 root root 95576 Dec 1 2004 /usr/bin/g++32 
-rwxr-xr-x 1 root root 914 Feb 23 2005 /usr/bin/g++ 


Solution
 
1. #cd /usr/bin  
2. #mv gcc gcc.script 
3. #mv g++ g++.script 
4. #ln -s gcc32 gcc 
5. #ln -s g++32 g++ 




以root身份执行以下 1-4


1.Make sure the symbolic link is right  You need to see something like 

#ls -lrt /usr/bin/gcc

lrwxrwxrwx 1 root root 5 Feb 16 2006 /usr/bin/gcc -> gcc32 

2.ls -lrt /usr/bin/g++ 

lrwxrwxrwx 1 root root 5 Feb 16 2006 /usr/bin/g++ -> g++32 

3. Remove the CRS Note 239998.1 How to Clean Up After a Failed Oracle Clusterware (CRS)

4. Reinstall CRS 



metalink上的报错是line 815: 
20749 Segmentation fault $CH/bin/ocrconfig -upgrade $CRS_ORACLE_OWNER,
但我的报错却是
line 815: 10438  segment fault                 
$CH/bin/ocrconfig -upgrade $CRS_ORACLE_OWNER $CRS_DBA_GROUP,错误类似,还是抱着试试的态度试了下
我的linux是AS5.4 64位的,起初按照metalink的做法并未成功,折腾了好久
最后查看/usr/bin目录下并没有gcc32
只有gcc34,后又按照metalink的 Solution 将gcc32的部分替换成gcc34,以下是执行步骤

Solution
1.root@rac01]# cd /usr/bin  

2.[root@rac01 bin]# mv gcc       gcc.script

3.[root@rac01 bin]# mv g++       g++.script 

4.[root@rac01 bin]# ln -s gcc34  gcc 

5.[root@rac01 bin]# ln -s g++34  g++ 

7.[root@rac01 bin]# ls -lrt /usr/bin/gcc

lrwxrwxrwx 1 root root 5 04-21 19:06 /usr/bin/gcc -> gcc34

8.[root@rac01 bin]# ls -lrt /usr/bin/g++ 

lrwxrwxrwx 1 root root 5 04-21 19:06 /usr/bin/g++ -> g++34

9.删除Linux两个节点的CRS

10. 分别在两个节点运行$ORA_CRS_HOME/install目录的rootdelete.sh,rootdeinstall.sh 脚本
 
Rootdelete.sh 接受如 nosharedvar/sharedvar, and nosharedhome/sharedhome的选项

11. Stop the Nodeapps on all nodes: 

 root@rac01 bin]# srvctl stop nodeapps -n 

12.删除两个节点的以下目录
 root@rac01]# rm /etc/oracle/*
 root@rac01]# rm -f  /etc/init.d/init.cssd 
 root@rac01]# rm -f  /etc/init.d/init.crs 
 root@rac01]# rm -f  /etc/init.d/init.crsd 
 root@rac01]# rm -f  /etc/init.d/init.evmd 
 root@rac01]# rm -f  /etc/rc2.d/K96init.crs
 root@rac01]# rm -f  /etc/rc2.d/S96init.crs
 root@rac01]# rm -f  /etc/rc3.d/K96init.crs
 root@rac01]# rm -f  /etc/rc3.d/S96init.crs
 root@rac01]# rm -f  /etc/rc5.d/K96init.crs
 root@rac01]# rm -f  /etc/rc5.d/S96init.crs
 root@rac01]# rm -Rf /etc/oracle/scls_scr
 root@rac01]# rm -f  /etc/inittab.crs 
 root@rac01]# cp /etc/inittab.orig /etc/inittab
       


13. 如果有以下进程,  kill掉 EVM, CRS, and CSS 进程
 
  所有节点上执行
  
   #ps -ef | grep crs	
	kill  PID

   #ps -ef | grep evm
	kill  PID

   #ps -ef | grep css	
	kill PID


14. 在两个节点删除.oracle

    #rm -f /var/tmp/.oracle/*

    #rm -f /tmp/.oracle/*

15. Remove the ocr.loc 
   Usually the ocr.loc can be found at /etc/oracle

16. De-install the CRS home in the Oracle Universal Installer

17.删除CRS的安装目录
 我的目录是 /opt/ora10g/product/10.2.0/crs/install

 在两个节点分别执行

 #rm -rf /ora10g/*

 18. 清空OCR,VotingDisk裸设备

  root@rac01]# dd if=/dev/zero of=/dev/raw/raw1  bs=8192 count=4000
  root@rac01]# dd if=/dev/zero of=/dev/raw/raw2  bs=8192 count=4000

  确保raw权限正确

  [root@rac01 ~]# ls  -al /dev/raw/
总计 0
drwxr-xr-x  2 oracle oinstall    120 04-21 19:14 .
drwxr-xr-x 14 root   root       4660 04-21 20:50 ..
crw-r--r--  1 oracle oinstall 162, 1 04-22 11:33 raw1
crw-r-----  1 oracle oinstall 162, 2 04-21 19:18 raw2
crw-r-----  1 oracle oinstall 162, 3 04-22 11:33 raw3
crw-r-----  1 oracle oinstall 162, 4 04-22 11:33 raw4

 
 18.重新安装CRS  问题解决


References
NOTE:239998.1 - How to Clean Up After a Failed 10g or 11.1 Oracle Clusterware Installation


本文出自 “O Record” 博客,请务必保留此出处http://evils798.blog.51cto.com/8983296/1420921