当前位置:Gxlcms > 数据库问题 > Oracle配置文件

Oracle配置文件

时间:2021-07-01 10:21:17 帮助过:4人阅读

在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参数对应。  

Oracle配置文件

标签:

人气教程排行