RAC中lsnrctl和srvctl的區別(監聽狀態異常)

煙花丶易冷發表於2017-12-04
案例:(環境:hp小機,10G rac)今天早上一客戶發現連線不上資料庫,反饋。
處理過程:
    登入伺服器發現有一臺伺服器叢集監聽處於關閉狀態,lsnrctl status發現監聽處於卡死狀態,無法進行正常的關閉,重啟
檢視監聽日誌報錯TNS-12545,
另一臺伺服器監聽正常,所以不著急……穩住,慢慢看。
$crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora.....XFF.cs application    ONLINE    ONLINE    rac1       
ora....db1.srv application    ONLINE    ONLINE    rac2       
ora.devdb.db   application    ONLINE    ONLINE    rac2       
ora....b1.inst application    ONLINE    ONLINE    rac1       
ora....b2.inst application    ONLINE    ONLINE    rac2       
ora....SM1.asm application    ONLINE    ONLINE    rac1       
ora....C1.lsnr application    OFFLINE   OFFLINE              
ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
ora.rac1.ons   application    ONLINE    ONLINE    rac1       
ora.rac1.vip   application    ONLINE    ONLINE    rac1       
ora....SM2.asm application    ONLINE    ONLINE    rac2       
ora....C2.lsnr application    ONLINE    ONLINE    rac2       
ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
ora.rac2.ons   application    ONLINE    ONLINE    rac2       
ora.rac2.vip   application    ONLINE    ONLINE    rac2 

既然從叢集裡面看到監聽關了,那就找到監聽程式殺掉

$ ps -ef |grep tnslsnr
grid      3232     1  0 10:59 ?        00:00:00 /g01/11ggrid/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit
kill -15 3232
lsnrctl start啟動監聽,監聽狀態恢復正常,但叢集中監聽狀態仍然是offline
原因:srvctl操作的監聽是listener_rac1,而lsnrctl操作的預設監聽時CRS不會online,或者說lsnrctl操作的監聽反饋不到CRS?
srvctl config listener -n rac1
解決辦法:
lsnrctl stop --關閉監聽
srvctl start listener -n rac1 --開啟監聽服務(rac1為主機名)
不過後來自己在11g庫上做測試,沒有發現這個問題。
此時恢復正常,附上listener.ora
LISTENER_RAC1 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)(IP = FIRST))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521)(IP = FIRST))
    )
  )
 
SID_LIST_LISTENER_RAC1 =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
  )

建議:RAC重啟監聽的話建議還是用srvctl

參考文件,感謝……ttp://%E5%9C%A8rac%E4%B8%ADlsnrctl%E5%92%8Csrvctl%E6%93%8D%E4%BD%9C%E7%9B%91%E5%90%AC%E5%8C%BA%E5%88%AB.html

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

相關文章