Solaris10下安裝Oracle10203RAC環境(五)

yangtingkun發表於2007-04-06

前一陣剛剛才測試環境下裝完Solaris 8下的ORACLE RAC。結果發現這次採購的F490硬體居然不支援Solaris 8。只好將作業系統升級到Solaris 10

前面已經對Solaris 8下的安裝進行了比較詳細的描述,這裡只是簡單記錄一下Solaris 10下的安裝步驟。和8類似的步驟會簡單帶過。

這篇文件簡單描述一下RAC環境安裝過程中碰到的問題。

RAC安裝的準備工作可以參考:Solaris10下安裝Oracle10203RAC環境(一):http://yangtingkun.itpub.net/post/468/276589

ORACLE CLUSTERWARE的安裝可以參考:Solaris10下安裝Oracle10203RAC環境(二):http://yangtingkun.itpub.net/post/468/277075

ORACLE DATABASE的安裝可以參考:Solaris10下安裝Oracle10203RAC環境(三):http://yangtingkun.itpub.net/post/468/277419

ORACLE 10203補丁安裝可以參考:Solaris10下安裝Oracle10203RAC環境(四):http://yangtingkun.itpub.net/post/468/277626


由於有了在Solaris8上安裝RAC的經驗,在Solaris10下安裝還算比較順利。

不過由於安裝的時候,採用了一些其他的配置方法,也碰到了一些問題。不過幾乎所有的問題都和作業系統版本無關,而是使用sshvolumn manager等造成的。

首先碰到的問題是User equivalence unavailable on all the nodes.錯誤。

這個錯誤產生有兩個原因,都是由於SSH造成的。一個是由於cluvfy工具本身的問題,在尋找ssh命令時去/usr/local/bin目錄下尋找。而另一個時由於ssh驗證造成的。關於這個問題的詳細描述,可以參考:RAC User Equivalence Check Failedhttp://yangtingkun.itpub.net/post/468/275147

第二個問題碰到的問題是Specified Nodes Are Not Clusterable

產生這個問題的原因也是兩個。一個是上面提到的SSH驗證的問題。必須啟動安裝程式的會話設定SSH的驗證,否則就會造成上面的這個問題。

另外一個原因是我在檢查系統網路情況的時候,發現一臺主機的第二個網路卡雖然載入了,但是沒有UP。造成這個的原因居然是/etc/hostname.ce1檔案中,多了一個回車。

這樣,在重啟系統後,會造成網路卡沒有UP,造成PRIVATE IP之間無法訪問,從而導致上面的問題。

root@ahrac1 # vi /etc/hostname.ce1

tradedb1-priv


~
"/etc/hostname.ce1" 2 lines, 15 characters
# reboot

root@ahrac1 # ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
ce0: flags=1000843 mtu 1500 index 2
inet 172.25.198.42 netmask ffff0000 broadcast 172.25.255.255
ether 0:14:4f:3b:56:75
ce1: flags=1000843 mtu 1500 index 3
inet 10.0.0.3 netmask ffffff00 broadcast 10.0.0.255
ether 0:14:4f:3b:56:75

注意,由於hostname.ce1中包含了兩行記錄,因此,重新啟動後,PRIVATE網路卡沒有自動UP,造成了上面的這個問題。將空行刪除後,重新系統,錯誤消失。(當然刪除空行後,直接將ce1網路卡UP即可,重啟是為了確認問題已經解決。)

第三個問題和裸裝置有關。

首先,使用裸裝置無法啟用FLASH RECOVERY AREA,因此選擇裸裝置後,就不要在建立資料庫的時候選擇FLASH RECOVERY AREA。否則會報錯。

其次,裸裝置沒有按照標準文件格式,將其大小放到最後。所以Oracle雖然根據對映檔案找到表空間對應的裸裝置,但是其大小設定和裸裝置不一致。這裡需要手工修改。

第三,裸裝置需要一些額外的預留空間。因此表空間資料檔案的大小至少應該比裸裝置建立的空間少1M。否則會空間不足的錯誤。

第四個問題是一個bug

在升級資料庫時碰到了ORA-600錯誤。這個問題已經在上一篇文章中進行了描述,這裡就不再重複了。

最後一個問題和VOLUMN MANAGER有關。

在安裝好資料庫之後,重啟了作業系統,結果發現資料庫沒有自動啟動。而透過手工啟動的方式也沒有效果:

root@ahrac1 # ./etc/init.d/init.crs start
Startup will be queued to init within 30 seconds.

重新啟動系統,並檢查後臺程式執行情況,結果發現:

