云自无心水自闲

天平山上白云泉,云自无心水自闲。何必奔冲山下去,更添波浪向人间!
posts - 134, comments - 238, 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却不行

不知道是什么原因?

标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-02-14 00:05 编辑过
 
 
相关链接:
网站导航: