Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2882631
  • 博文数量: 200
  • 博客积分: 2413
  • 博客等级: 大尉
  • 技术积分: 3067
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-01 22:07
文章分类

全部博文(200)

文章存档

2018年(2)

2017年(8)

2016年(35)

2015年(14)

2014年(20)

2013年(24)

2012年(53)

2011年(44)

分类: Oracle

2011-05-05 22:53:51

A B两台oracle主机
想通过在A主机上配置B主机的服务名直接用sqlplus访问B主机,但是访问时总是报ORA-12514: TNS:listener does not currently know of service requested in connect descriptor错误!
 
这个问题困扰了我一天,经过反复实验和查看资料终于解决!
 
配置服务名基于监听,所以监听的好坏直接影响最后的结果。我的问题就是出在了监听上。
配置监听的注意事项!
一、如果从来没有配置过监听,一定要用netca创建监听,不要用netmgr;netmgr是在netca第一次创建监听后使用的!
二、通过netca创建好监听后,一定要查看$ORACLE_HOME/network/admin/listener.ora
 
修改B主机的监听
如果是这个样子
  1. SID_LIST_LISTENER =

  2. (SID_LIST =

  3. (SID_DESC =

  4. (SID_NAME = PL***tProc)

  5. (ORACLE_HOME = /u01/app/oracle/10.2.0/db_1)

  6. (PROGRAM = extproc)

  7. )

  8. )



  9. LISTENER =

  10. (DESCRIPTION_LIST =

  11. (DESCRIPTION =

  12. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.120)(PORT = 1521))

  13. )

  14. (DESCRIPTION =

  15. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

  16. )

  17. )
一定要加上下面的代码
  1. (SID_DESC =

  2. (SID_NAME = orcl)

  3. (ORACLE_HOME = /u01/app/oracle/10.2.0/db_1)

  4. (SID = aux1)

  5. )
其中SID_NAME= 是你的当前数据库的实例名
SID当然也是当前数据库的实例名
 
加上去后就是这个样子,途中红色部分是新加的内容
  1. SID_LIST_LISTENER =

  2. (SID_LIST =

  3. (SID_DESC =

  4. (SID_NAME = PL***tProc)

  5. (ORACLE_HOME = /u01/app/oracle/10.2.0/db_1)

  6. (PROGRAM = extproc)

  7. )

  8. (SID_DESC =

  9. (SID_NAME = orcl)

  10. (ORACLE_HOME = /u01/app/oracle/10.2.0/db_1)

  11. (SID = aux1)

  12. )

  13. )



  14. LISTENER =

  15. (DESCRIPTION_LIST =

  16. (DESCRIPTION =

  17. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.120)(PORT = 1521))

  18. )

  19. (DESCRIPTION =

  20. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

  21. )

  22. )

 

尔后重启监听

lsnrctl stop

lsnrctl start

在主机A上已经配置好B主机的服务名120

在A主机上测试 sqlplus /nolog

conn

连接成功了!哈哈

阅读(1702) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~