今天在windows server 2012上安装了一个oracle 11g的数据库,但是安装 完成以后发现在我的机器上访问数据库出现错误,ora-12541:TNS:无监听程序。

后来查询了很多资料,加上借鉴博客园师兄的博客,我知道了问题的所在,今天拿出来分享一下:

具体操作步骤如下:

1.下载plsql,安装.

2.下载Instant Client,点击下载,下载第一个basic就行了,下载完解压缩,以放到主win7 d盘根目录为例:d:\instantclient_11_2

3.在d:\instantclient_11_2新建tnsnames.ora,用记事本编辑.

4.到server 2012的oracle安装目录找到 …\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora,打开,比如数据库实例是orcl,找到如下代码,拷贝到本机d:\instantclient_11_2\tnsnames.ora里
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = server 2012 IP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

5.添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径d:\instantclient_11_2\tnsnames.ora,plsql通过这个找到orcl连接字符串

6.添加一个环境变量NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

7.打开PLSQL,不用登陆,工具-首选项-ORACLE-连接:
勾选检查连接
Oracle主目录: d:\instantclient_11_2
OCI库: d:\instantclient_11_2\oci.dll

经过以上几步之后,重启PLSQL,问题来了,报错:ora-12541:TNS:无监听程序. ping是可以ping得通的,server 的监听也开着.经过不懈的努力,多次试验终于解决了:

1网络连接IPV4设置静态IP
IP地址:192.168.1.111 (111可修改成自己的 1-255)
子网掩码:255.255.255.0
默认风头:192.168.1.1
首选DNS服务器:192.168.1.1
修改完记得主win7上 ping 192.168.1.111 ping得通再继续往后.

2.修改..\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
SID_NAME = CLRExtProc 改为 SID_NAME = orcl orcl是实例名
HOST = localhost 改为 HOST = 192.168.1.111

3.修改..\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
两处 HOST = localhost 改为 HOST = 192.168.1.111
SID = CLRExtProc 改为 SID = orcl

好了,重启oracle,监听,主win7上的plsql就可以远程连接虚拟机上的数据库了.

下面供大家参考:

排查问题:在服务端机器上
1.首先检查监听程序是否能正常启动,开始,运行 cmd--->lsnrctl start,检查监听是否是在正常运行,如果正常运行,会提示:TNS-01106: 使用名称LISTENER的监听程序已经启动。如果没有运行,用上面的命令启动监听程序。
2.还在命令提示行里用 tnsping 服务名 ,来检查tnsnames.ora服务配置是否正确。正确的提示例如:
  已使用 TNSNAMES 适配器来解析别名
  Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
  (HOST = 192.168.0.6)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = 服务名)))
  OK (50 毫秒)
命令1: tnsping orcl (ping 本地的orcl,)
结果:已使用 TNSNAMES 适配器来解析别名
  尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 152
  1)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl1)))
  OK (0 毫秒)
  其中:(HOST = localhost) 监听器是这么解析的
命令2:tnsping 159.156.1.207/orcl1(加上本地ip来ping本地实例)
  结果:已使用 EZCONNECT 适配器来解析别名
  尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=orcl1))(ADDRESS=(PROTOCOL=TCP)
  (HOST=159.156.1.207)(PORT=1521)))
  TNS-12541: TNS: 无监听程序
  其中:(HOST=159.156.1.207)监听器是这么解析的
错误就在这里了,按常理来说,localhost和159.156.1.207(本机IP)应该是同样可行的,但是oracle监听器解析时就是没能正确通过。
解决办法:先是尝试修改监听器配置文件:tnsnames.ora中的配置,但是均告失败
最后,打开Oracle 自己的工具:Net Configuration Assistant 将原来的监听器重新配置一遍,走流程不修改,直到完成。重新启动监听器,测试加ip来ping实例,正常通过
结果:已使用 EZCONNECT 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=orcl1))(ADDRESS=(PROTOCOL=TCP)
(HOST=159.156.1.207)(PORT=1521)))
OK (0 毫秒)
结论:成功解决了数据库远程连接问题,问题原因我猜想是ORACLE的监听器没能正确的映射本机IP和loaclhost,导致报错,通过重新配置监听器,就将IP和localhost正确的映射了

