从oracle官方下载instant client文件(64位):instantclient-basic-windows.x64-11.2.0.4.0.zip
有basic、sqlplus、odbc、jdbc一般来说就够用了。
1)将上述zip文件解压到同一个目录C:\instantclient_11_2,便于查找和使用。
2)配置环境变量(我的电脑->属性->高级系统设置->环境变量)
TNS_ADMIN=C:\instantclient_11_2
3)新建sqlnet.ora文件
如果你安装的是instant client,这个sqlnet.ora文件是不存在的。可以从服务器端%ORACLE_HOME%\NETWORK\ADMIN目录中去复制而来。
完整代码如下
# sqlnet.ora Network Configuration File: C:\instantclient_11_2\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
4)新建tnsnames.ora文件
如果你安装的是instant client,这个文件是不存在的。
如果安装完整oracle客户端,该配置文件应该位于ORACLE_HOME\NETWORK\ADMIN目录,
它定义了建立到一个数据库的连接所需的各种地址。
一般形式如下:
<addressname> =
(DESCRIPTION =
(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(Host = <hostname>)(Port = <port>))
)
(CONNECT_DATA =(SERVICE_NAME = <sid>)
)
)
本机开发环境完整代码,如下
# tnsnames.ora Network Configuration File: C:\instantclient_11_2\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = DBWin2012)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
5)测试连接
telnet 192.168.2.31 1521
测试失败,先检查防火墙端口1521是否开放!
关于tnsping命令,就是从TNS连接字符串中读取HOST和PORT参数,打开一个套接字连接,然后向监听发送一个ping,监听则以一个pong来响应。
PS:因为安装的是instant client,这个tnsping命令是不存在的。
6)远程登录数据库
使用sqlplus远程登录有两种方式。
1,把连接字符串完全写出来,如下所示:
sqlplus sys/[email protected]"(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP)(HOST=DBWin2012)(PORT=1521)) (CONNECT_DATA= (SERVER=orcl)))" as sysdba
2,直接将TNS别名写出来,以上面给出本机的tnsnames.ora为例:
sqlplus sys/[email protected] as sysdba
select username,default_tablespace from user_users; ##查看当前用户sys的缺省表空间
或者等效如下,
sqlplus sys/[email protected]:1521/orcl as sysdba
其他的oracle客户端软件怎样找到这个文件呢?
解决办法:添加一个名为TNS_ADMIN的环境变量,保存tnsnames.ora地址。客户端软件就会根据这个变量给出的地址找到对应的tnsnames.ora文件。