云自无心水自闲

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 288, comments - 524, trackbacks - 0, articles - 6
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
最近在Oracle网站上下载一个Oracle 10g安装了一下,只有一张盘,而且安装时还有一个便捷的选项,非常方便。
可以安装完毕后,使用的时候却遇到了麻烦:如果只是本机的访问 sqlplus system/manager这样是没有问题的。
但是如果使用 sqlplus system/manager@orcl的时候却会报ora-12514的错误。

解决方法:
1. 打开<OracleHome>/network/admin/listener.ora文件,找到:

   SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
   )
  2. 添加:
            (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) 
       (SID_NAME = ORACLE)
      )
  3. 最后变成:
 SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
     (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) 
       (SID_NAME = ORACLE)
      )
   )
  4. 保存文件,重启服务中的TNSListener,OK!

PS: Oracle10g有一个好处:不再与Tomcat的端口冲突了。原来的Oracle9i安装完成后,8080端口就会被占用,一般都需要改tomcat的端口。现在终于轻松了。


评论

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2007-02-13 09:35 by pierce
我在listener.ora中添加过SID_NAME,结果无效

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2007-02-13 09:59 by 云自无心水自闲
我昨天晚上通过这样的修改确实解决了我的问题。
如果你的错误还存在,那试一下:
set oracle_sid=<sid_name>
sqlplus /nolog
connect sys/pwd as sysdba
start
看看行不行。

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2007-03-11 11:08 by 123
是不是要把
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)

中的两个ORACLE改为我自己的 全局数据库名 和 sid 名??
如果不改,还是报原来的错误
改完后,登陆时报Oracle不可用

请教是什么原因?谢谢

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2007-03-11 11:10 by 123
报 ORA-01034: ORACLE不可用

谢谢

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2007-03-12 00:40 by 云自无心水自闲
@123

是需要改的。
如果报01034错误,可以看一下这篇帖子:
http://dev.csdn.net/article/20/20163.shtm
是不是上面所说的原因?

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2007-03-21 09:10 by 点点
是要把
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)

中的两个ORACLE改为我自己的 全局数据库名 和 sid 名

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2007-03-21 09:12 by 点点
但最后要重启服务中的TNSListener,才可

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2007-04-17 20:20 by poscard
我一般是本机访问时,报“ORA-12514”错误,解决办法是:把listener.ora和tnsnames.ora文件中的HOST = localhost(或本机器的IP)改成自己的机器名,比如:HOST = poscard

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2007-04-18 09:03 by zxt
在Windows环境下有的时候连接不上远程的数据库,会报告如此的错误。

 解决办法是把sqlnet.ora文件中的
 SQLNET.AUTHENTICATION_SERVICES = (NTS) NTS换为NONE.

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2007-04-18 21:09 by 云自无心水自闲
@zxt
SQLNET.AUTHENTICATION_SERVICES = (NTS) NTS换为NONE.
Oracle 9i中是需要这样改.

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2007-04-21 17:36 by 我有两个数据库怎么办
按照你的方法我成功了!但是只能启动一个!我有两个数据库怎么办?

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2007-04-22 14:40 by 云自无心水自闲
@我有两个数据库怎么办

你是说你有两个实例?
那么SID_name不一样啊.

你添加的时候注意了吗?

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2007-06-07 13:59 by zxlzxlde1979
在WINDOWS XP里面用10G数据库,SHUTDOWN IMMEDIATE后再STARTUP MOUNT或者STARTUP 时就报12514错误,只有在后台服务里重起了相应的数据库服务比如ORCL后,用SQLPLUS连接才不报此错.可是,怎么样才能实现ORCL数据库的只MOUNT,而不是启动呢????

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2008-01-12 08:30 by sunny
Thank you !已经解决我的问题.

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2008-01-23 10:24 by zhjh
狂谢LZ

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2008-01-24 21:50 by 云自无心水自闲
呵呵,能解决问题就好!

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2008-05-18 09:57 by hl8189
谢谢楼主,问题解决了。

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2008-07-23 13:51 by spring
wo 我按照楼主说的方法后修改了,但还是报ora-01034错误,然后又按照给的连接中的帖子里针对ora-01034错误说的方法作了修改,结果还是不行。报ora-01034错误。请问还可能是什么原因?

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2008-07-23 14:57 by usherlight
@spring
你修改的时候,有没有根据你自己的情况填写你自己的数据库名和路径?

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2008-07-23 16:36 by spring
填写了 是我自己机器上的数据库名和路径。

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2008-07-25 14:03 by usherlight
重启了服务了吗?

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2008-08-26 21:16 by
host 改成机器名就可以了
谢谢
而用127.0.0.1 或者LOCALHOST却不行