root@ahrac1 # ps –ef|grep ora
oracle 1349 1312 0 15:05:26 ? 0:00 /data/oracle/product/10.2/crs/bin/crsctl.bin check boot
root 1511 880 0 15:05:33 pts/1 0:00 grep ora
oracle 1348 1313 0 15:05:26 ? 0:00 /data/oracle/product/10.2/crs/bin/crsctl.bin check boot
oracle 1313 1234 0 15:05:25 ? 0:00 sh -c /data/oracle/product/10.2/crs/bin/crsctl check boot > /tmp/crsctl.1234
oracle 1350 1215 0 15:05:26 ? 0:00 /data/oracle/product/10.2/crs/bin/crsctl.bin check boot
oracle 1215 1178 0 15:05:25 ? 0:00 sh -c /data/oracle/product/10.2/crs/bin/crsctl check boot > /tmp/crsctl.1178
oracle 1312 1232 0 15:05:25 ? 0:00 sh -c /data/oracle/product/10.2/crs/bin/crsctl check boot > /tmp/crsctl.1232
root@ahrac1 # more /tmp/crsctl.1234
OCR initialization failed accessing OCR device: PROC-26: Error while accessing the physical storage Operating System error [Permission denied] [13]

看這個問題,似乎是共享儲存的許可權問題。

進入共享儲存所在目錄:

root@ahrac1 # cd /dev/vx/rdsk/datadg/
root@ahrac1 # ls -l
total 0
crw------- 1 root root 308, 41000 Mar 27 14:40 ocr
crw------- 1 root root 308, 41001 Mar 27 14:40 ocr2
crw-rw---- 1 oracle oinstall 308, 41018 Mar 27 14:40 tradedb_control1
crw-rw---- 1 oracle oinstall 308, 41019 Mar 27 14:40 tradedb_control2
crw-rw---- 1 oracle oinstall 308, 41020 Mar 27 14:40 tradedb_control3
crw-rw---- 1 oracle oinstall 308, 41010 Mar 27 14:40 tradedb_example_1
crw-rw---- 1 oracle oinstall 308, 41023 Mar 27 14:40 tradedb_flasharea
crw-rw---- 1 oracle oinstall 308, 41022 Mar 27 14:40 tradedb_pwdfile
crw-rw---- 1 oracle oinstall 308, 41012 Mar 27 14:40 tradedb_redo1_1
crw-rw---- 1 oracle oinstall 308, 41013 Mar 27 14:40 tradedb_redo1_2
crw-rw---- 1 oracle oinstall 308, 41014 Mar 27 14:40 tradedb_redo1_3
crw-rw---- 1 oracle oinstall 308, 41015 Mar 27 14:40 tradedb_redo2_1
crw-rw---- 1 oracle oinstall 308, 41016 Mar 27 14:40 tradedb_redo2_2
crw-rw---- 1 oracle oinstall 308, 41017 Mar 27 14:40 tradedb_redo2_3
crw-rw---- 1 oracle oinstall 308, 41021 Mar 27 14:40 tradedb_spfile
crw-rw---- 1 oracle oinstall 308, 41009 Mar 27 14:40 tradedb_sysaux_1
crw-rw---- 1 oracle oinstall 308, 41005 Mar 27 14:40 tradedb_system_1
crw-rw---- 1 oracle oinstall 308, 41008 Mar 27 14:40 tradedb_temp_1
crw-rw---- 1 oracle oinstall 308, 41006 Mar 27 14:40 tradedb_undotbs1_1
crw-rw---- 1 oracle oinstall 308, 41007 Mar 27 14:40 tradedb_undotbs2_1
crw-rw---- 1 oracle oinstall 308, 41011 Mar 27 14:40 tradedb_users_1
crw------- 1 root root 308, 41002 Mar 27 14:40 vot
crw------- 1 root root 308, 41003 Mar 27 14:40 vot2
crw------- 1 root root 308, 41004 Mar 27 14:40 vot3

記得配置完成後,都是oracle。怎麼現在votocr都變成root型別的。想起剛開始不熟悉Volumn Manager的用法,因此建立vot等三個裸裝置的時候沒有指定使用者和組資訊。最後採用作業系統命名grant進行的授權。而其他的裸裝置檔案則是透過vxassist make tradedb_spfile 10m user=oracle group=oinstall mode=660方式建立的。

莫非是這個錯誤造成的crs無法啟動?

嘗試修改這幾個檔案的屬性:

root@ahrac1 # vxedit set user=oracle group=oinstall mode=660 vot
root@ahrac1 # vxedit set user=oracle group=oinstall mode=660 vot2
root@ahrac1 # vxedit set user=oracle group=oinstall mode=660 vot3
root@ahrac1 # vxedit set user=oracle group=oinstall mode=660 ocr
root@ahrac1 # vxedit set user=oracle group=oinstall mode=660 ocr2
root@ahrac1 # ls -l ocr*
crw-rw---- 1 oracle oinstall 308, 41000 Mar 27 14:40 ocr
crw-rw---- 1 oracle oinstall 308, 41001 Mar 27 14:40 ocr2
root@ahrac1 # ls -l vot*
crw-rw---- 1 oracle oinstall 308, 41002 Mar 27 14:40 vot
crw-rw---- 1 oracle oinstall 308, 41003 Mar 27 14:40 vot2
crw-rw---- 1 oracle oinstall 308, 41004 Mar 27 14:40 vot3

下面嘗試重新啟動crs

