实验环境:PL/SQLDeveloper 9.06(Window7 64bit下安装)
RHEL 5.5 32bit(VMware下)
Oracle 10g R2.0.1.0(RHEL下)
其中,Windows 7模拟客户端,Red Hat Linux模拟远程服务器端。
1、 安装InstantClient。
到官网下载Instant Client,下载10g 32位的,因为PL/SQL Developer只有32位的。下载完解压到随意文件夹。本次实验解压到:D:\download\Oracle Tools\instantclient_10_2。下载地址:http://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html。
2、 设置环境变量。
根据解压路径配置Windows环境变量PATH、TNS_ADMIN和NLS_LANG
u PATH中添加:D:\download\OracleTools\instantclient_10_2;
本次试验中即使没有添加此项,也能成功使用PL/SQL Developer连接远程Oracle,但Oracle官方安装Instant Client建议配置进去,所以这里保留此配置。
u TNS_ADMIN中添加:D:\download\Oracle Tools\instantclient_10_2;
配置此环境变量,是为了PL/SQL Developer找到tnsnames.ora文件,据说PL/SQL Developer会根据Oracle版本去相应路径找tnsnames.ora。如为10g,即在此环境变量配置的路径下找“network\admin\tnsnames.ora”。
但是实验中并没有成功,需要配置到admin目录下才行。
u NLS_LANG中添加:american_america.uft8
这个根据实际情况配置,中文环境:NLS_LANG=AMERICAN_AMERICA.ZHS16GBK。如果不配置,则在PL/SQL Developer中查询等操作时会出现乱码。
3、 配置客户端TNS。
在Instance Client解压目录下(即:D:\download\Oracle Tools\instantclient_10_2)创建network文件夹,network下再创建admin文件夹,即:“D:\download\OracleTools\instantclient_10_2\network\admin”。把服务器端(即Linux下的Oracle)的tnsnames.ora文件复制到指定此文件夹下。
D:\download\Oracle Tools\instantclient_10_2目录下最终有以下文件:
4、 解决兼容性问题(视需而设置,有些环境不需要以下设置)。
a) win+R → 输入sysdm.cpl,点确定 → 高级 → 性能栏下“设置” → 数据执行保护,将PL/SQLDeveloper添加进去,后确定(需重启)。
b) 将PL/SQL Developer的执行程序plsqldev.exe兼容性更改为用Windows XP运行。
5、 关闭服务器端防火墙,开启Oracle监听,启动数据库。
关闭防火墙:# /sbin/iptables -F
启动监听:$ lsnrctl start
测试TNS名字是否可用:$ tnsping daocn_tns
6、 配置PL/SQL Developer的首选项。
无登陆状态下打开PL/SQL Developer,设置首选项的两个目录位置,其中Oracle主目名此处设置为“D:\download\OracleTools\instantclient_10_2”,OCI库设置为:“d:\download\oracletools\instantclient_10_2\oci.dll”,如下所示:
配置后,点确认,关闭PL/SQL Developer。
7、 经过以上步骤后,基本配置完毕,但前提是Windows端与VMware中的Linux可用ping通,此文不涉及此法。
8、 启动PL/SQL Developer。
连接成功!查询数据以测试:
由于上面环境变量NLS_LANG配置正确,所以此处可以正常显示中文。顺便说说,使用SQL Developer之所以不需配置NLS_LANG环境变量,也可以正常显示中文,是因为SQL Developer软件本身无字符集,默认使用的是系统字符集(表达不知是否准确?)。
至此,本实验完毕。