ORA-12514监听程序无法识别连接描述符的请求(Orcale开启归档模式所遇到的ORA-12514的解决方案与出现问题的原因)

 
 
出现这个问题的根源在于监听的动态注册和静态注册

监听的动态注册和静态注册:

 
 

1.什么是注册?

     注册就是将数据库作为一个服务注册到监听程序。客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库。这个服务名可能与实例名一样,也有可能不一样。
 
 

2.动态注册

     动态注册:listener实时的都知道实例的状态,数据库在关闭的时候会动态的从listener中注销,所以远程管理数据库的启动和停止就不行了。

     动态注册是在instance启动的时候PMON进程根据init.ora中的instance_name,service_names两个参数将实例和服务动态注册到listener中。

     首先要在init.ora中指定instance_name,service_names两个参数的值。在sqlplus下通过show parameter service_names 和show parameter instance_name可以查看这两个参数的值。
在这里插入图片描述

     动态注册默认只注册到默认的监听器上(名称是LISTENER、端口是1521、协议是TCP),因为pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,如果需要向非默认监听注册,则需要配置local_listener参数!
 
 

3.静态注册

     静态注册:listener不知道实例的状态,只有在进程通过其连接数据库时才能知道,如果你想使用远程管理数据库就使用静态监听

     静态注册的方式:

     修改listener.ora文件
     在相应的位置,加入如下字段:Orcale_home 是你的orcal系统变量,和上面写入一致即可,SID_NAME是你的实例名,也就是init.ora文件下,实例的service_names的值,而GLOBAL_DANAME则是init.ora文件下instanc_name的值。

在这里插入图片描述 
 

4.本次出现ora12514问题的缘由

     创建数据库实例,默认为动态注册,对外开放了监听端口,导致动态注册失败。
     解决方案:
     1.关闭数据库实例的对外监听,开始归档模式后在打开
     2.开启静态注册
     静态注册的步骤:
     连接查看instance_name,service_name。步骤如上所示,在listener.ora修改内容,如上所示,重启监听。

 
 
 
 
如果你看懂上面的文章,那么你就找到了出现这个问题的根源,解决的方式,自己就能想到。重启监听的方式就不贴了。上述出现的文件,在你的orcale的app安装目录下面。加油!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值