PLSQL远程连接Oracle数据库
现在工作中第一个接触到的项目里Oracle数据库已经部署在远程服务器,本来也可以本地安装一下然后熟悉项目,但Oracle完整版服务启动起来后严重带慢电脑运行速度,就计划用PLSQL工具连接下远程数据库,最后还对Toad for Oracle工具熟悉了一下。
环境及工具介绍:Win10 (32bit) + PLSQL Developer 7.0.0.1050 + instantclient-basic-nt-11.2.0.4.0
下载安装PLSQL Developer,下载Oracle客户
PLSQL网上一搜就很多,下载后安装运行,发现直接用户名密码,选择不了数据库,得等接下来配置完后就有了;Oracle客户端官方就很方便,点这里下载。
环境配置
解压缩Oracle客户端文件至某一路径,我的是解压在D:/oracleClient,在该目录下新建文件夹路径network\admin,在该文件夹中新建tnsnames.ora文件,目录路径最终如下图:
在tnsnames.ora文件中输入或复制(复制时请留意文末提到的遇到的问题)以下配置,注意修改自己的服务器IP和端口。
# tnsnames.ora Network Configuration File: D:\oracleClient\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LOCALDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = interdb)
)
)
INTERDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.2.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = InterDB)
)
)
配置环境变量,NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK,解决中文字符问题;
运行PLSQL,在Tools->Preferences面板下,配置如下图所示:
关闭PLSQL,再次启动,会发现登陆窗口发生了变化,多了两个选填项。填写用户名密码选择相应数据库就能连接上远程服务器的oracle数据库。
中间遇到的问题及解决方法
1.环境变量的探索
在网搜索plsql远程连接oracle数据库时,大多网友都建议要配置系统环境变量,我在成功连接数据库后对几个环境变量和一个Path的作用进行了反复测试,发现以下结果:
首先path,在系统环境变量的path值中添加oracle客户端的配置路径,如本人的配置值为:D:\oracleClient,win10系统添加path值时不需要再手动在最后添加分号,之前用win7时是需要的。
该配置对Toad for Oracle有制约,不配置的话打开Toad for Oracle时会有以下提示:
看来是每次运行时自动在系统path路径中有查找oracle客户端的安装路径,应该跟plsql在菜单Tools->Preferences那一步配置有关,plsql能根据自己配置去oracle配置文件下查找需要的资源,不配置对plsql暂时没发现有什么影响。
环境变量一:NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK,该配置是为了解决中文读取问题,以下是配置该环境变量前后读取数据库表信息的显示状态对比图:
但是对于Toad for Oracle这个配置没影响,好像能自动解决中文读取问题。
环境变量二:TNS_ADMIN=D:\oracleClient\network\admin,大家都说是为了能够按照路径找到上面说的tnsnames.ora,但我特意又给删了,暂时未发现对plsql有什么影响。
另外还有提到 LD_LIBRARY_PATH = D:\oracle;SQL_PATH = D:\oracle;这两个环境变量的,暂时没用到。
2.无法解析制定的连接标识符(ORA-12154:could not relove the connect identifier specified)
我第一次把安装配置流程完成后遇到的问题就是这个,在plsql中无法解决该问题后才下载安装了Toad for Oracle,算是另寻途径,但登陆时竟然还是这个问题,网上不同的解决方案都是类似的,但我这各种调试了半天,最后还是询问了下同事,从他那拷贝过来了tnsnames.ora这个文件,替换后终于登陆成功!
原来我这个文件里字符串是从网上复制过来的,每一行的前面都没有空格和缩进,而同事这个是有缩进正确的,我又网上看大家的说法,也都是有缩进的,但拷贝记事本后就没有的,这问题作为第一次配置该环境的新手怎么能排查到。。。
不过也是我粗心大意,以后多多注意。