RAC升級到10.2.0.4碰到的幾個問題及處理辦法

lpwebnet發表於2013-11-21

RAC升級到10.2.0.4碰到的幾個問題及處理辦法

中午將10.2.0.1的RAC資料庫升級到10.2.0.4。在升級過程中碰到了幾個問題,記錄一下解決辦法。

   第一個是在CRS打完Patch之後執行root102.sh指令碼時報:

 

Preparing to recopy patched init and RC scripts.

Recopying init and RC scripts.

ocrcheck failed. Check /opt/oracle/product/10.2.0.1/crs/srvm/log for more details

 

這一步事實上是這時候CRS無法啟動,而且在/opt/oracle/product/10.2.0.1/crs/srvm/log這個目錄下面沒有記錄任何東西。嘗試著手工啟動CRS,報:

 

/opt/oracle/product/10.2.0.1/crs/bin/crsctl.bin: error while loading shared libraries: /opt/oracle/product/10.2.0.1/crs/lib/libclntsh.so.10.1: file too short

 

檢視一下libclntsh.so.10.1,檔案大小居然為0。檢視該目錄下的其他檔案的大小和更改時間和備份的目錄相比都沒變化,解決辦法便是 將報錯的libclntsh.so.10.1檔案從升級之前備份的CRS目錄COPY回來,再執行指令碼就可以了。可見在升級之前做好備份有多重要。

   第二個問題是打完PATCH,準備用DBUA升級資料庫時將所有節點啟動至MOUNT狀態,DBUA執行下一步時報錯:

 

DBUA thinks this is a Rerun operation and is trying to connect to the database with oracle home /opt/oracle/product/10.2.0.1/db. If you believe this is not a Rerun operation, remove the below file and invoke DBUA again.

 /opt/oracle/product/10.2.0.1/db/cfgtoollogs/dbua/logs/Welcome_dwdb.txt

 

但是Welcome_dwdb.txt這個檔案壓根不存在。這時候只好拋棄DBUA了,手工執行升級指令碼,這樣資料庫才能正常升級成功。

   第三個問題是發現發現我們原來RAC內部互聯採用的是Infiniband RDS協議變成普通的UDP協議互聯了:

 

Fri Mar 28 21:12:14 2008

cluster interconnect IPC version:Oracle UDP/IP (generic)

IPC Vendor 1 proto 2

 

    這個問題是由於在升級過程中ORACLE又重新將內部互聯的方案更改為預設的UDP方式。需要重新配置一下RDS內部互聯,在配置之前需要把ASM和資料庫都停掉,然後重新RELINK成RDS互聯:

 

$ cd $ORACLE_HOME/rdbms/lib

$ make -f ins_rdbms.mk ipc_rds ioracle

 

這樣以後,內部互聯就恢復成正常的RDS了:

 

Fri Mar 28 21:25:39 2008

cluster interconnect IPC version:Oracle RDS/IP (generic)

 

在升級之後我們碰到了一個新的BUG,資料庫會報:

 

ORA-00600: internal error code, arguments: [kddummy_blkchk], [47], [935468], [18038], [], [], [], []

 

解決辦法是將db_block_checksum這個引數改為FALSE,不過這樣做會有較大的風險,目前這個BUG ORACLE已經提交BUG開發部門進行開發了。

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

相關文章