一、Windows操作系统环境变量配置:
path=E:\app\client\Administrator\product\12.2.0\client_1\bin\
ORACLE_HOMEE=E:\app\client\Administrator\product\12.2.0\client_1
TNS_ADMIN=E:\app\client\Administrator\product\12.2.0\client_1\network\admin
NLS_LANG=AMERICAN_AMERICA.UTF8
注:语言根据实际情况配置,例如中文为
NLS_LANG=AMERICAN_CHINA.ZHS16GBK
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
配置:C:\app\client\Administrator\product\12.1.0\client_1\NETWORK\ADMIN\tnsnames.ora
二、Oracle网络连接配置
(1)创建文件夹及文件
在D盘创建如下文件夹D:\Oralce\client_10_2\NETWORK\ADMIN。 其中,“\NETWORK\ADMIN”为新建。
(2)创建并配置tnsnames.ora
# tnsnames.ora Network Configuration File: C:\app\client\Administrator\product\12.1.0\client_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
#ORCL是定义的数据库别名
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.2.97)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
(3)创建并配置sqlnet.ora
# 指定启动一个或多个认证服务
SQLNET.AUTHENTICATION_SERVICES= (NTS)
# 指定CLIENT NAME解析方法的次序,默认是NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
1.指定启动一个或多个认证服务
认证服务就是指Oracle的身份验证服务,你登陆Oracle时,有的时候不需要输入用户名,有的时候既需要输入用户名,也需要输入密码。那什么时候什么都不需要输入,什么时候都需要输入呢?这就和这里指定的认证服务有关系了。一般有以下三种取值:
•NONE:作用是不允许通过OS系统用户登录数据库,需要提供用户名及密码;
•ALL:作用是允许所有的登录方式;
•NTS:作用是允许本地操作系统用户认证;
2.指定CLIENT NAME解析方法的次序
我们连接数据的时候,会有以下的语法格式的输入:
CONNECT username/password [@db_alias] AS [SYSOPER | SYSDBA] ;
可以看到这个语法中,有一个db_alias,这个东西是什么呢?这个db_alias就是在tnsnames.ora中定义的数据库的别名,比如:
#ORCL是个别名
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
这个db_alias就是上面所说的ORCL,那么我们连接的时候,怎么知道这个ORCL是个什么东西呢?这就和sqlnet.ora中的配置有关系了。
当第一个指定为TNSNAMES时,就先到tnsnames.ora文件中去找对应的db_alias;如果找不到,就再按指定的第二种方式去找;如果都找不到,就将指定的db_alias当做主机名在网络上进行解析,得到数据库服务器的地址。
很多朋友对EZCONNECT很不解,这个EZCONNECT表示简单连接,就是说可以不用在tnsnames.ora文件去查询服务名就可以进行数据库的连接,比如我们可以这样进行连接:
username/password@hostname:port/service_name