ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

oracle 博主今天第一次学习  ,  就被这个问题弄了一晚上 ,因此一定要记下来



出现这种问题的情况一般是两种:

1.看看是不是监听服务没有起来

2.检查有没有修改IP地址,计算机名称

 

除此之外在网上查资料的时候还有一种:http://blog.csdn.net/icqsky/archive/2009/07/01/4313791.aspx

 

如下:这个错误是因为Listener出了问题,请检查一下你的listener.ora文件,看下是否存在如下配置:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC=
     (SID_NAME = PLSExtProc)
     (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
     (PROGRAM = extproc)
    )
)

      如果说是这样,那么请将一段改成

SID_LIST_LISTENER =
 (SID_LIST =
 (SID_DESC =
  (SID_NAME = PLSExtProc)
  (ORACLE_HOME =E:\oracle\product\10.2.0\db_1)
  (PROGRAM = extproc)
  ) (SID_DESC =
    (GLOBAL_DBNAME = ORCL)
    (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
    (SID_NAME = ORCL)
  )
)
        这样以后,关掉Service和LISTENER。再启动Service和LISTENER,这样应该就可以了,注意顺序。

         查了一下,网上是说,加上了面一段东西,意思是把LISTENER服务主动注册到进程监视器(pmon)中去。所以,但你启动了Serivce后,启动LISTENER的时候,会主动去注册到进程监视器(pmon)中去。所以不会有什么问题。但是反过却不行。

        如果说没有添加那一段,情况正好相反,是由实例的pmon进程在LISTENER中注册服务,LISTENER为被动注册。所以需要先起LISTENER才可以。

       总结一下,如果说你不加那段东西,那么就应该先起LISTENER,如果说你加了那段东西,就应该先起Serivce。

       我试了一下,的确是这样。不过在windows上,有时候会报错,重启一下再试就可以了



第三种情况我试了,没能解决情况,我出问题的原因是第二种情况,由于从客户那回到公司(客户那里用的是代理上网)ip地址变了,所以我是这样改的:

找到oracle安装目录,一般都是这样的home\oracle\product\10.1.0\Db_1\NETWORK\ADMIN下的

 tnsnames.ora文件

 

打开后添加

"你的IP" =
  (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = "你的IP")(PORT = 1521))
    )
   (CONNECT_DATA =
     (SERVICE_NAME = "你要连接的数据库名")
    )
  )

 

添加完后我的这个问题就解决完了,网上关于这个问题的解决方法貌似很多,依个人情况而定,写的不全,有没提到的希望多多补充

 




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值