Oracle10g RAC 兩個監聽狀態為offline 問題處理

tolywang發表於2011-06-21

Oracle 10.2.0.4  RAC,   ASM ,  兩個節點 

         今天上午收到一個朋友的電話, 說RAC庫的兩個例項上的監聽狀態都是offline的, 但是對應的target是online , 需要幫忙登過去看看。 期間他們又重新啟動了兩節點, 一個監聽又可以啟動了, 另外一個還是offline 的。  vip 都在自己本機上,沒有發生漂移, 應該不是網路問題   。

         按照以往的經驗, 我使用如下命令企圖啟動節點2上的監聽:

           crs_start    ora.ecsrac02.LISTENER_ECSRAC02.lsnr     結果失敗 。

開啟時報錯資訊是:   vip1,  vip2  已經分別執行在節點1, 2 上 。 

         懷疑是不是監聽檔案被修改了,   但是朋友那邊的DBA 是新來的, 庫是前任DBA建立的, 他不清楚是否有更改過 ,說好象沒有動過,   我也沒有仔細看, 試圖透過   crs_stop  -all   ,   然後   crs_start   -all   處理,  結果還是報錯,    兩個監聽都offline 了 。 

         根據報錯資訊, 檢視節點1 的 listener.log  檔案,  發現log中的報錯:   missing listener name ,  LISTENER_ECSRAC01  , 然後去檢視listener.ora 檔案,  果然, 發現監聽檔名稱好象是被某人更改為了LISTENER 及  SID_LIST_LISTENER ,  而不是類似下面的  LISTENER_ECSRAC01  及   SID_LIST_LISTENER_ECSRAC01   。   修改兩個節點的監聽檔案後, crs_stop  -all  ,然後 crs_start -all , 開啟服務全部OK ,  監聽都online 了 。     期間還檢查了  /etc/hosts  ,  發現他們沒有加入  127.0.0.1    localhost 在 /etc/hosts 中,  我們也加入了, 不過應該和這個沒有關係 。 

          問題雖然解決了, 但是感覺自己走了一點彎路, 我們在測試stop 然後start 之後, 報錯的話, 第一時間就應該找log ,  log會給我們非常直觀的解決方法 。  

 

SID_LIST_LISTENER_ECSRAC01 =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/product/oracle)
      (PROGRAM = extproc)
    )
  )

LISTENER_ECSRAC01 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = mxvip01)(PORT = 1521)(IP = FIRST))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.13.67.171)(PORT = 1521)(IP = FIRST))
    )
  )

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

相關文章