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

今天同事问我一个问题。
他通过本机客户端以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博客 ” ,链接:http://blog.itpub.net/22034023/viewspace-662231/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22034023/viewspace-662231/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值