当前位置: 首页 > 科技观察

浅谈Oracle的ListeningService——静态注册_0

时间:2023-03-19 01:38:28 科技观察

概述动态服务代表实例启动并运行在服务器上时向监听器注册,而静态服务(SID_LIST_LISTENER)可用于服务外部连接,无论是否运行在服务器上或不是实例,连接对空闲或NOMOUNT数据库很有用。根据OracleNetServices的Oracle19c高级特性,静态服务的用例可以是以下任何一种:外部过程调用。Oracle异构服务。甲骨文数据卫士。从OracleEnterpriseManagerCloudControl以外的工具远程启动数据库。连接到早于Oracle8iRelease2(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具有以下格式:.在上面的例子中,数据库的DB_DOMAIN是example.com。请注意,如果您的DB_DOMAIN为空,则不必添加它。不要忘记重新启动侦听器以立即生效。4.DataGuardBroker的静态服务必须为DataGuardBroker添加一个特殊的静态服务_DGMGRL.以启用需要重启实例的broker操作,无需手动干预,例如通过主备之间的切换角色切换数据库之间。[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_DGMGRL))注意,如果你的DB_DOMAIN是空的,就不用加了。所有服务名称最好大写。服务名称的状态让我们在侦听器中查看它们的状态。[oracle@test~]$lsnrctl状态...服务摘要...服务“ORCL”有2个实例。实例“ORCL”,状态未知,此服务有1个处理程序...实例“ORCL”,状态READY,此服务有1个处理程序...服务“ORCLXDB”有1个实例。实例“ORCL”,状态READY,此服务有1个处理程序...The命令成功完成静态服务ORCL的状态标记为未知,而动态服务为就绪,这意味着该实例确实存在并准备好提供服务。