Oracle网络配置文件

  为了使Oracle 数据库能够被远程访问,Oracle 网络服务器环境是通过配置listener.ora、sqlnet.ora 和 tnsnames.ora 共三个文件来进行的。这三个文件放在$ORACLE_HOME\network\admin目录下。

一、sqlnet.ora

  sqlnet.ora用来控制客户端访问数据库服务器。我们先看看sqlnet.ora中的内容。

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

  里面就上面那么两行的内容,先简单说说这两行分别起什么作用。

指定启动一个或多个认证服务
SQLNET.AUTHENTICATION_SERVICES= (NTS)

指定CLIENT NAME解析方法的次序
默认是NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

两个配置项的作用

1、指定启动一个或多个认证服务

​ 认证服务就是指Oracle的身份验证服务,你登陆Oracle时,有的时候不需要输入用户名,有的时候既需要输入用户名,也需要输入密码。那什么时候什么都不需要输入,什么时候都需要输入呢?这就和这里指定的认证服务有关系了。一般有以下三种取值:

扫描二维码关注公众号,回复: 11577308 查看本文章

– NONE:作用是不允许通过OS系统用户登录数据库,需要提供用户名及密码;

– ALL:作用是允许所有的登录方式;

– NTS:作用是允许本地操作系统用户认证;

2、指定CLIENT NAME解析方法的次序 我们连接数据的时候,会有以下的语法格式的输入:

CONNECT username/password [@db_alias] AS [SYSOPER | SYSDBA] ;

​ 可以看到这个语法中,有一个dbalias**,这个东西是什么呢?这个dbalias就是在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文件中去找对应的dbalias**;如果找不到,就再按指定的第二种方式去找;如果都找不到,就将指定的dbalias当做主机名在网络上进行解析,得到数据库服务器的地址。

  EZCONNECT表示简单连接,就是说可以不用在tnsnames.ora文件去查询服务名就可以进行数据库的连接,比如我们可以这样进行连接:

   username/password@hostname:port/service_name

二、tnsname.ora

tnsname.ora是Oracle客户端的网络服务名配置文件,用于存放该客户端配置的可连接实例的参数。这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应,只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES是,才会尝试使用这个文件。

• PROTOCOL:客户端与服务器端通讯的协议,一般为TCP。

• HOST:数据库侦听所在的机器的机器名或IP地址,数据库侦听一般与数据库在同一个机器上,所以当我说数据库侦听所在的机器一般也是指数据库所在的机器。在UNIX或WINDOWS下,可以通过在数据库侦听所在的机器的命令提示符下使用hostname命令得到机器名,或通过ipconfig(for WINDOWS) or ifconfig(for UNIX)命令得到IP地址。需要注意的是,不管用机器名或IP地址,在客户端一定要用ping命令ping通数据库侦听所在的机器的机器名,否则需要在 hosts文件中加入数据库侦听所在的机器的机器名的解析。

• PORT:数据库侦听正在侦听的端口,可以察看服务器端的listener.ora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。

• SERVICENAME**:在服务器端,用system**用户登陆后,sqlplus> show parameter servicename命令察看。

三、listener.ora

   listener.ora 用在oracle server端,配置oracle服务端程序的监听办法,比如限制某些ip等参数。接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。

猜你喜欢

转载自blog.csdn.net/qq_42979842/article/details/107653503
今日推荐