精华内容
下载资源
问答
  • oracle tnsnames.ora配置详解

    万次阅读 2019-10-07 16:48:10
    tnsnames.ora是连接oracle的重要配置文件 在这个文件中主要由以下内容 text= ##这个text名字可以自己随意编写,将会先实现pl/sql登录界面数据库选项 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)...

    tnsnames.ora是连接oracle的重要配置文件

    在这个文件中主要由以下内容

    text= ##这个text名字可以自己随意编写,将会先实现pl/sql登录界面数据库选项
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST =127.0.0.1)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME  = text) ##这个text是数据库实例名,大小写敏感,注意进行区分
        )
      )
    

    HOST :配置数据库的ip地址
    PORT :配置数据库的端口号
    注意:第一个text前边不能有其他字符,特别是空格
    同时我们需要在环境变量中配置ORACLE_HONE-----客户端根目录;
    TNS_HOME -----tnsnames.ora文件所在目录。
    这样就使用创建好的账户就可以进行正常登陆。

    展开全文
  • listener.ora/sqlnet.ora/tnsnames.ora配置文件详解

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

    英文说明:

    The sqlnet.ora is an optional file expressing more parameters about the connection (eg: the trace level for debugging, the types of authentication you would like to support and so on). It may be found on the client or the server.

    The tnsnames.ora is used to find a Net8 listener and connect to it and pass to it the details of the database instance youwould like to connect to. It will be found on the client side. Note that a SERVER can be a client of another database so it is typical to find it on the SERVER as well.

    The listener.ora is used to setup the configuration of the net8 listener. to specify the port it will listen on, give it the details of the databases it can connect to and so on. This file is on the SERVER only.

    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 检查该端口不被占用。

    当你输入sqlplus sys/oracle@orcl的时候 
    1. 查询sqlnet.ora看看名称的解析方式,发现是TNSNAME 
    2. 则查询tnsnames.ora文件,从里边找orcl的记录,并且找到主机名,端口和service_name 
    3. 如果listener进程没有问题的话,建立与listener进程的连接。 
    4. 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。 
    5. 这时候网络连接已经建立,listener进程的历史使命也就完成了。

    sql*plus运行基本机理: 
    在用户输入sqlplus system/manager@test后,sqlplus程序会自动到sqlnet.ora文件中找NAMES.DEFAULT_DOMAIN参数,假如该参数存在,则将该参数中的值取出,加到网络服务名的后面,即此例中你的输入由sqlplus system/manager@test自动变为sqlplus system/manager@test.server.com ,然后再到tnsnames.ora文件中找test.server.com网络服务名,这当然找不到了,因为该文件中只有test网络服务名,所以报错。解决的办法就是将sqlnet.ora文件中的NAMES.DEFAULT_DOMAIN参数注释掉即可,如 #NAMES.DEFAULT_DOMAIN = server.com。假如NAMES.DEFAULT_DOMAIN参数不存在,则sqlplus程序会直接到tnsnames.ora文件中找 test网络服务名,然后取出其中的host ,port,tcp,service_name,利用这些信息将连接请求发送到正确的数据库服务器上。

    展开全文
  • 概述 在oracle安装目录$HOME/network/admin下,,经常看到sqlnet.ora tnsnames.ora listener.ora这三个文件,除了tnsnames.ora,其他两个文件详细的用途很多人都不太了解。...tnsnames.ora 用在oracle client端

    一、sqlnet.ora

    sqlnet.ora 用在oracle client端,用于配置连接服务端oracle的相关参数。
    1).NAMES.DEFAULT_DOMAIN:域名domain定义,在你用sqlplus访问数据库的时候,会在tns别名后面加上".domain"

    示例:.NAMES.DEFAULT_DOMAIN=.com

    在客户端执行命令:sqlplus username/password@local_dev的时候,会出现如下错误信息:

    "ORA-12154: TNS: 无法处理服务名"或者"ORA-12154: TNS:could not resolve service name"这样的错误信息。
    因为sqlplus username/password@orcl的时候,将tns别名“orcl”转换成了“orcl.com”,所以orcl.com在tnsnames.ora中找不到,就报错了。

    修改tnsnames.ora中的定义如下:
    ORCL.com =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.147)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )
    再执行sqlplus username/password@orcl连接成功。

    2)NAMES.DIRECTORY_PATH:定义了在客户端连接数据库时,采用什么样的匹配方式。

    示例:NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

    那么在客户端执行sqlplus username/password@local_dev连接数据库的时,首先采用tnsnames.ora的别名配置连接数据库;如果连接上;再采用ONAMES进行解析,最后采用主机名进行解析。
    ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES;HOSTNAME表示使用host文件,DNS,NIS等来解析;

    3)SQLNET.AUTHENTICATION_SERVICES:定义登录数据库的认证方式,这个参数默认没有设置。
    示例:SQLNET.AUTHENTICATION_SERVICES=(NONE,NTS)

    NONE表示Oracle数据库身份验证,NTS表示操作系统身份验证,两种方式可以并用,先后顺序表明验证的优先方式。

    4)tcp.validnode_checking=yes:表示启用客户端的IP检查,非法的IP将被拒绝访问Oracle。

    5)tcp.invited_nodes=(IP1,IP2,IP3...):表示允许哪些IP访问Oracle。

    6)tcp.excluded_nodes=(IP1,IP2,IP3...):表示拒绝哪些IP访问Oracle。

    二、tnsnames.ora

    tnsnames.ora 用在oracle client端,用户配置连接数据库的别名参数,就像系统中的hosts文件一样。提供了客户端连接某个数据库的详细信息,主机地址,端口,数据库实例名等。
    示例:
    ORCL =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.147)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )
    PROTOCOL参数一般是TCP,可以根据服务器情况选择一种配置方式。

    HOST 一般是ip地址,如果是主机名,则应该在客户端系统的host文件上配好主机名和ip地址的映射关系。

    PORT 标准是1521,根据服务器端的监听端口而定。

    SERVICE_NAME 就是数据库的服务名。

    三、listener.ora

    tnslsnr进程是监听、并接受远程连接数据库请求的监听进程。listener.ora是tnslsnr进程的配置文件,监听的参数都是从该配置文件中读取,该文件位于服务端。如果你只需要在本地连接数据库,不接受远程连接,那么也不需要启动tnslsnr进程,也不需要去维护listener.ora文件。
    启动监听进程的命令,在命令模式下,执行lsnrctl start命令就启动了监听进程tnslsnr。

    示例:
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = /oracle/product/10.2.0/db_1)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = orcl)
          (ORACLE_HOME = /oracle/product/10.2.0/db_1)
          (SID_NAME = orcl)
        )
        (SID_DESC =
          (ORACLE_HOME = /oracle/product/10.2.0/db_1/)
          (SID_NAME = eas)
        )
        
      )

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.147)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
        )
      )

    LISTENER部分包含协议地址列表,每个实例一个入口。

    SID_LIST_LISTENER部分标识全局数据库名称、标识监听程序正在服务的每个实例的Oracle软件主目录以及实例或SID。

    当你执行命令sqlplus username/password@tnsname时,一般处理过程如下:
    1) 查询sqlnet.ora看看名称的解析方式,由参数NAMES.DIRECTORY_PATH控制,常用参数值TNSNAME和hostname,不指定参数则默认使用TNSNAME。
    2) 如果使用TNSNAME,则查询tnsnames.ora文件,从里边找tnsname的记录,并且找到主机名,端口和service_name。
    3) 如果listener进程没有问题的话,建立与listener进程的连接。
    4) 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。
    5) 这时候网络连接已经建立,listener进程的历史使命也就完成了。

    几种连接数据库用到的命令形式:
    1)sqlplus "/ as sysdba" 这是典型的操作系统认证,不需要listener进程,数据库即使不可用也可以登录。
    2)sqlplus username/password 不需要listener进程,登录本机数据库,数据库实例启动即可。
    3)sqlplus username/password@tnsname需要listener进程,最常见的远程登录模式,需要启动数据库实例和listener进程。

     

    注:如果本地连接数据库,服务器进程显示如下:

           oracle    2878  2814  0 09:46 ?        00:00:00   oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

           如果通过监听连接数据库,服务器进程显示如下:

           oracle    3124     1    0 09:48 ?         00:00:00 oracleorcl (LOCAL=NO)

     

    展开全文
  • ORACLE配置tnsnames.ora文件详解

    万次阅读 2013-03-21 11:10:00
    ORACLE配置tnsnames.ora文件实例 客户机为了和服务器连接,必须先和服务器上的监听进程联络。ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息。一般tnsnames.ora 是建立在客户机上的。如果是客户机/服务器...
    
    

    ORACLE配置tnsnames.ora文件实例
    客户机为了和服务器连接,必须先和服务器上的监听进程联络。ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息。一般tnsnames.ora 是建立在客户机上的。如果是客户机/服务器结构,整个网络上只有一台机器安装了ORACLE数据库服务器,那么只需在每个要访问ORACLE服务器的客户机上定义该文件,在服务器上无需定义。但是,如果网络上有多台机器均安装了ORACLE数据库服务器,并且服务器之间有数据共享的要求,那么在每台服务器上都必须定义该文件。tnsnames.ora文件缺省放在/ORACLE_HOME/ product/8.1.7/network/admin目录下。下面是tnsnames.ora的文件样式:
    ORA817 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = sun62)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = ora817.huawei.com)
        )
      )

    INST1_HTTP =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = sun62)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = SHARED)
          (SERVICE_NAME = ora817.huawei.com)
          (PRESENTATION = http://admin)
        )
      )

    EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
    字段含义如下:
    ADDRESS_LIST      表示该客户机要经由多种协议与一台或多台服务器连接。在该样式文件中就表示该客户机要用TCP/IP协议来和服务器相连。
    PROTOCOL 指明要连接使用的协议。
    SERVICE_NAME      “SERVICE_NAME”就是“Global Database Name”,ORACLE8i数据库使用“Global Database Name”来唯一标识自己,通常的格式为“name.domain”,此处的值为“ora817.huawei.com”。
    HOST      是TCP/IP协议使用的服务器IP地址。
    PORT      是TCP/IP使用的端口地址。
    SID      指定要连接的服务器上ORACLE数据库的ORACLE_SID。
    SERVER=DEDICATED 表示用专用服务器连接ORACLE数据库。
    下面是一个tnsnames.ora文件内容举例:
    ora =  连接描述符名:ora
      (description =  描述
        (address = 网络地址之一
          (protocol = tcp) 网络协议(tcp表示TCP/IP协议)
          (host = 129.9.114.22) 服务器IP地址:129.9.114.22
          (port = 1251) 服务器端口号:1251
        ) 
        (connect_data = 连接数据
          (sid = ora7) 数据库标识名:ora7
        ) 
      ) 

    展开全文
  • 转自:... oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下。 英文说明: The sqlnet.ora is an optional file express...
  • Oracle的tnsnames.ora 监听配置文件详解

    千次阅读 2018-09-02 11:21:00
    监听配置文件 为了使得外部进程 如 CAMS后台程序 能够访问 Oracle 数据库 必须配 置 Oracle 网络服务器环境 配置 Oracle 网络服务器环境是通过配置 listener.ora sqlnet.ora 和 tnsnames.ora 共三个文件来进行的 ...
  • 监听配置文件为了使得外部进程 如 CAMS后台程序 能够访问 Oracle 数据库 必须配置 Oracle 网络服务器环境 配置 Oracle 网络服务器环境是通过配置listener.ora sqlnet.ora 和 tnsnames.ora 共三个文件来进行的 ...
  • 概述Oracle监听一般会涉及三个文件:sqlnet.ora、tnsnames.ora、listener.ora,这三个文件之间有什么区别呢?分别的作用是什么?sqlnet.orasqlnet.ora 用在oracle client端,用于配置连接服务端oracle的相关参数。1)...
  • oracle tnsnames.ora文件详解

    万次阅读 2014-05-24 11:21:00
    为了使得外部进程如 CAMS后台程序能够访问 Oracle 数据库必须配置 Oracle 网络服务器环境配置 Oracle 网络服务器环境是通过配置listener.ora sqlnet.ora 和 tnsnames.ora 共三个文件来进行的listener.ora即监听配置...
  • 频繁更换数据库服务器,如何更改tnsnames.ora文件配置 ora11g_gongsi = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.152.22)(PORT = 1521)) (CONNECT_DATA = ...
  • 监听配置文件 为了使得外部进程 如 CAMS后台程序 能够访问 Oracle 数据库 必须配 置 Oracle 网络服务器环境 配置 Oracle 网络... listener.ora sqlnet.ora 和 tnsnames.ora 共三个文件来进行的 listener.ora ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 101
精华内容 40
关键字:

tnsnames.ora配置详解