浅谈Oracle的监听服务-静态注册

动态服务是实例在服务器上启动并运行时向侦听器注册的代表,而静态服务(SID_LIST_LISTENER)可用于服务外部连接,无论是否在服务器上运行实例,连接非常有用到空闲或
NOMOUNT 数据库。
根据Oracle 19c Advanced Features of Oracle Net Services,静态服务的用例可以是以下任何一种:
外部过程调用。Oracle 异构服务。Oracle Data Guard。从 Oracle Enterprise Manager Cloud Control 以外的工具远程启动数据库。与早于 Oracle8i 版本 2 (8.1) 的 Oracle 数据库的连接。
1、添加单个静态服务
启用静态服务注册功能的配置非常简单,只需在监听器配置文件中添加一个名为SID_LIST_LISTENER的条目,该文件通常位于$ORACLE_HOME/network/admin/listener.ora,然后重新启动监听器。
[oracle@test ~]$ vi $ORACLE_HOME/network/admin/listener.ora
...
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=ORCL))
)
基本上,静态服务注册至少需要知道两项,ORACLE_HOME和ORACLE_SID。如您所见,我们在条目中提供了它们。
2、添加多个静态服务
对于更多ORACLE_SID,您可以像这样将SID_LIST附加到条目中。
[oracle@test ~]$ vi $ORACLE_HOME/network/admin/listener.ora
...
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=ORCL))
(SID_DESC=
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=SMALLDB))
)3、 使用 GLOBAL_DBNAME
对于那些DB_DOMAIN不为空的数据库,您应该在SID_LIST中添加更多信息GLOBAL_DBNAME。
[oracle@test ~]$ vi $ORACLE_HOME/network/admin/listener.ora
...
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=ORCL))
(GLOBAL_DBNAME=orcl.example.com)
)
GLOBAL_DBNAME的格式如下: