oracle 网络配置文件详解

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/songyundong1993/article/details/52621768
oracle网络配置(以下配置文件部分只涉及动态注册)
三个配置文件 listener.ora、tnsnames.ora、sqlnet.ora(linux默认没有),都是放在$ORACLE_HOME\network\admin目录下。


listener.ora文件的说明

监听配置文件,在数据库服务端,该文件可以通过netca命令进行配置。
****************************************************************************************************************************
 LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = dj)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle
****************************************************************************************************************************
对于LISTENER  主要是配置监听的ip地址和端口,一般通过netca配置以后就会生成一个(ADDRESS = (PROTOCOL = TCP)(HOST = hsj2)(PORT = 1521)),其中对于host建议改成对应的ip地址。

tnsnames.ora 文件的说明

这个文件用于客户端找到数据库服务器的监听,并且告诉监听需要访问的service,所以对于这个文件有三个地方的信息重要,一个是ip地址,
一个是端口号:一般都是1521,还有一个就是SERVICE_NAME。
对于这个配置文件,我们可以使用netca命令的本地命名配置进行配置,也可以只用vi编辑器直接修改
*****************************************************************************************************************************
SYD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dj)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = syd)
    )
  )


ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dj)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
****************************************************************************************************************************** 
  
sqlnet.ora文件的说明  
 

此文件位于客户端 用于指定客户端的名称解析查询的命名方法的顺序。
          位于客户端与服务端在一台机器上时  可管理数据库操作系统认证方式。
*******************************************************************************************************************************  
#SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
*******************************************************************************************************************************
在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。
<Windows> 
  sqlnet.ora文件为空时采用Oracle密码文件验证
  SQLNET.AUTHENTICATION_SERVICES= (NTS)     基于操作系统验证;
 SQLNET.AUTHENTICATION_SERVICES= (NONE)  基于Oracle密码文件验证
 SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)  二者并存,注意是半角,否则不识别

在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为其他任何值都不能使用OS认证。
<Unix/Linux> 
 默认情况下Unix/Linux下的sqlnet.ora文件是没有SQLNET.AUTHENTICATION_SERVICES参数的,
此时是操作系统验证和Oracle密码验证并存,加上SQLNET.AUTHENTICATION_SERVICES这个参
数后,不管SQLNET.AUTHENTICATION_SERVICES设置为NONE还是NTS还是(NONE,NTS),都是
基于Oracle密码验证。



结论:

如果我们的客户端不能连接数据库服务器,我们可以使用以下几个步骤进行排除


a 在服务器端使用本地策略连接数据库,查看数据库是否正常开启 sqlplus / as sysdba

b 查看监听程序状态是否正常,比如说没有启动监听,在监听信息中找不到对应的service和instance 。lnsrctl status
  如果没有启动  lnsrctl start
  如果没有注册成功,手动注册命令  alter system register
c 检查客户端配置,在客户端
   sqlplus system/oracle@orcl 这种方式不可以远程连接orcl数据库。

   sqlplus system/oracle@192.168.100.111:1521/orcl  这种方式可以连接说明tnsnames.ora配置有问题。


          客户端远程连接服务器端数据库:

          服务器端的侦听器(lsnrctl)通过listener.ora文件(或不用此文件,直接用默认值)注册到服务器端已开启的实例(lsnrctl status),客户端通过读取tnsnames.ora文件里面的配置信息获取服务器的地址进而连接服务器端的数据库。


展开阅读全文

没有更多推荐了,返回首页