CRS啟動報錯Failed 3 to bind listening endpoint

yangtingkun發表於2012-02-03

客戶的10.2 RAC for Linux x86-64環境,計劃停機後,嘗試啟動CLUSTERDB,在一個節點上啟動成功,但是另一個節點啟動報錯。

 

 

檢查沒有成功啟動的節點,發現CLUSTER啟動在/tmp目錄下留下了記錄:

[root@smsdbrac1 root]# cd /tmp
[root@smsdbrac1 tmp]# ls -l
total 20
-rw-r--r-- 1 oracle dba 78 Nov 30 00:30 crsctl.14429
-rw-r--r-- 1 oracle dba 78 Nov 30 00:30 crsctl.14509
-rw-r--r-- 1 oracle dba 78 Nov 30 00:30 crsctl.14578
srwxr-xr-x 1 ncli ncli 0 Oct 8 15:22 mapping-ncli
srwxr-xr-x 1 oracle dba 0 May 5 2008 mapping-oracle
srwxr-xr-x 1 root root 0 May 14 2008 mapping-root
drwx------ 2 gdm gdm 4096 Oct 8 15:40 orbit-gdm
drwx------ 2 oracle dba 4096 Oct 10 16:07 orbit-oracle
[root@smsdbrac1 tmp]# more crsctl.14429
Failed 3 to bind listening endpoint: (ADDRESS=(PROTOCOL=tcp)(HOST=dbprv1))

如果CLUSTER在啟動時就報錯,說明多半是作業系統或者硬體的配置上存在問題,而從這個資訊上看,似乎與網路的配置有關。

由於這次計劃停機本身就是要更換交換機,所以首先檢查兩個伺服器是否可以正常連通,以及IP地址的配置是否存在問題。

在排除了這些可能性後,到MOS中查詢了一下這個問題。

首先看到的問題和TNS_ADMIN環境變數有關,如果oracle使用者設定了這個環境變數,且這個環境變數指定的目錄下的sqlnet.ora設定了某些網路相關的引數,那麼就會導致這個錯誤的產生。檢查確實發現oracle使用者設定了TNS_ADMIN環境變數:

[root@smsdbrac1 tmp]# env|grep TNS
[root@smsdbrac1 tmp]# su - oracle
[oracle@smsdbrac1 oracle]$ env|grep TNS
TNS_ADMIN=/opt/oracle/product/10.2.0/db/network/admin
[oracle@smsdbrac1 oracle]$ more /opt/oracle/product/10.2.0/db/network/admin/
afiedt.buf listener.ora samples shrept.lst tnsnames.ora

但是對應目錄下並沒有sqlnet.ora配置檔案,不過處於穩妥,還是在oracle的啟動shell中註釋了這個環境變數的設定。

嘗試啟動CLUSTER,問題依舊。

MOS上第二篇文章描述的問題是由於/etc/hosts檔案的屬性改變造成的,正常情況下,/etc/hosts的屬性應該是(-rw-r--r--)。而檢查客戶伺服器上該檔案的配置,發現並不存在這個問題。

不過雖然這個檔案本身的屬性沒有問題,但是檢查這個檔案的內容時,卻發現了問題的端倪:

[root@dbrac1 tmp]# more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.200.11 dbrac1.5wan.com.cn dbrac1
192.168.200.13 dbvip1
192.168.0.201 dbprv1.5wan.com.cn dbrac1

192.168.200.12 dbrac2
192.168.200.14 dbvip2
192.168.0.202 dbprv2

很明顯,當前節點的private ip對應的主機名出現了錯誤,這裡不但出現了域名,而且最後出現的主機名和public ip對應的主機名出現了重複。顯然這是人為修改造成的異常錯誤。

檢查報錯資訊中主機名資訊,可以發現出現錯誤的就是private ip對應的主機名,顯然導致錯誤的原因是Oracle/etc/hosts中找不到private ip對應的主機名的配置。

/etc/hosts中錯誤的內容修正後,重啟CLUSTER,問題解決。

 

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

相關文章