风影子
作者风影子·2013-03-19 23:45
数据库管理员·深圳

ora-12514解决一例

字数 1127阅读 2188评论 0赞 3
      今天一同事说他的一个oracle 11g测试环境,用oracle 10g的客户端无法连接到11G的数据库,在数据库服务器本要是没问题的,叫我帮看看。
 
      首先在11G服务器上用sqlplus 用户名/密码@服务名可以正常登录数据库,然后在10G的客户端用同样的命令报错了,错误号是ora-12514,意思是TNS 监听程序不能识别给定的SID,tnsnames.ora是没问题的,在客户端ping数据库服务器IP,用telnet连接数据库服务器的1521端口也没问题。查看了一下数据库版本,发现客户端是10.2.0.1的版本,没有打补丁,以前碰到过没打补丁连不上数据库的情况,但打了补丁问题依旧。在11G数据库服务器上查看监听也是正常的,没法只好上网查,最终解决了。
 
    找到服务器上的listener.ora文件,加入以下红色字体部分即可
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:oracleproduct11.2.0db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBANAME = orcl)
      (ORACLE_HOME = C:oracleproduct11.2.0db_1)
      (SID_NAME = orcl)
    )
  )
 
      重启监听后,问题得到解决, 但是我查看了我一台虚拟机里oracle 11g的listener.ora文件中并没有以上红色字体部分,但其它客户端是可以访问得到的,难道是10G客户端访问11G才会有这问题?又或是别的什么原因呢?找个时间再测试一下看看。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

X社区推广