Oracle監聽器的靜態註冊與動態註冊,以及DB_DOMAIN問題

denniswwh發表於2009-07-08

從Oracle8i開始,Oracle可以不需要在監聽器SID_LIST中配置需要監聽的Oracle例項,PMON會自動動態註冊到監聽器,當然,這是有條件限制的,如:監聽器使用預設名稱或在local_listener、remote_listener中配置,埠1521,TCP協議。另外,如想使用動態註冊,請注意檢查/etc/hosts中的機器名及IP是否正確。

如果你設定了DB_DOMAIN,需要注意以下幾點:

[@more@]

1、靜態註冊時,GLOBAL_NAME應該是SERVICE_NAMES+DB_DOMAIN。如下

(SID_DESC =
(GLOBAL_NAME = oradb.com)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = oradb)
)

這時,註冊到監聽器中的是這樣的

Service "oradb" has 1 instance(s).
Instance "oradb", status UNKNOWN, has 1 handler(s) for this service...

客戶端連線時,tnsnames.ora中的SERVICE_NAME應該等於SERVICE_NAMES,如下

(CONNECT_DATA =
(SERVICE_NAME = oradb)
)
2、動態註冊時,註冊到監聽器中的是這樣的

Service "oradb.com" has 1 instance(s).
Instance "oradb", status READY, has 1 handler(s) for this service...

客戶端連線時,tnsnames.ora中的SERVICE_NAME應該等於SERVICE_NAMES+DB_DOMAIN,如下

(CONNECT_DATA =
(SERVICE_NAME = oradb.com)
)

3、即使你設定了靜態註冊,ORACLE啟動後也會自動進行動態註冊,所以剛啟動監聽器時,你只能看到靜態註冊的資訊,過一段時間或執行alter system register;後,就會看到動態註冊的資訊,因此,動態註冊完成後,tnsnames.ora中的SERVICE_NAME加不加DB_DOMAIN都可以連線。

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

相關文章