先说说实验环境,有两个实例名:hello1、hello2
对应服务名:hello1.abc.com、hello2.abc.com
两个实例都是默认动态注册到默认监听LISTENER上。
实验1:新建监听LSNR2:1526
1、进入 $ORACLE_HOME/network/admin
2、编辑 listener.ora
3、增加LSNR2
LSNR2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hello)(PORT = 1526))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
4、启动并查看LSNR2状态,没有提供服务。
实验2:将hello1静态注册到LSNR2
1、继续编辑listener.ora,给LISTENER增加静态注册的实例。
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=hello1)
(ORACLE_HOME=/db/app/oracle/product/19/db_1)
(GLOBAL_DBNAME=hello1.abc.com)
)
)
2、重启LISTENER并查看状态,hello1已经是完成静态注册
实验3:将hello2静态注册到LSNR2
同实验2操作,将hello2进行静态注册
实验3:将hello2的动态注册到LSNR2
每个实例只能有一个动态注册,默认的动态注册到LISTENER上,要修改动态注册的监听,需要修改系统参数。
alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = hello)(PORT = 1526))';
alter system register;
至此可以得到一些结论:
1、动态注册、静态注册是指实例与监听之间的注册方式。
2、一个监听可以同时监听多个实例
3、一个监听可通过动态注册、静态注册监听同一个实例。
4、一个实例只有一个动态注册的监听,可以有多个静态注册的监听。