關於oracle的監聽問題

流浪的野狼發表於2013-08-26

        最近在對資料庫做了物理介質層面的切換後,在新的伺服器上發現配置的監聽器中監聽的地址並非是本機的ip地址,但客戶端仍然可以正常連線。細查發現客戶端透過虛擬的一個ip連線到本機資料庫,本機是配置了虛擬ip的。

為什麼在監聽器中沒有配置監聽本機ip,資料庫仍然可連線呢?

查詢發現,從8i開始,監聽器在繫結Ip地址的方式已經改變。一般的規則是“在指定主機上監聽所有埠(listen on all interfaces if a hostname is specified)。然而這僅在大多數情況下準確,在某些特定情況監聽器可能並非如此表現,預設情況下不使用IP=FIRST選項,監聽器總是在所有該主機的網路介面上監聽。

       若果需要讓監聽器只監聽本機的某個ip地址,你可能需要強制監聽器僅繫結到特定的IP地址(即便在指定主機名的情況下),透過在監聽配置檔案LISTENER.ORA中配置IP=FIRST語句

本人rac中的監聽配置如下:

SID_LIST_LISTENER_RAC01 =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/ora10g/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
  )

LISTENER_RAC01 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = RAC01-vip)(PORT = 1521)(IP = FIRST))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.150.4.231)(PORT = 1521)(IP = FIRST))
    )
  )

好記星不如爛筆頭,come on

中一貝

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

相關文章