• PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释


    PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释

    oracle网络配置
    三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下。
    1.  sqlnet.ora-----通过这个文件来决定怎么样找一个连接中出现的连接字符串。
    例如我们客户端输入
    sqlplus sys/oracle@ora
    假如我的sqlnet.ora是下面这个样子
    SQLNET.AUTHENTICATION_SERVICES= (NTS)
    NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
    那么,客户端就会首先在tnsnames.ora文件中找ora的记录.如果没有相应的记录则尝试把ora当作一个主机名,通过网络的途径去解析它的 ip地址然后去连接这个ip上GLOBAL_DBNAME=ora这个实例,当然我这里ora并不是一个主机名
    如果我是这个样子
    NAMES.DIRECTORY_PATH= (TNSNAMES)
    那么客户端就只会从tnsnames.ora查找ora的记录,括号中还有其他选项,如LDAP等并不常用。
    2.  tnsnames.ora------这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应。
    只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES是,才会尝试使用这个文件。
    例子:
    ORA_TEST =
        (DESCRIPTION =
           (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
           )
          (CONNECT_DATA =
             (SERVER = DEDICATED)
             (SERVICE_NAME = ora)
          )
        ) 
    ORA_TEST:客户端连接服务器端使用的服务别名。注意一定要顶行书写,否则会无法识别服务别名。
    PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。
    HOST:ORACLE服务器端IP地址或者hostname。确保服务器端的监听启动正常。
    PORT:数据库侦听正在侦听的端口,可以察看服务器端的listener.ora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。
    SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令查看。
    3.  listener.ora------listener监听器进程的配置文件
    关于listener进程就不多说了,接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。
    例子:
    #listener.ora Network Configuration File: #E:/oracle/product/10.1.0/Db_2/NETWORK/ADMIN/listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
        (SID_LIST =
             (SID_DESC =
                 (GLOBAL_DBNAME = ora)
                 (ORACLE_HOME = E:/oracle/product/10.1.0/Db_2)
                 (SID_NAME = ora)
             )
        )
    LISTENER =
        (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
        )
    LISTENER :监听名称,可以配置多个监听,多个监听的端口号要区分开来。
    GLOBAL_DBNAME :全局数据库名。通过select * from global_name; 查询得出
    ORACLE_HOME :oracle软件的跟目录
    SID_NAME :服务器端(本机)的SID
    PROTOCOL:监听协议,一般都使用TCP
    HOST:本机IP地址,双机时候使用浮动IP
    PORT:监听的端口号,使用netstat –an 检查该端口不被占用。
    上面一段都是从别人博客中拷来的,原文地址是:
    http://blog.csdn.net/aten_xie/article/details/6174069
    最后我自己用pl/sql连接oracle的时候的配置如下:
    listener.ora文件:
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
           (GLOBAL_DBNAME = testdb)
           (ORACLE_HOME = E:oracleproduct10.2.0db_1)
           (SID_NAME = testdb)
        )
      )
    LISTENER =
        (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 10.101.2.4)(PORT = 1521))
        )
    sqlnet.ora 文件:
    SQLNET.AUTHENTICATION_SERVICES= (NTS)
    NAMES.DIRECTORY_PATH= (TNSNAMES)
    tnsnames.ora 文件:
    FDOL_TEST =
        (DESCRIPTION =
           (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = 10.101.2.4)(PORT = 1521))
           )
          (CONNECT_DATA =
             (SERVER = DEDICATED)
             (SERVICE_NAME = testdb)
          )
        )
    注:
    远程服务器ip: 10.101.2.4
    端口:1521
    数据库:testdb
    用pl/sql登陆时候的database就填 FDOL_TEST

    来源:http://78425665.iteye.com/blog/1201008

  • 相关阅读:
    建立连接数据库时要输入哪些信息?
    如何建立一个JDBC程序?
    如何在网上找MySQL数据库的JDBC驱动jar包?
    gorm连接mysql数据库
    Django ORM的骚操作
    Python 发送企业微信单发和群发机器人
    python获取指定间隔日期列表
    表名小写_set.all()再根据字段过滤
    foreignkey相关的参数
    Django 模型层-多表操作
  • 原文地址:https://www.cnblogs.com/svennee/p/4200640.html
Copyright © 2020-2023  润新知