安裝和解除安裝clusterware過程中的各種問題分析

dawn009發表於2014-02-14

本文轉自:

http://blog.sina.com.cn/s/blog_a32eff280100ymqx.html  在此感謝作者的辛勤勞動

一、安裝clusterware
安裝clusterware之前,前期的準備工作一定要做好,比如建立節點之間的SSH,建立ASM磁碟,修改配置檔案和許可權以及保證你的Linux圖形介面可以正常執行,也就是說可以用startx進入Linux desktop等等,這些都要順利透過,不然安裝clusterware和oracle都會有各種問題,這些問題真的很讓人很是頭疼啊,我是真的領會到了,呵呵,傷不起啊!安裝步驟如下:
1,用startx進入圖形介面,將[甲骨文資料庫10g.第2版.for.linux].10201_clusterware_linux32.zip壓縮包拷到某個目錄下,最好把檔名修改成英文。
注意:儘量不要在windows下解壓完之後將檔案拷到Linux,這樣有可能對檔案會造成破壞。
2,在root使用者#xhost +;如果顯示Unable to display "",說明xhost沒用正常啟動,可以參考博文

http://blog.sina.com.cn/s/blog_a32eff280100ykyq.html進行設定。並且檢視DISPLAY環境變數的值,echo

$DISPLAY;如果是0.0或者是其他的,此時要修改他的值,比如我的是export DISPLAY=192.168.123.114:0.0;
192.168.123.114是我節點myrac1的網路卡eth0的IP地址(public),而不是你連線Internet的IP地址。切記!
3,開始安裝clusterware了,在這過程中有很多錯誤和警告,因為每個人的問題可能會不一樣,我總結一下我遇到的問題
A,我的RAC是安裝在/oracle/product/crs目錄下的,ocr放在/dev/raw/raw1下,voting disk放在/dev/raw/raw2下,每次重啟系統,這兩個目錄的所有者和組都會被改成root,當時是由oracle這個使用者建立的,這時把目錄所有者和組改成oracle和dba就可以了。
B,install完之後需要以root使用者在各個節點執行兩個指令碼orainsRoot.sh和root.sh,如果你在各個節點執行完之後,下面的檢驗過不去,會提示OUI-25031這個錯誤,這個問題我在網上看了很多,答案都是一致的,要修

改/oracle/product/crs/bin/vipca這個檔案,在123行if下面增加一行unset LD_ASSUME_KERNEL,還要修改檔案

srvctl,找到如下內容:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
這一行的後面增加如下一行,很多人都說新增加一行,可是我試了好幾次都是不行的,我現在還沒搞清楚問題出在哪裡?unset LD_ASSUME_KERNEL,既然我們知道有這個錯誤存在,所以我們在執行root.sh之前就修改好這兩個檔案,最後在myrac2下以root使用者執行root.sh就可以了!你會發現前兩個檢查會順利透過,第三個Failed失敗了,這個沒關係,在myrac2執行./vipca註冊資源就行了。
C,所有的工作基本上做完了,/oracle/product/crs/bin/crs_stat -t -v;測試一下吧,OK!


二、解除安裝clusterware
1,解除安裝Rac主要是針對安裝失敗,或者是即使你修改了檔案vipca和srvctl,執行root.sh第一項還是Failed,這時候就需要重新安裝clusterware,必須先解除安裝clusterware後才能安裝,不然會報各種令你頭大的錯誤,讓你很是鬱悶,即使你解除安裝不乾淨,重新安裝clusterware也有問題,它沒有windows那麼方便,是在很麻煩的。
2,第一步:在各個節點以root執行/oracle/product/crs/install/rootdelete.sh和rootdeinstall.sh這兩個指令碼;第二步,再次執行clusterware的./runInstaller進行安裝畫面,Remove掉安裝的檔案;這兩步是把主要的檔案刪除了,其實還有很多檔案分散在各個目錄下,也會給重新安裝RAC帶來錯誤或者警告,網上很多人都總結了在不同版本Linux下的刪除策略,大家可以去參考:
Sun:
       rm /etc/init.d/init.cssd 
       rm /etc/init.d/init.crs 
       rm /etc/init.d/init.crsd 
       rm /etc/init.d/init.evmd 
       rm /etc/rc3.d/K96init.crs
       rm /etc/rc3.d/S96init.crs
       rm -Rf /var/opt/oracle/scls_scr 
       rm -Rf /var/opt/oracle/oprocd
       rm /etc/inittab.crs 
       cp /etc/inittab.orig /etc/inittab 
