為了redundancy,特意加了一張網卡,結果就發生只能活著一個instance的狀況,我在工作週報上是這麼寫的 | |
"加了網卡之後造成資料庫Instance只能啟動一個的狀況,問題是出在 該網卡的kernel 參數rp_filter未調成2,預設值為1。rp 兩字表示 reverse path,當一張網卡收到封包,作業系統核心的網路模組在1的 模式下會嚴謹地判斷收到的封包是否合理,不合理時,作業系統會把 封包丟掉,因而造成Oracle RAC Instance彼此間要溝通時出現 timeout,導致其中一個instance被踢掉;透過tcpdump查看封 包的來往時,有發現HAIP 不同網段封包的傳遞,原本以為是網路 swtich 上的設定問題,把作業系統相應網路介面的rp_filter值調成2 後,RAC Instance間無法溝通的問題就解決了,第二個instance也就 能順利開啟。2表示loose模式,作業系統核心會去判斷封包來源網段 在系統本身是否存在,1只收自身網卡綁定網段的IP封包。 這個機制是作業系統為了防範網路攻擊所衍生出來的行為。"
IPCLW:[0.3]{-}[WAIT]:UTIL: [1564046613337096] Local Address: 169.254.126.69:33097 Remote Address: 169.254.251.45:49917 [oracle@dbha1 trace]$ grep 169\.254 /u01/app/oracle/diag/rdbms/cdb/cdb1/trace/cdb1_lck0_14232.trc IPCLW:[0.3]{-}[WAIT]:UTIL: [1563946449680871] Local Address: 169.254.187.150:40852 Remote Address: 169.254.119.30:64953 |