root@ahrac1 # /data/oracle/product/10.2/crs/bin/crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
root@ahrac1 # ps -ef|grep ora
oracle 4068 4067 0 16:06:45 ? 0:00 /bin/sh -c ulimit -c unlimited; cd /data/oracle/product/10.2/crs/log/ahrac1/css
oracle 4815 4809 0 16:07:09 ? 0:00 /data/oracle/product/10.2/crs/bin/racgmain start
oracle 4718 1 0 16:07:06 ? 0:00 /data/oracle/product/10.2/database/bin/tnslsnr LISTENER_AHRAC1 -inherit
root 3978 3917 0 16:06:43 ? 0:00 /data/oracle/product/10.2/crs/bin/oprocd run -t 1000 -m 500 -f
oracle 4940 4939 0 16:07:13 ? 0:00 /data/oracle/product/10.2/database/bin/racgmdb -s open
oracle 4321 3912 0 16:06:54 ? 0:00 /data/oracle/product/10.2/crs/bin/evmlogger.bin -o /data/oracle/product/10.2/cr
oracle 1135 1 0 15:45:27 ? 0:00 sh -c sh -c 'ulimit -c unlimited; cd /data/oracle/product/10.2/crs/log/ahrac1/e
oracle 4809 1137 0 16:07:09 ? 0:00 /bin/sh /data/oracle/product/10.2/crs/bin/racgwrap start
root 1137 1 0 15:45:27 ? 0:02 /data/oracle/product/10.2/crs/bin/crsd.bin reboot
oracle 4830 4823 0 16:07:09 ? 0:00 /data/oracle/product/10.2/database/bin/racgmain start
oracle 5559 1 0 16:07:34 ? 0:00 ora_psp0_tradedb1
oracle 4069 4068 0 16:06:45 ? 0:01 /data/oracle/product/10.2/crs/bin/ocssd.bin
oracle 4067 3918 0 16:06:45 ? 0:00 sh -c /bin/sh -c 'ulimit -c unlimited; cd /data/oracle/product/10.2/crs/log/ahr
oracle 5573 1 0 16:07:34 ? 0:00 ora_mman_tradedb1
oracle 3912 1135 0 16:06:43 ? 0:00 /data/oracle/product/10.2/crs/bin/evmd.bin
oracle 4823 1137 0 16:07:09 ? 0:00 /bin/sh /data/oracle/product/10.2/database/bin/racgwrap start
oracle 4834 1 0 16:07:09 ? 0:00 /data/oracle/product/10.2/crs/bin/racgmain ora.tradedb.db rundetach 1 crscmd c
oracle 4832 1 0 16:07:09 ? 0:00 /data/oracle/product/10.2/database/bin/racgimon startd tradedb
oracle 5031 5015 6 16:07:15 ? 0:17 oracletradedb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 5561 1 0 16:07:34 ? 0:00 ora_lmon_tradedb1
oracle 4836 1 0 16:07:09 ? 0:00 /data/oracle/product/10.2/crs/bin/racgmain ora.tradedb.db rundetach 1 crscmd c
oracle 4906 1 0 16:07:11 ? 0:00 /data/oracle/product/10.2/crs/opmn/bin/ons -d
oracle 4939 4832 0 16:07:13 ? 0:00 /data/oracle/product/10.2/database/bin/racgeut -e _USR_ORA_DEBUG=0 -e ORACLE_SI
oracle 5555 1 0 16:07:34 ? 0:00 ora_pmon_tradedb1
oracle 5015 4940 0 16:07:15 ? 0:00 /data/oracle/product/10.2/database/bin/sqlplus
oracle 4908 4906 0 16:07:11 ? 0:00 /data/oracle/product/10.2/crs/opmn/bin/ons -d
oracle 5557 1 0 16:07:34 ? 0:00 ora_diag_tradedb1
oracle 5563 1 0 16:07:34 ? 0:00 ora_lmd0_tradedb1
oracle 5565 1 3 16:07:34 ? 0:05 ora_lms0_tradedb1
oracle 5569 1 3 16:07:34 ? 0:06 ora_lms1_tradedb1
oracle 5624 1 0 16:07:35 ? 0:00 ora_s000_tradedb1
oracle 5575 1 0 16:07:35 ? 0:00 ora_dbw0_tradedb1
oracle 5577 1 0 16:07:35 ? 0:00 ora_dbw1_tradedb1
oracle 5579 1 0 16:07:35 ? 0:00 ora_lgwr_tradedb1
oracle 5581 1 0 16:07:35 ? 0:00 ora_ckpt_tradedb1
oracle 5583 1 0 16:07:35 ? 0:00 ora_smon_tradedb1
oracle 5585 1 0 16:07:35 ? 0:00 ora_reco_tradedb1
oracle 5587 1 0 16:07:35 ? 0:00 ora_cjq0_tradedb1
oracle 5589 1 0 16:07:35 ? 0:00 ora_mmon_tradedb1
root 5741 1454 0 16:07:40 pts/1 0:00 grep ora
oracle 5607 1 0 16:07:35 ? 0:00 ora_mmnl_tradedb1
oracle 5622 1 0 16:07:35 ? 0:00 ora_d000_tradedb1

問題解決。

看來安裝過程中的任何小問題都會成為後面的陷阱。

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

相關文章