zoukankan      html  css  js  c++  java
  • Oracle配置文件

    在oracle安装目录$HOME/network/admin下,,经常看到sqlnet.ora tnsnames.ora listener.ora这三个文件,除了tnsnames.ora,其他两个文件详细的用途很多人都不太了解。
    1. sqlnet.ora 用在oracle client端,用于配置连接服务端oracle的相关参数.
    2. tnsnames.ora 用在oracle client端,用户配置连接数据库的别名参数,就像系统中的hosts文件一样。
    3. listener.ora 用在oracle server端,配置oracle服务端程序的监听办法,比如限制某些ip等参数。
    在安装目录$HOME/network/admin/samples下,会看到如上上个文件的示例文件,里面会有相关参数的说明和用法,如果遇到什么问题,大家可以对照这些示例文件中相关参数的说明进行解决。
    如果连接数据库出了什么问题,在保证网络出正常,没有防火墙干扰的情况下,查找问题的步骤是:
    1)在客户端顺序检查sqlnet.ora,tnsnames.ora是有问题。
    2)在服务器端检查listener.ora配置,并且保证监听程序启动,数据库服务加载。
     
    1. 认识sqlnet.ora
     
    下面只讲述几个常用参数配置,详细的资料,大家可以查看示例sqlnet.ora得到。
    sqlnet.ora可以删除,这样在oracle客户端连接数据库的时候,默认采用tnsnames.ora中的配置。
    1).NAMES.DEFAULT_DOMAIN
    域名domain定义,在你用sqlplus访问数据库的时候,会在tns别名后面加上".domain"
    示例:
    sqlnet.ora中:
    NAMES.DEFAULT_DOMAIN=com
    tnsnames.ora中的tns定义如下:
    local_dev =
       (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
              (CONNECT_DATA =
            (SERVER = DEDICATED)
          (SERVICE_NAME = linuxdb)
       )
    )
    在客户端执行命令:sqlplus username/password@local_dev[/email]的时候,会出现如下错误信息:
    "ORA-12154: TNS: 无法处理服务名"或者"ORA-12154: TNS:could not resolve service name"这样的错误信息。
    因为sqlplus username/password@local_dev[/email]的时候,将tns别名“local_dev”转换成了“local_dev.com”,所以local_dev.com在tnsnames.ora中找不到,就报错了。
    修改tnsnames.ora中的定义如下:
    local_dev.com =
       (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
              (CONNECT_DATA =
            (SERVER = DEDICATED)
          (SERVICE_NAME = linuxdb)
       )
    )
    再执行sqlplus [email=username/password@local_dev]username/password@local_dev[/email],连接成功。
    2)NAMES.DIRECTORY_PATH
    定义了在客户端连接数据库时,采用什么样的匹配方式。
    示例
    sqlnet.ora内容如下:
    NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
    那么在客户端执行sqlplus  username/password@local_dev[/email]连接数据库的时
    首先采用tnsnames.ora的别名配置连接数据库,若连不上再采用ONAMES进行解析,最后采用主机名进行解析。
    ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES;
    HOSTNAME表示使用host文件,DNS,NIS等来解析;
    3)SQLNET.AUTHENTICATION_SERVICES
    定义登录数据库的认证方式。
    NONE表示Oracle数据库身份验证,NTS表示操作系统身份验证,两种方式可以并用。 
    可以设置成SQLNET.AUTHENTICATION_SERVICES=(NONE,NTS)先后顺序表明验证的优先方式。
    示例
    sqlnet.ora内容如下:
    SQLNET.AUTHENTICATION_SERVICES=(NONE)
    在命令行上执行如下命令:
    sqlplus "/ as sysdba"时,执行失败。
    提示错误信息ORA-01031: insufficient privileges
    这个参数默认没有设置。 
     
    2. 认识tnsnames.ora
     
    提供了客户端连接某个数据库的详细信息,主机地址,端口,数据库实例名等。
    下面给出一个示例来说明问题:
    local_dev =
       (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
              (CONNECT_DATA =
            (SERVER = DEDICATED)
          (SERVICE_NAME = linuxdb)
       )
    )
    PROTOCOL参数一般是TCP,可以根据服务器情况选择一种配置方式。
    HOST 一般是ip地址,也可以是主机名,这个主机名字只要能用ping hostname通就行,一般在客户端系统的host文件上配好主机名和ip地址的映射关系。PORT 标准是1521,根据服务器端的监听端口而定。SERVICE_NAME 就是数据库的服务名,用system用户登陆后,sqlplus> show parameter service_name命令查看。
     
    3. 认识listener.ora
     
    tnslsnr进程是监听、并接受远程连接数据库请求的监听进程,listener.ora是tnslsnr进程的配置文件,监听的参数都是从该配置文件中读取。
    该文件位于服务端,如果只安装oracle客户端,一般不存在这个文件。
    如果你只需要在本地连接数据库,不接受远程连接,那么也不需要启动tnslsnr进程,也不需要去维护listener.ora文件。
    启动监听进程的命令,在命令模式下,执行lsnrctl start命令就启动了监听进程tnslsnr。
    监听可以有多个,也就是说,可以同时监听多个oracle实例,可以在listener.ora中定义多个监听器进行监听。
    下面给出一个简单的示例
    listener.ora中的内容:
    LISTENER_CSB =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.14)(PORT = 1621))
          )
        )
      )
    SID_LIST_LISTENER_CSB =
      (SID_LIST =
        (SID_DESC =
          (ORACLE_HOME = /u02/oracle/app/oracle/product/10.2.0/db)
          (SID_NAME = zjdevcsb)
        )
      )
    #############################################
    LISTENER_CSA =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.14)(PORT = 1521))
          )
        )
      )
    SID_LIST_LISTENER_CSA =
      (SID_LIST =
        (SID_DESC =
          (ORACLE_HOME = /u02/oracle/app/oracle/product/10.2.0/db)
          (SID_NAME = zjdevcsa)
        )
      )
    在上面:
    1). LISTENER_CSB,LISTENER_CSA定义了监听器的两个监听名字,和这两个监听器监听的参数:ip,port等。
    2). SID_LIST_LISTENER_CSB,SID_LIST_LISTENER_CSA定义了两个监听服务,服务名字格式SID_LIST_<lsnrname>,lsnrname就是上面两个监听器的名字,指定了这个服务将会接受的服务将提交给那个监听器;监听的实例名zjdevcsb,zjdevcsa是在tnsnames.ora中需要指定的SERVICE_NAME参数对应。
     
  • 相关阅读:
    Leetcode 538. Convert BST to Greater Tree
    Leetcode 530. Minimum Absolute Difference in BST
    Leetcode 501. Find Mode in Binary Search Tree
    Leetcode 437. Path Sum III
    Leetcode 404. Sum of Left Leaves
    Leetcode 257. Binary Tree Paths
    Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
    Leetcode 226. Invert Binary Tree
    Leetcode 112. Path Sum
    Leetcode 111. Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/xianglongsdu/p/4800403.html
Copyright © 2011-2022 走看看