windows使用plsql和sqlplus连接远程linux主机的oracle数据库
最近称为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)