動態註冊監聽,動態監聽
SQL> select * from v$version where rownum=1;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
SQL> !cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Kernel \r on an \m
對於預設的連接埠號碼為1521的監聽,是很簡單,設定好了service_names,PMON自動協助我們註冊,十分便捷。下面介紹的是註冊不是預設的連接埠號碼:
在$ORACLE_HOME/network/admin/listener.ora添加:
LISTENER1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.115.78)(PORT = 1590))
)
)
(注意這裡最好用IP)
設定local_listener:
SQL> alter system set local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.115.78)(PORT = 1590))' scope=both
2 ;
系統已更改。
設定service_names:
SQL> alter system set service_names='a,b,c,d,diy,os';
系統已更改。
確認監聽進程已停:
[oracle@localhost ~]$ ps -ef|grep tnslsnr|grep -v grep
oracle 7312 1 0 11:20 ? 00:00:00 /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -inherit
oracle 7465 1 0 11:25 ? 00:00:00 /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr listener1 -inherit
直接停止監聽,或者用os命令停止
這裡我們直接kill process:
SQL> !kill -9 7312
SQL> !kill -9 7465
SQL> !ps -ef|grep tnslsnr|grep -v grep
監聽進程已經停止
[oracle@localhost ~]$ lsnrctl start listener1
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 08-6月 -2015 11:42:08
Copyright (c) 1991, 2009, Oracle. All rights reserved.
啟動/u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: 請稍候...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系統參數檔案為/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
寫入/u01/app/oracle/diag/tnslsnr/localhost/listener1/alert/log.xml的日誌資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.18.115.78)(PORT=1590)))
正在串連到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.18.115.78)(PORT=1590)))
LISTENER 的 STATUS
------------------------
別名 listener1
版本 TNSLSNR for Linux: Version 11.2.0.1.0 - Production
啟動日期 08-6月 -2015 11:42:08
正常已耗用時間 0 天 0 小時 0 分 0 秒
追蹤層級 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式參數檔案 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
監聽程式記錄檔 /u01/app/oracle/diag/tnslsnr/localhost/listener1/alert/log.xml
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.18.115.78)(PORT=1590)))
監聽程式不支援服務
命令執行成功
過一會PMON把監聽註冊進來了:
[oracle@localhost ~]$ lsnrctl status listener1
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 08-6月 -2015 11:43:06
Copyright (c) 1991, 2009, Oracle. All rights reserved.
正在串連到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.18.115.78)(PORT=1590)))
LISTENER 的 STATUS
------------------------
別名 listener1
版本 TNSLSNR for Linux: Version 11.2.0.1.0 - Production
啟動日期 08-6月 -2015 11:42:08
正常已耗用時間 0 天 0 小時 0 分 57 秒
追蹤層級 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式參數檔案 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
監聽程式記錄檔 /u01/app/oracle/diag/tnslsnr/localhost/listener1/alert/log.xml
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.18.115.78)(PORT=1590)))
服務摘要..
服務 "a.localdomain" 包含 1 個執行個體。
執行個體 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理常式...
服務 "b.localdomain" 包含 1 個執行個體。
執行個體 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理常式...
服務 "c.localdomain" 包含 1 個執行個體。
執行個體 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理常式...
服務 "d.localdomain" 包含 1 個執行個體。
執行個體 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理常式...
服務 "diy.localdomain" 包含 1 個執行個體。
執行個體 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理常式...
服務 "orcl3939.localdomain" 包含 1 個執行個體。
執行個體 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理常式...
服務 "orcl3939XDB.localdomain" 包含 1 個執行個體。
執行個體 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理常式...
服務 "os.localdomain" 包含 1 個執行個體。
執行個體 "ORCL3939", 狀態 READY, 包含此服務的 1 個處理常式...
命令執行成功