SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = single02_std)
(ORACLE_HOME = /u01/app/oracle/product/19.0/db_1)
(SID_NAME = single02)
)
)LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.62)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)ADR_BASE_LISTENER = /u01/app/oracle
静态注册时,listener.ora中的GLOBAL_DBNAME向外提供服务名(service name),listener.ora中的SID_NAME提供注册的实例名。
动态监听x
动态注册不需要显示的配置listener.ora文件,实例启动的时候,PMON进程根据instance_name,service_name参数将实例和服务动态注册到listerer中。
如果没有设定instance_name,将使用db_name初始化参数值。
如果没有设定service_names,将拼接db_name和db_domain参数值来注册监听。
注意:Oracle_SID从ORACLE 10G开始,参数文件不再记录INSTANCE_NAME,此时INSTANCE_NAME动态从系统ORACLE_SID获得来保持一致。
如何查询某服务是静态监听注册还是动态监听注册
可以使用命令lsnrctl status来查看某服务是静态注册还是动态注册。
实例状态为UNKNOWN值时表明此服务是静态注册的设置。
这时监听器用来表明它不知道关于该实例的任何信息,只有当客户发出连接请求时,它才检查该实例是否存在。
参考: