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

2014-11-24 17:46:59 · 作者: · 浏览: 0

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


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


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


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


2、动态监听


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


如果没有设定instance_name,将使用db_name初始化参数值。


如果没有设定service_names,将拼接db_name和db_domain参数值来注册监听。


优点:


(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状态中,就可以远程连接到数据库,对数据库进行操作--当然了要配置密码文件。


相关阅读: