• oracle三个网络配置文件(listener.ora、tnsname.ora、sqlnet.ora)的作用


    oracle网络配置
    三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME etworkadmin目录下。

    1.  sqlnet.ora-----作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串。
    例如我们客户端输入
    sqlplus sys/oracle@orcl
    假如我的sqlnet.ora是下面这个样子
    SQLNET.AUTHENTICATION_SERVICES= (NTS)
    NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
    那么,客户端就会首先在tnsnames.ora文件中找orcl的记录.如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去解析它的 ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例,当然我这里orcl并不是一个主机名
    如果我是这个样子
    NAMES.DIRECTORY_PATH= (TNSNAMES)
    那么客户端就只会从tnsnames.ora查找orcl的记录,括号中还有其他选项,如LDAP等并不常用。
    2.  Tnsnames.ora------这个文件类似于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的值一定要与数据库侦听正在侦听的端口一样。
    SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令察看。
    ORCL 对应的本机,SALES对应的另外一个IP地址,里边还定义了使用主用服务器还是共享服务器模式进行连接

    #你所要连接的时候输入得TNSNAME
    ORCL =
    (DESCRIPTION =
    (ADDRESS_LIST =
    #下面是这个TNSNAME对应的主机,端口,协议
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
    #使用专用服务器模式去连接需要跟服务器的模式匹配,如果没有就根据服务器的模式自动调节
    (SERVER = DEDICATED)
    #对应service_name,SQLPLUS>;show parameter service_name; 进行查看
    (SERVICE_NAME = orcl)
    )
    )
    #下面这个类似
    SALES =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.188.219)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = sales)
    )
    )
    注意:如果数据库服务器用MTS,客户端程序需要用database link时最好明确指明客户端用dedicated直连方式,不然会遇到很多跟分布式环境有关的ORACLE BUG。一般情况下数据库服务器用直接的连接会好一些,除非你的实时数据库连接数接近1000。
       
    3.  listener.ora------listener监听器进程的配置文件
    关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。
    Listener.ora文件的例子
    #listener.ora Network Configuration File: #E:oracleproduct10.1.0Db_2NETWORKADMINlistener.ora
    # Generated by Oracle configuration tools.
    #下面定义LISTENER进程为哪个实例提供服务 这里是ORCL,并且它对应的ORACLE_HOME和GLOBAL_DBNAME 其中GLOBAL_DBNAME不是必需的除非
    #使用HOSTNAME做数据库连接

    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (GLOBAL_DBNAME = boway)
    (ORACLE_HOME = E:oracleproduct10.1.0Db_2)
    (SID_NAME = ORCL)
    )
    )
    #监听器的名字,一台数据库可以有不止一个监听器
    #再向下面是监听器监听的协议,ip,端口等,这里使用的tcp1521端口,并且使#用的是主机名
    LISTENER =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))
    )
    上面的例子是一个最简单的例子,但也是最普遍的。一个listener进程为一个instance(SID)提供服务

    https://blog.csdn.net/iamlaosong/article/details/7257463

  • 相关阅读:
    MFC子窗体、父窗体
    私有云计算安全问题不容忽视
    云计算更多的是一种模式而不是技术
    原型模式向量的原型
    企业发票异常分析分离进项与销项
    考试系统框架搭建
    抽象工厂模式人与肤色
    工厂方法模式加密算法
    简单工厂模式女娲造人
    企业发票异常分析导入,清洗
  • 原文地址:https://www.cnblogs.com/isme-zjh/p/12133808.html
Copyright © 2020-2023  润新知