windows使用plsql和sqlplus连接远程linux主机的oracle数据库

9 篇文章 0 订阅
5 篇文章 0 订阅

最近称为oracle数据库开发的一员,在vmware安装数据库想在自己机器上测试点东西的时候发现plsql怎么都连接不上。

现在已经解决,记录下来,方便以后查找。

 

使用plsql连接过程中出现ora-12514,使用sqlplus连接过程中出现ora-12543的朋友都适用以下内容。

 

1.到http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html下载如下三个包:
instantclient-basic-win32-10.2.0.4.zip
instantclient-jdbc-win32-10.2.0.4.zip
instantclient-sqlplus-win32-10.2.0.4.zip

2.将这三个包统一解压,然后内容放到D:\Program Files\oracle下(记得全部放一起,不要有上层文件夹,解压完应该有45个文件)

3.从远程服务器(装了oracle并且配置了监听和客户端)上复制%ORACLE_HOME\network\admin\tnsnames.ora也放到D:\Program Files\oracle中(注意修改host的IP)

4.(可选)从http://www.anysql.net/software/ociuldr.zip下载coiuldr.zip,解压后里面有windows,linux,solaris三个版本,将ociuldr.exe 复制到D:\Program Files\oracle,其中ociuldr.exe 是一个文本导出工具,具体参数可以参考http://www.anysql.net/ociuldr.html介绍

5.环境变量的设置:
在PATH中增加:D:\Program Files\oracle;
新建SQLPATH,LOCAL,TNS_ADMIN,LD_LIBRARY_PATH四个环境变量名,变量值均为D:\Program Files\oracle;
如果查询结果为乱码,设置NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

6.(重点)在服务器上放通1521端口(oracle的默认连接端口,有改过的自己斟酌),具体在服务器的防火墙上面设置,此处不作详解。

7.使用“telnet IP 端口”命令测试是否能连通远程服务器,若能,则表示防火墙设置ok,若不能,返回第六步。

8.使用:
 1)sqlplus /as sysdba
    conn system/system@orcl_ic

 2)第一次打开plsql,取消连接,进入工具--配置,设置两个地方:(1)oracle主目录名:D:\Program Files\oracle,(2)OCI库:D:\Program Files\oracle\oci.dll
   关闭plsql,再次重启输入用户名密码连接,连接ok。

 

有问题留言,谢谢。

 

另外附上tnsnames.ora文件的内容(根据自己需要修改ORCL_IC、192.168.1.105、1521、orcl这四个地方,都懂的):

ORCL_IC =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.105)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

 

 


------------------------

2016-04-25 更新

好久没有再连过本地的数据库了,今天一连果然出了问题。

本地连接oracle没有问题,可以直接访问。

但是远程连接的时候报错:

ora-12541 无监听程序

而且网络端口也无法telnet。

最郁闷的是本机都无法用IP来telnet:

[root@bogon]~ #telnet 192.168.1.117 1521
Trying 192.168.1.117...
telnet: connect to address 192.168.1.117: Connection refused

[root@bogon]~ #telnet localhost 1521
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^\^]    
telnet> quit
Connection closed.


原本以为是防火墙打开了,木有的事。

而是监听出了问题。

把监听删掉重建了一个,报错变更为:

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务


找到解决方案如下:

修改监听程序参数文件:$ORACLE_HOME/network/admin/listener.ora

添加红色内容:

# listener.ora Network Configuration File: /data/oracle/network/admin/listener.ora
# Generated by Oracle configuration tools.


SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (SID_NAME = orcl)
      (ORACLE_HOME = /data/oracle)
    )
  )



LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = bogon)(PORT = 1521))
    )
  )


ADR_BASE_LISTENER = /data


然后重启监听:

lsnrctl stop

lsnrctl start

看到如下信息即可:

lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-APR-2016 13:52:13
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=bogon)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                25-APR-2016 13:39:23
Uptime                    0 days 0 hr. 12 min. 50 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /data/oracle/network/admin/listener.ora
Listener Log File         /data/diag/tnslsnr/bogon/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bogon)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl.localdomain" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.localdomain" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully


---------------------------------------------------------------------------

参考文献:

http://www.2cto.com/database/201112/114436.html

http://wenku.baidu.com/view/a7af1bf8700abb68a982fbb7.html

 

转载请说明出处:http://blog.csdn.net/samed

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值