Oracle監聽的動態註冊與靜態註冊
Oracle監聽
介於Oracle的資料庫和客戶端之間的通道。因為資料庫本身不對外提供服務,所以需要透過監聽器來實現。
幾個相關的引數:
local_listener
db_domain
remote_listener
service_names
相關命令:
監聽命令:lsnrctl
引數:
1、start/stop 啟動/關閉服務
2、service 檢視當前已註冊的服務
3、status 檢視註冊服務的狀態
登入資料庫命令:sqlplus
為了使用監聽器,首先就要啟動監聽:
lsnrctl start
監聽註冊過程
一、資料庫根據service_names/db_domain兩個引數,建立服務名:
service_name1.db_domain ... service_nameN.db_domain
預設為資料庫的例項名。
二、將服務名註冊到監聽器,如果監聽器沒有啟動,則以:lsnrctl start啟動;註冊內容有服務名、埠(預設1521)等
三、監聽器對外提供已註冊的服務
四、外部客戶端透過該伺服器的1521埠連線到資料庫
監聽需要註冊服務,有兩種方式:
一種是靜態註冊。在啟動監聽的時候,根據監聽檔案($ORACLE_HOME/network/admin/listener.ora)直接註冊
這種方式不管資料庫是否啟動,都會註冊一個監聽服務。因此,透過這個服務去連線資料庫,有可能連線不上,也有可能
連線上。
其狀態顯示的是unknown,也就是說它此時是不知道資料庫是否可以連線的。
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
一種是動態註冊。資料庫啟動後,自動會將服務名註冊到監聽器上。因此,透過這類服務去連線,是可以確保連線成功的。
動態註冊除了資料庫啟動時會自動註冊,也可以透過以下命令手工註冊:
alter system register;
如果不執行手工命令進行動態註冊,資料庫也會間隔1分鐘自動發起註冊。
其狀態顯示的是ready,也就是說此時已經準備好連線了。
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
如果此時資料庫是關閉的,將不會有動態註冊的資訊顯示,而靜態註冊卻依然存在。
對於監聽檔案
如果不存在,資料庫會按照當前的服務名引數(service_names)中提供的服務名,會自動將服務註冊到監聽器上。
如果存在,則按照監聽檔案中提供的服務名進行註冊,資料庫也會發起註冊到監聽器上。此時動態註冊和靜態註冊會同時存在。
前面已經說到,註冊到監聽器上的服務名,是由service_names引數決定的,可以指定多個,以逗號分隔,如下:
SQL> show parameter service_names;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string orcl,wanghf
除了服務名,還可以為服務指定一個域名,可以讓將服務名讓各個不同的外部系統呼叫:
SQL> alter system set db_domain='abc.com' scope=memory;
alter system set db_domain='abc.com' scope=memory
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
SQL> alter system set db_domain='abc.com' scope=spfile;
從上面可以看到,這個引數的修改需要重啟資料庫,而不能立即生效。
修改後,檢視監聽狀態資訊便顯示如下(部分):
Service "wanghf.abc.com" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
對於動態註冊,如果沒有特殊設定,則到目前為止已經可以正常連線和操作了。
但是,如果需要修改預設埠(1521),那該怎麼做?這個時候,local_listener引數就出現了。
可以按如下命令進行設定:
alter system set local_listener='(ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1522))';
其中,埠可以按要求做修改。設定此引數後,再手工註冊一下即可:
alter system register;
或者等待最多一分鐘,資料庫也會自動重新註冊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-706407/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle監聽動態註冊與靜態註冊Oracle
- oracle監聽靜態註冊和動態註冊Oracle
- oracle監聽動態註冊與靜態註冊[轉帖]Oracle
- Oracle監聽的靜態註冊和動態註冊Oracle
- 【監聽】動態註冊和靜態註冊
- oracle監聽器動態註冊於靜態註冊的區別Oracle
- oracle監聽之動態和靜態註冊Oracle
- oracle監聽器的靜態和動態註冊Oracle
- Oracle Listener 動態註冊 與 靜態註冊Oracle
- Oracle Listener 動態註冊與靜態註冊Oracle
- Oracle監聽器的靜態註冊與動態註冊,以及DB_DOMAIN問題OracleAI
- Oracle 動態監聽註冊Oracle
- oracle 監聽器動態與靜態註冊服務_listenerOracle
- ORACLE 動態註冊,靜態註冊,多個監聽,一個監聽多個埠配置Oracle
- oracle的靜態註冊和動態註冊Oracle
- Oracle 靜態監聽註冊詳解Oracle
- 轉載:oracle監聽器的靜態和動態註冊Oracle
- 監聽動態註冊
- 動態註冊監聽
- 動態監聽註冊
- Oracle listener靜態註冊和動態註冊Oracle
- 動態註冊和靜態註冊
- 靜態註冊和動態註冊
- listener的靜態註冊與動態註冊詳述
- 動態和靜態監聽註冊-小魚的理解
- Oracle動態監聽註冊測試Oracle
- rac監聽動態註冊
- 動態註冊監聽Listener
- 【原創】Oracle的動態監聽註冊Oracle
- Oracle listener靜態註冊和動態註冊總結Oracle
- rac監聽不能動態註冊
- oracle listener 靜態和動態註冊Oracle
- 靜態註冊和動態註冊總結(zt)
- listener靜態註冊和動態註冊總結
- oracle監聽【非1521埠】動態註冊Oracle
- HPUX 監聽無法動態註冊UX
- Oracle9i中的監聽動態註冊Oracle
- Oracle10g中的靜態註冊及動態註冊問題Oracle