首先,用一下代码查看监听是否开启:
ps -ef|grep tns
或者
lsnrctl status
vi /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
copy下内容 ESC :wq
LISTENER = //这里的LISTENER
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.88.128 )(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
)
SID_LIST_LISTENER = // //这里的LISTENER一定要跟上面的LISTENER同名
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = joy)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = joy)
)
)
然后运行:
lsnrctl start LISTENER
就可以查看监听已经开启了。
完成。。
那么什么是动态监听什么是静态监听呢?
上面介绍了修改listener.ora修改/添加静态监听。
那么如何修改动态监听呢?
sqlplus / as sysdba
show parameter name;
这里的service_name直接决定了监听文件中连接字符串。
通过如下代码添加连接字符串。
alter system set service_names=‘joy’,‘abc’;
alter system register; //跳过PMON进程,立即的注册到监听文件中。
就会发现service_names增加了一个字段a. 回到监听文件查看状态。
这里还有一个问题,系统默认的动态注册到监听都是注册到端口1521的,可以不可以修改呢?
当然可以。
show parameter listener;
可以看到local_listener采用的协议/IP+端口号。
alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522))','(ADDRESS=(PROTOCOL=TCP)(HOST=192.158.88.128)(PORT=1521))';
alter system register;
通过这两行代码,就可以随意添加系统动态监听。
再回过头来查看这两个监听状态。
两个动态监听都可以通过service_name ‘a’连接到 joy数据库,其中LISTENER2还多了一个静态监听。