Oracle监听配置与访问方式完全解析.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle监听配置与访问方式完全解析

Oracle监听配置及访问方式完全解析(原创) Oracle 网络配置 ? 三个配置文件:listener.ora 、sqlnet.ora 、tnsnames.ora ,都是放在$ORACLE_HOME\network\admin 目录下。? 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 = dg1)(PORT = 1521))? )? (CONNECT_DATA =? (SERVER = DEDICATED)? (SERVICE_NAME = sales)? )? ) ? 注意:如果数据库服务器用MTS ,客户端程序需要用database link 时最好明确指明客户端用dedicated 直连方式, 不然会遇到很多跟分布式环境有关的ORACLE BUG 。一般情况下数据库服务器用直接的连接会好一些,除非你的实时数据库连接数接近1000 。

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档