plsql远程访问数据库 解决ora-12541:TNS:无监听程序的更多相关文章

  1. 使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序

    非常多时候为了优化我们的启动项把oracle的服务禁止了.但是重新启动启动之后使用PLSQL登陆oracle时会出现无监听程序,这说明我们有一些服务没有启动.我们先查看一下oracle的服务是否启动, ...

  2. ORA-12541:TNS:无监听程序 解决办法

    昨天我在一台win7笔记本中安装了oracle11g,然后打算用另一个win10的笔记本使用plsql developer局域网内连接访问oracle数据库.但是遇到ORA-12541:TNS:无监听 ...

  3. 解决PL/SQL Developer连接数据库时出现 “ORA-12541:TNS:无监听程序”错误

    在用PL/SQL Developer连接数据库时出现“ORA-12541:TNS:无监听程序”错误. 1.检查listener.log日志发现下面错误:TNSLSNR for 32-bit Windo ...

  4. ORA-12541: TNS: 无监听程序 怎么解决

    ORA-12541: TNS: 无监听程序 怎么解决? 刚学 oracle ORA-12541: TNS怎么回事,已经打开了所有的服务 fzxs 2008-3-14 下载知道客户端,10分钟内有问必答 ...

  5. ORA-12541:TNS:无监听程序 配置Oracle Myeclipse无法连接上 花费一天时间解决掉的

    背景:自己机子做oracle服务器,其他机子可以ping得通我的机子,但是jdbc就是连不上,后来用plsql连出现无监听程序.... 我昨天重新安装Oracle后,用PL/SQL Developer ...

  6. Oracle数据库相关问题之ORA-12541:TNS:无监听程序

    在用PL/SQL Developer等客户端工具连接oracle服务器时出现ORA-12541:TNS:无监听程序的错误,如下图: 发现原来是oracle的监听没有启动,重启监听后就连接成功了,下面跟 ...

  7. oracle 11g ORA-12541: TNS: 无监听程序 (DBD ERROR: OCIServerAttach)

    From :http://www.cnblogs.com/wangyt223/archive/2012/12/11/2812931.html em无法浏览,同时监听起不来.同时他的监听服务还是正常的, ...

  8. TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序

    文章转自:http://www.luocs.com/archives/464.html 此文版权归作者 – yaogang所有,转载请注明yaogang©www.luocs.com. Luocs说:这 ...

  9. Oracle ORA-12541:TNS:无监听程序

    背景:自己机子做oracle服务器,其他机子可以ping得通我的机子,但是jdbc就是连不上,后来用plsql连出现无监听程序.... 我昨天重新安装Oracle后,用PL/SQL Developer ...

随机推荐

  1. python scrapy 把cookie并转化为字典的形式

    在用scrapy设置cookie的时候,需要从网页上对应的页面把cookie字段复制下来,并转化为字典的形式,下面代码是对cookie的转化过程 # -*- coding: utf-8 -*- cla ...

  2. stack && queue

    package elementary_data_structure; import java.util.Iterator;import java.util.NoSuchElementException ...

  3. Strassen algorithm(O(n^lg7))

    Let A, B be two square matrices over a ring R. We want to calculate the matrix product C as {\displa ...

  4. python day 16作业

    day18天作业及默写1,完成下列功能: 1.1创建一个人类Person,再类中创建3个静态变量(静态字段) animal = '高级动物' soup = '有灵魂' language = '语言' ...

  5. shell 或 Makefile 学习网站

    1.http://man.linuxde.net/ 2.http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html

  6. React Natived打包报错java.io.IOException: Could not delete path '...\android\support\v7'解决

    问题详情 React Native打包apk时在第二次编译时候报错: java.io.IOException: Could not delete path 'D:\mycode\reactnative ...

  7. rebuild online 创建时,会话被Kill修复索引测试

    rebuild online 创建时,会话被Kill修复索引 1.0实验目的:日常运维经常create index online,但是期间被kill会导致索引再次创建失败,测试解决该问题 2.0测试流 ...

  8. 设计简单算法体验Vivado HLS的使用

    前言 本文主要讲解了使用Vivado HLS设计简单C语言的二选一选择器算法的硬件HLS开发的全流程,包括工程创建-算法验证和仿真-算法综合-RTL仿真-IP封装等步骤. 参考网站: http://b ...

  9. 运放积分电路MULTISIM

    有些需要反馈回路

  10. HihoCoder - 1807:好的数字串 (KMP DP)

    Sample Input 6 1212 Sample Output 298 给定一个数字字符串S,如果一个数字字符串(只包含0-9,可以有前导0)中出现且只出现1次S,我们就称这个字符串是好的. 例如 ...