Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器。
TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC。如果通过TNS连接Oracle,那么客户端必须安装Oracle client程序。
Oracle当中,如果想访问某个服务器,必须要设置TNS,它不像SQL SERVER那样在客户端自动列举出在局域网内所有的在线服务器,只需在客户端选择需要的服务器,然后使用帐号与密码登录即可。而Oracle不能自动列举出网内的服务器,需要通过读取TNS配置文件才能列出经过配置的服务器名。
配置文件名一般为:tnsnames.ora,默认路径:%ORACLE_HOME%\network\admin\tnsnames.ora
二、详细配置及说明
1.下载PL/SQL Developer(包括Oracle instant client_11_2)
下载地址:http://download.csdn.net/detail/wuqinfei_cs/7740373
2.配置Oracle客户端
下载之后将其解压,不需要进行安装,在PLSQL文件夹下将看到PL/SQL Developer文件夹和instantclient_11_2文件夹和一个说明txt文档,里面是使用说明。可以按照里面的路径设置PL/SQL Developer和instantclient_11_2,也可以自己设置。
1)配置Oracle客户端tns
在instantclient_11_2目录下新建两层文件夹\NETWORK\ADMIN,再在ADMIN文件夹下面建一个tnsnames.ora文件,然后向文件中添加如下内容:
MWDB=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = MWDB)
)
)
第一个黄色字块表示:远程服务器在本地(PL/SQL中显示)的主机名称
第二个黄色字块表示:远程数据库的地址
第三个黄色字块表示:远程数据库实例名
2)添加环境变量(包括监听文件地址及ORACLE语言)a)添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径。比如我的本机为:E:\Programs\instantclient_11_2
b)设置ORACLE的语言,添加环境变量NLS_LANG ,值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
补充:如果不清楚远程数据库的ORACLE 语言,可以ssh或者telnet到远程机器,在命令界面输入,用命令行连接到数据库。
select * from nls_instance_parameters;
查看NLS_LANGUAGE 的值
NLS_LANGUAGE
NLS_TERRITORY
3)配置PLSQL Developer
将解压出来的PLSQL Developer文件夹随便放到一个系统路径中,如本机为:E:\Programs\PLSQL Developer 8.0.3.1510
双击该文件夹中的“plsqldev.exe”打开PLSQL,进入后,选择菜单"工具>首选项>连接"
Oracle主目录名中填入: E:\Programs\instantclient_11_2
OCI库填入: E:\Programs\instantclient_11_2\oci.dll
保存并关闭PLSQL,重新打开,上面tnsnames.ora中配置的主机名称就会出现中“数据库”下拉列表中,如下图:
4)输入用户名/口令登陆时,提示“数据库字符集(AL32UTF8)和客户端字符集(2%)是不同的”
则说明你安装的Oracle的字符集是AL32UTF8,而上面配置时(见2)-b))填的是"ZHS16GBK",这时只需要将环境变量中的ZHS16GBK改为AL32UTF8即可
==============================================================
补充Instant Client 说明
Oracle Instant client 是oracle提供的简便客户端, 支持多种平台. 可从oracle网站下载, 下载地址为
http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html
Instant client Package - Basic 运行OCI, OCCI, 和JDBC-OCI应用程序需要的所有文件.
Instant client Package - Basic Lite: 只包含英语错误信息, 只支持unicode, ascii, 西欧字符集.
Instant client Package - JDBC Supplement 为jdbc增加了xa, 国际化和RowSet操作.
Instant Client Package - SQL *Plus 包含sqlplus和需要的库文件
Instant client Package - SDK 使用Instant Client开发Oracle 应用程序需要的头文件及示例makefile
Instant client package - ODBC 使用odbc时需要的库, 不是所有平台都有. Linux 平台包含.
Basic和Basic Lite两个中必须选一个, 其他包都是可选的. 我下载了 Basic, JDBC supplement, SQL *Plus, SDK, ODBC. 解压后放在一个文件夹下, 在这个文件夹下建立文件tnsnames.ora, 设置环境变量LD_LIBRARY_PATH和TNS_ADMIN指向解压后的目录, 就可以使用sqlplus了.
我下载的instant client版本为10.2.0.2.0, 测试 了联接到oracle 9.2.0.4和oracle 10.2.0.1.
Instant Client中不包含tnsping, exp/imp, rman, netca等工具. 如果需要这些工具则需要安装oracle client
---------------------------------------------------
另见:
http://blog.csdn.net/helifengwell/article/details/5820434
http://blog.csdn.net/u010004460/article/details/52077367