Oracle数据库连接超时解决方案

来源:互联网 发布:mui.min.js下载 编辑:程序博客网 时间:2024/04/29 00:53

PL/Sql 连接数据库 超时问题解决--转(2012-08-01 10:14:27)转载▼标签: oraclepl/sql 分类: 数据库SQL 
前提配置:本机是ORACLE服务端 用PLSQL连接远程的服务端

大致有以下解决方案:

第一个方案:

按照配置流程:

第一:保证数据库安装没有出问题,本页有数据库安装的具体介绍。

第二:找到D:\app\Administrator\product\11.1.0\db_2\NETWORK\ADMIN下面的listener.ora 其中的HOST为本机的ip也可以填写计算机名称;此处为计算机名称。

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-3IDOESF6ATU)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )


第三:找到D:\app\Administrator\product\11.1.0\db_2\NETWORK\ADMIN下面的tnsnames.ora

ORCL =
  (DESCRIPTION =                                    
    (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-3IDOESF6ATU)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
我出现的ORA-12170: TNS: 连接超时问题,解决方案,改上面的host名为主机名WIN-3IDOESF6ATU或127.0.0.1
HOST为本机的ip也可以填写计算机名称;此处为计算机名称。还有一点就是计算机名称有时候最好不要改,很容易出问题。

autotestingv2_129 =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.6.50.129)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
)

连接远程的服务器IP为10.6.50.129的数据库服务器。 注意 autotestingv2_129前面不要有空格。

第二种方案:

PLSQL登陆时报异常:ORA-12170: TNS: 连接超时

下面是调试测试的各个步骤:

在CMD窗口可以正常连接数据库
CMD输入:lsnrctl status 结果:命令执行成功
CMD输入:tnsping ora11g 结果:TNS-12535: TNS: 操作超时
CMD输入:ping Michael-PC 结果:发现IP是当前网络的地址并不是127.0.0.1或者localhost
其中Michael-PC 为计算机名称。

基于上面的调试分析如下:连网的情况下系统未能把Michael-PC解析为localhost
解决方法如下:
C:\Windows\System32\drivers\etc 找到系统的hosts文件,修改如下:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1       localhost
# ::1             localhost
添加一条记录
# localhost name resolution is handled within DNS itself.
# 127.0.0.1       localhost
# ::1             localhost
127.0.0.1       Michael-PC
这样可以在连网的情况下也能正常连接数据库了。

第三种方案:

注意问题:

1 、安装的时候注意先不要装超级兔子,很容易跟ORACLE起冲突。

2、计算机名称最好不要改。

3.、如果是ORACLE重装的话 一定要把以前的删除干净,ORACLE删除本页有详细说明。

 

 

 

附:其他

一、TNListener没有开启


1.cmd---services.msc----以Oracle开头TNListener结尾的服务启动它
2.如果还没有启动,修改注册表cmd--regedit
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleTnsListener
添加一个字符串imagepath值为TNSLSNR.exe的路径
我的是D:\Oracle\Administrator\product\11.1.0\db_1\BIN\TNSLSNR
终于可以连接上了,高兴!


如果在本机可以正常使用,可是到局域网中的其他机器就出现“ORA-12170:TNS:连接超时
解决方法:

1.cmd-----ping ip地址 查看网络问题,看能否ping通

2.cmd-----tnsping   ip地址(或者是服务器的实例名SID)如果报“TNS-12535:操作超时”,可能是服务器端防火墙    没有关闭

3.cmd----netstat -na 查看1521端口是否关闭,如果关闭Windows XP中的防火墙设置中将1521端口设为例外

4.cmd----lsnrctl status   lsnrctl是listener-control 监听器的缩写,查看监听的状态

 

原创粉丝点击