ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 动态监听与静态监听的一些特点。

动态监听与静态监听的一些特点。

原创 Linux操作系统 作者:wei-xh 时间:2010-05-08 14:29:02 0 删除 编辑
今天同事问我一个问题。
他通过本机客户端以sysdba身份登陆oracle数据库后
用
shutdown immediate成功的关闭了数据库。
可是
startup
的时候,却提示
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

我登陆服务器,查看listener.ora配置文件后,发现配置的动态监听。
动态监听会时时反应数据库的状态,依赖pmon进程的动态注册,而不像静态监听需要加载listener.ora文件的sid_list_listener部分。

他之所以无法再启动数据库,是由于数据库关闭后,监听器已经注销了此数据库的服务信息,因此无法再进行任何操作。

解决的办法很容易,只需要在listener.ora文件中加入如下即可。
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_NAME=rose)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (SID_NAME=ROSE)
    )
)
按照我的方法操作后,重启监听,可以顺利建立连接,启动数据库了。

可是在集群环境中,不建议采取静态监听,因为动态监听能够实现一些高级功能。
比如:两节点的集群,在一台实例出现故障的时候,动态监听能够自动的failover到其他健康实例。
而且由于动态监听能够时时感知服务器状态,还能够实现在客户端连接时,自动向负载最轻的实例建立连接的功能,实现了负载均衡的目的。

因此,在不修改listener.ora,而且还想启动数据库的时候,如果条件允许,可直接登录数据库服务器(比如:telnet 16.1.1.121),进行启动。

[ 本帖最后由 wei-xh 于 2010-5-2 21:31 编辑 ]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22034023/viewspace-662231/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE组成员,DBGeeK用户组发起人。曾在DTCC、ORACLE技术嘉年华、Gdevops等公开场合做过数据库技术专题分享,2017年应Oracle邀请在世界最大的数据库会议OOW上做技术分享。组织翻译了《拨云见日,解密Oracle ASM内核》一书。

注册时间:2009-07-04

  • 博文量
    422
  • 访问量
    2425317