Linux:
       rm /etc/oracle/*
       rm -f /etc/init.d/init.cssd 
       rm -f /etc/init.d/init.crs 
       rm -f /etc/init.d/init.crsd 
       rm -f /etc/init.d/init.evmd 
       rm -f /etc/rc2.d/K96init.crs
       rm -f /etc/rc2.d/S96init.crs
       rm -f /etc/rc3.d/K96init.crs
       rm -f /etc/rc3.d/S96init.crs
       rm -f /etc/rc5.d/K96init.crs
       rm -f /etc/rc5.d/S96init.crs
       rm -Rf /etc/oracle/scls_scr
       rm -f /etc/inittab.crs 
       cp /etc/inittab.orig /etc/inittab 
HP-UX:
       rm /sbin/init.d/init.cssd 
       rm /sbin/init.d/init.crs 
       rm /sbin/init.d/init.crsd 
       rm /sbin/init.d/init.evmd 
       rm /sbin/rc2.d/K960init.crs
       rm /sbin/rc2.d/K001init.crs
       rm /sbin/rc3.d/K960init.crs
       rm /sbin/rc3.d/S960init.crs
       rm -Rf /var/opt/oracle/scls_scr 
       rm -Rf /var/opt/oracle/oprocd
       rm /etc/inittab.crs 
       cp /etc/inittab.orig /etc/inittab 
HP Tru64:
       rm /sbin/init.d/init.cssd 
       rm /sbin/init.d/init.crs 
       rm /sbin/init.d/init.crsd 
       rm /sbin/init.d/init.evmd 
       rm /sbin/rc3.d/K96init.crs
       rm /sbin/rc3.d/S96init.crs
       rm -Rf /var/opt/oracle/scls_scr 
       rm -Rf /var/opt/oracle/oprocd
       rm /etc/inittab.crs 
       cp /etc/inittab.orig /etc/inittab 
IBM AIX:
       rm /etc/init.cssd 
       rm /etc/init.crs 
       rm /etc/init.crsd 
       rm /etc/init.evmd 
       rm /etc/rc.d/rc2.d/K96init.crs
       rm /etc/rc.d/rc2.d/S96init.crs
       rm -Rf /etc/oracle/scls_scr
       rm -Rf /etc/oracle/oprocd
       rm /etc/inittab.crs 
       cp /etc/inittab.orig /etc/inittab
3,最好祝大家成功!O(∩_∩)O哈哈~!

-------比較完全的參見如下:

現象描述:  
在oracle 10g/11g版本引進的oracle叢集軟體oracle clusterware,如果需要在伺服器上重新安裝Oracle clusterware(crs),首先必須把Oracle clusterware(crs)刪除乾淨。 
     
告警資訊:  
因Oracle clusterware(crs)未刪除乾淨,將導致在安裝crs時執行root.sh命令失敗。

原因分析:  
ocr、voting檔案需要重新低格(清零)才能被複用。

處理過程:  
約定:*操作步驟只需在其中任意一個節點執行即可,否則在所有節點都要執行 
 
一、指令碼自動刪除
切換到root使用者
$Su – root
#cd $ORA_CRS_HOME/install

1、執行rootdelete.sh指令碼
# ./rootdelete.sh 
Getting local node name
NODE = rp5470b
PRKO-2006 : Invalid node name: rp5470b
Stopping resources. 
This could take several minutes.
Error while stopping resources. Possible cause: CRSD is down.
Stopping Cluster Synchronization Services. 
Unable to communicate with the Cluster Synchronization Services daemon.
Oracle CRS stack is not running.
Oracle CRS stack is down now.
Removing script for Oracle Cluster Ready services
Updating ocr file for downgrade
Cleaning up SCR settings in '/var/opt/oracle/scls_scr'
Cleaning up Network socket directories
 
2、執行rootdeinstall.sh指令碼*
# ./rootdeinstall.sh 
Verifying existence of ocr.loc file
Removing contents from OCR mirror device
2560+0 records in
2560+0 records out
Removing contents from OCR device
2560+0 records in
2560+0 records out

3、 使用Oracle Universal Installer解除安裝CRS軟體   
$export DISPLAY=10.69.24.124:0.0
$./runInstaller


二、手工刪除

1、停止所有的服務
(資料庫、ASM、監聽、nodeapps)

2、停止CRS
#Crsctl stop crs
#init.crs stop crs

3、 刪除與系統啟動相關的檔案
Sun:
       rm /etc/init.d/init.cssd 
       rm /etc/init.d/init.crs 
       rm /etc/init.d/init.crsd 
       rm /etc/init.d/init.evmd 
       rm /etc/rc3.d/K96init.crs
       rm /etc/rc3.d/S96init.crs
       rm -Rf /var/opt/oracle/scls_scr 
       rm -Rf /var/opt/oracle/oprocd
       rm /etc/inittab.crs 
       cp /etc/inittab.orig /etc/inittab 
Linux:
       rm /etc/oracle/*
       rm -f /etc/init.d/init.cssd 
       rm -f /etc/init.d/init.crs 
       rm -f /etc/init.d/init.crsd 
       rm -f /etc/init.d/init.evmd 
       rm -f /etc/rc2.d/K96init.crs
       rm -f /etc/rc2.d/S96init.crs
       rm -f /etc/rc3.d/K96init.crs
       rm -f /etc/rc3.d/S96init.crs
       rm -f /etc/rc5.d/K96init.crs
       rm -f /etc/rc5.d/S96init.crs
       rm -Rf /etc/oracle/scls_scr
       rm -f /etc/inittab.crs 
       cp /etc/inittab.orig /etc/inittab 
HP-UX:
       rm /sbin/init.d/init.cssd 
       rm /sbin/init.d/init.crs 
       rm /sbin/init.d/init.crsd 
       rm /sbin/init.d/init.evmd 
       rm /sbin/rc2.d/K960init.crs
       rm /sbin/rc2.d/K001init.crs
       rm /sbin/rc3.d/K960init.crs
       rm /sbin/rc3.d/S960init.crs
       rm -Rf /var/opt/oracle/scls_scr 
       rm -Rf /var/opt/oracle/oprocd
       rm /etc/inittab.crs 
       cp /etc/inittab.orig /etc/inittab 
HP Tru64:
       rm /sbin/init.d/init.cssd 
       rm /sbin/init.d/init.crs 
       rm /sbin/init.d/init.crsd 
       rm /sbin/init.d/init.evmd 
       rm /sbin/rc3.d/K96init.crs
       rm /sbin/rc3.d/S96init.crs
       rm -Rf /var/opt/oracle/scls_scr 
       rm -Rf /var/opt/oracle/oprocd
       rm /etc/inittab.crs 
       cp /etc/inittab.orig /etc/inittab 
IBM AIX:
       rm /etc/init.cssd 
       rm /etc/init.crs 
       rm /etc/init.crsd 
       rm /etc/init.evmd 
       rm /etc/rc.d/rc2.d/K96init.crs
       rm /etc/rc.d/rc2.d/S96init.crs
       rm -Rf /etc/oracle/scls_scr
       rm -Rf /etc/oracle/oprocd
       rm /etc/inittab.crs 
       cp /etc/inittab.orig /etc/inittab
       
4、 Kill掉遺留的CRS程式(或重啟機器)
       ps -ef | grep crs   
       kill
       ps -ef | grep evm
       kill
       ps -ef | grep css   
       kill
       
5、 刪除臨時檔案
    rm -f /var/tmp/.oracle
    或
    rm -f /tmp/.oracle 
    
6、 刪除/etc/oracle/ocr.loc檔案

7、使用Oracle Universal Installer解除安裝CRS軟體(參照一、3、)

8、擦除ocr和voting磁碟的內容*
    dd if=/dev/zero of=/dev/vg02/rocr1 bs=8192 count=2560
    dd if=/dev/zero of=/dev/vg02/rocr2 bs=8192 count=2560
    dd if=/dev/zero of=/dev/vg02/rvoting1 bs=8192 count=12800
    dd if=/dev/zero of=/dev/vg02/rvoting2 bs=8192 count=12800
    dd if=/dev/zero of=/dev/vg02/rvoting3 bs=8192 count=12800 
刪除完成,可以重新安裝Oracle Clusterware。 


建議與總結:  
在重新安裝crs前,必須把原先的crs清除乾淨。

-------也有可能報錯如下,相關解決辦法也如下示----------

You do not have sufficient permissions to access the inventory

最近在Solaris 10上安裝oracle10g,執行./runInstaller報了個錯,後來發現是解除安裝oracle沒有刪乾淨

大概如下:

You do not have sufficient permissions to access the inventory
'/export/home/oracle/oraInventory'. Installation cannot continue. Make sure
that you have read/write permissions to the inventory directory and restart
the installer.: Permission denied


大概意思就是對目錄沒有讀寫許可權,但我檢查了多次,oracle:dba許可權正常,所以應該不是許可權的問題。
由於之前兄弟已經在該機器安裝了oracle10g,我解除安裝時,直接刪除了ORACLE_HOME目錄,後來我將要安裝的ORACLE_HOME和原來的ORACLE_HOME不一樣。

感覺很奇怪,既然以前的安裝檔案目錄全都刪了,為什麼它還能知道以前的ORACHE_HOME,唯一可能性就是沒有刪乾淨,一定還有檔案記錄著以前的安裝痕跡。
將本標題在Google搜了一下,進入官網
Workaround: Change the permissions on the directory pointed to by oraInst.loc or use the same group id as previous installs. If there are no Oracle installations, you can delete the oraInst.loc file, and the plug-in will set this up correctly.
提示 oraInst.loc

執行% find / -name "oraInst.loc"
找到了:/var/opt/oracle/目錄下有兩個檔案oraInst.loc oratab
我cat了一下oraInst.loc,以前的安裝路徑還在,呵呵,直接將/var/opt/oracle/刪除!
再次執行./runInstaller,哈哈,一切正常,一路下一步,Like windows, like a fool!




本文出自 “richard的筆記-積微成著” 部落格,請務必保留此出處http://zxf261.blog.51cto.com/701797/762044


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29119536/viewspace-1081344/,如需轉載,請註明出處,否則將追究法律責任。

相關文章