欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle监听之动态监听与静态监听特点

程序员文章站 2022-05-28 13:58:04
...

动态注册不需要显示的配置listener.ora文件,实例启动的时候,PMON进程根据instance_name,service_name参数将实例和服务动态注册

1、如何查询某服务是静态监听注册还是动态监听注册

可以使用命令lsnrctl status来查看某服务是静态注册还是动态注册。

实例状态为UNKNOWN值时表明此服务是静态注册的设置。

这时监听器用来表明它不知道关于该实例的任何信息,只有当客户发出连接请求时,它才检查该实例是否存在。

2、动态监听

动态注册不需要显示的配置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获得来保持一致。

优点:

(1)不需要人工干预在lsnrctl start后,会自动注册数据库的instance_name,service_name,然后tns不论使用SID和SERVICE_NAME均可以连接上来

(2)修改了SERVICE_NAME或者SID不用修改listener.ora文件

(3)动态注册的数据库通过状态信息中的状态READY或状态BLOCKED(对于一个备用数据库)来指明。

不管关闭何时数据库,动态注册的数据库都会动态地从 监听器注销,而与之相关的信息将从状态列表中消失。

这样,不管数据库是在运行还是已经关闭,监听器总是知道它的状态。

该信息将被用于连接请求的回退(fallback)和负载平衡。

3、静态监听

静态注册指实例启动时读取listener.ora配置文件,将实例和服务注册到监听程序。

优点:

无论何时启动一个数据库,默认都有两条信息注册到监听器中:实例和服务。

在数据库未open状态中,就可以远程连接到数据库,对数据库进行操作--当然了要配置密码文件。

相关阅读:

Oracle 双监听器的配置

Oracle监听器出现的6种连接问题及其解决方法

Oracle 11g2的监听器配置

Oracle数据库的监听器挂起情况

监听器注册与ORA-12514 错误分析