不知道是什么原因?

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2008-10-28 16:01 by joan
确实是改listener.ora,可以

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2009-02-27 13:56 by Dennis
thank u so much.
按你说的问题解了。
想知道原因,我的 db 突然变成这样的说。为什么
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)

这段会丢掉呢?
谢谢!

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2009-04-19 11:53 by 我哈哈
解决问题!!

3Q

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2009-05-26 10:08 by yuyu
@赖
你应该是在别的机器访问的吧?

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2010-05-16 10:33 by chende
是要把ORACLE都修改为你的全局数据库名,我的可以了,万分感谢!

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2010-05-19 09:34 by usherlight
@chende
不客气

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2010-06-29 17:30 by 淘宝网
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
)
4. 保存文件,重启服务中的TNSListener,OK!

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2010-07-02 09:36 by usherlight
谢谢你的分享

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2010-11-17 14:45 by jack
在运行中 写services.msc,把你的数据库实例服务打开了没?》

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2010-11-17 14:46 by jack
运行 中 打开services.msc 启动oracl 数据库实例服务啊

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2010-12-18 11:03 by avenir
添加了
(SID_DESC =
(GLOBAL_DBNAME = ORCLWH)
(ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
(SID_NAME = ORCLWH)
)
之后还是连接不上 <原来没有重启服务>
现在已经连接上了!

谢谢楼主!
有个问题,为什么这段需要手工添加呢??
以前装oracle10g也没有出现过这样的情况,这次装后为什么会报ora-12514

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2011-01-10 10:25 by steve
zxt

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2011-04-22 16:24 by 萧竹
感谢楼主,我改了之后也可以了。

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2012-03-19 15:29 by dutloving
学习了 谢谢讨论

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2012-05-17 16:55 by twtja
@poscard
我跟据这条所说的修改后总算可以连接成功了!

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2012-05-17 16:58 by twtja
解决办法是:把listener.ora和tnsnames.ora文件中的HOST = localhost(或本机器的IP)改成自己的机器名,比如:HOST = poscard
本人的人的就是因为上面这个原因引起的。

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2012-07-26 11:05 by
我按照楼主说的方法后修改了,但还是报ora-01034错误,请问还可能是什么原因?

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2012-08-30 08:42 by 吸死你
如果是远程连接其他oracle数据库呢?非本地
HCP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.18.1.11)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = hcp)
)
)

# 您的用户名和/或口令无效  回复  更多评论   

2012-09-19 23:06 by 李玉婵
该问题怎麽解决(通过cmd)

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2013-02-02 17:05 by
按照楼主的方法是试了,很好用。
非常感谢!!

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2013-04-20 16:49 by
问题解决 谢谢!

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2013-04-20 16:59 by
问题解决 谢谢 ! 想问一下楼主们 我想用java代码来访问一个网页 能够用代码自动操作网页上的控件 提交给远程服务器 有没有人能够提供代码发我邮箱1466301125@qq.com 万分感谢!

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2013-05-01 23:27 by sli
感谢楼主,连上了

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2013-07-15 10:12 by dragonchina
看看环境变量有没有改, 我也遇到这个问题,最后发现是安装了一个oracle客户端后,我的环境变更改了,最后导致找不到配置。

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决[未登录]  回复  更多评论   

2014-09-24 11:01 by 向日葵
谢谢 好了

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2014-10-16 19:55 by orange_jia
通过应用发布服务器远程连接另一台数据库时报ORA-12514:TNS错误,请问上面代码里添加的语句中两个ORACLE,分别需要填的是什么?

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2015-06-16 13:17 by wssf
确实解决问题了

# re: 连接Oracle 10g时ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME 错误的解决  回复  更多评论   

2015-06-17 07:43 by 云自无心水自闲
@wssf

很高兴这篇文章能够帮助到你

只有注册用户登录后才能发表评论。


网站导航: