記一次GI安裝失敗(root.sh在第一個node上失敗)的除錯經歷

wgz7747147820發表於2020-09-30

新拿到一個c’lu’ster,嘗試安裝GI(grid infrastructure),root.sh在第一個node上失敗了。除錯過程

第一步:首先檢視log

在root.sh的log裡

看到如下的錯誤資訊

$GI_BASE/crsdata/scaz08adm08/crsconfig/rootcrs_scaz08adm08_2020-09-27_10-25-09PM.log
2020-09-27 22:28:23: ASM configuration failed with error 1, check asmca logs at /u01/app/gibase/cfgtoollogs/asmca for details.
2020-09-27 22:28:23:
2020-09-27 22:28:23: Creation of ASM spfile in disk group failed.
2020-09-27 22:28:23: ORA-29783: GPnP attribute SET failed with error [CLSGPNP_RD_ERR]

發現這個錯誤和gpnp有關,去看gpnp的log
在gpnp的log裡面發現如下的錯誤

 $GI_BASE/diag/crs/scaz08adm08/crs/trace/gpnpd.trc
 
2020-09-27 22:35:46.823 :    GPNP:139918390253312: rd_cxRegister: Error message in RD context: RDE-00051: provider "Oracle Apple DNS-SD Provider" error.
  RDE-02001: failed to connect to the mDNS responder.
    CLSDNSSD-00026: service not running
2020-09-27 22:35:46.823 :    GPNP:139918390253312: clsgpnpd_reg_int: [at clsgpnpdrd.c:1656] Result: (53) CLSGPNP_RD_ERR. (:GPNPD00518:)RD registration failed for GPnPD url: "mdns:gpnp3b8574565._tcp://scaz08adm08:24115/agent=gpnpd,cname=scaz08-c,guid=6639f6b395447f7dbfd253d3b8574565,host=scaz08adm08,pid=162085/gpnpd h:scaz08adm08 c:scaz08-c u:6639f6b395447f7dbfd253d3b85745" lcl=0  rd_cxRegister ret=RDRET_PROVIDER_NOT_FOUND (23)

看到和mdns有關,去檢視mdns的log

看到好多這個錯誤

$GI_BASE/diag/crs/scaz08adm08/crs/trace/mdnsd.trc
2020-09-27 22:27:33.650 :    MDNS:139691948380544: mDNSResponder-mdnsd interface ib5 (0x19 AF=10 f=0x1043 mcast=89) FE80:0000:0000:0000:0210:E000:0143:1632 mask FFFF:FFFF:FFFF:FFFF:0000:0000:0000:0000
2020-09-27 22:27:33.651 :    MDNS:139691948380544: mDNSResponder-ERROR: bind(listenfd, (struct sockaddr *) &laddr, sizeof(laddr)); failed: 98 (Address already in use)
2020-09-27 22:27:33.651 :    MDNS:139691948380544: mDNSResponder-ERROR: udsserver_init: 98 (Address already in use)

請假同事,認為可能是ip或者埠有衝突,查詢文件發現mdnsd使用埠5353,使用netstat -anp檢視埠使用情況,不要使用netstat -an檢視,那樣檢視不全。也沒有發現埠已經佔用的情況。

一頭霧水

解決問題的思路,第一步是嘗試去不用這些網路卡,在response file裡去除這些網路卡,發現不管用。然後用 ifconfig down ib5去down這些網路卡,發現還是解決不了問題。

然後懷疑是不是sysctl.conf裡面的一些引數有關
在 修改/etc/sysctl.conf裡面的引數時,發現還有/etc/sysctl.d下面也有引數檔案,不是很清楚這些引數檔案的生效順序,也一併做了修改,最後發現還是不管用

net.ipv4.conf.ib6.arp_announce = 2
net.ipv4.conf.ib7.arp_announce = 2

net.ipv4.conf.ib6.rp_filter = 2
net.ipv4.conf.ib7.rp_filter = 2

還曾嘗試去修改diskgroup的redundancy去解決問題。

整個解決過程因為沒有思路,所以很是混亂。

最後想起來這個cluster以前別人安裝的時候是用另外一個使用者安裝的,隨嘗試用另外一個使用者來安裝,並且response file也用原來那個使用者用的,發現能夠安裝成功。
我的懷疑方向放到了我現在的response file上了。

又用原來的使用者,用現在的response file安裝,發現也能成功。這時候開始懷疑是現在的user存在問題了

用現在的user,用原來的response file安裝也會失敗,那應該就是現在的user有問題了。檢視了安裝失敗的user和安裝成功的user的uid gid等資訊,也沒有發現啥異常。

只能再次請教同事了。告訴同事用一個使用者能安裝成功,用另外一個使用者無法安裝成功。
同事提醒是不是socket沒有清理乾淨。
socket存在於/var/tmp/.oracle目錄下,這個目錄是一個軟連線

[Tue Sep 29 22:17:36][228317][root@scaz08adm08:/var/tmp/.oracle][0]# ls -ald /var/tmp/.oracle
lrwxrwxrwx 1 root root 16 Sep 29 02:48 /var/tmp/.oracle -> /var/lib/oracle/

這個目錄下有很多socket檔案

[Tue Sep 29 22:25:06][228317][root@scaz08adm08:/var/tmp/.oracle][0]# ls -al *gipc*
srwxrwx--- 1 oracle oinstall 0 Sep 29 02:48 ora_gipc_agent_ag_CSSDAG_z
-rwxrwx--- 1 oracle oinstall 0 Sep 29 02:48 ora_gipc_agent_ag_CSSDAG_z_lock
srwxrwx--- 1 oracle oinstall 0 Sep 29 02:49 ora_gipc_agwatcher_wd1_z
-rwxrwx--- 1 oracle oinstall 0 Sep 29 02:49 ora_gipc_agwatcher_wd1_z_lock
srwxrwx--- 1 oracle oinstall 0 Sep 29 02:48 ora_gipc_css_ctrllcl_CSSD_BCCM
-rwxrwx--- 1 oracle oinstall 0 Sep 29 02:48 ora_gipc_css_ctrllcl_CSSD_BCCM_lock
... ...

這些socket檔案是有原來的user建立的,所以現在用不同的user安裝,就會報地址已經in use的原因

在清理指令碼里加上清理這個目錄後,安裝就順利通過了

相關文章