联系:手机/微信(+86 17813235971) QQ(107644445)
标题:Easy Connect Naming Method与EZCONNECT关系
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
Easy Connect Naming Method这个东西是Oracle 10g推出的东东,我想不用我解释它的好,dba和开发人员都喜欢它,以前一直都用它,从没有关注到它和sqlnet.ora中的NAMES.DIRECTORY_PATH的关系,昨天一朋友和我说到了EZCONNECT,今天查询了一些资料和做了一些实验,使得自己对NAMES.DIRECTORY_PATH和EZCONNECT有了新的认识,也怪自己一致忽略了这个知识点。
1.NAMES.DIRECTORY_PATH= (TNSNAMES)
[oracle@node1 samples]$ more $ORACLE_HOME/network/admin/sqlnet.ora #NAMES.DIRECTORY_PATH= (EZCONNECT) NAMES.DIRECTORY_PATH= (TNSNAMES) [oracle@node1 samples]$ sqlplus hr/xifenfei@127.0.0.1/ecp SQL*Plus: Release 10.2.0.5.0 - Production on Wed Feb 8 23:12:12 2012 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. ERROR: ORA-12154: TNS:could not resolve the connect identifier specified Enter user-name: ERROR: ORA-01017: invalid username/password; logon denied Enter user-name: ERROR: ORA-01017: invalid username/password; logon denied SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
证明sqlnet.ora中的NAMES.DIRECTORY_PATH设置为TNSNAMES时,Easy Connect Naming Method不能工作。
2.NAMES.DIRECTORY_PATH= (EZCONNECT)
[oracle@node1 samples]$ more $ORACLE_HOME/network/admin/sqlnet.ora NAMES.DIRECTORY_PATH= (EZCONNECT) #NAMES.DIRECTORY_PATH= (TNSNAMES) [oracle@node1 samples]$ sqlplus hr/xifenfei@127.0.0.1/ecp SQL*Plus: Release 10.2.0.5.0 - Production on Wed Feb 8 23:13:21 2012 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>
登录成功,其实这里生效是因为设置了NAMES.DIRECTORY_PATH为EZCONNECT的功效,从EZCONNECT的上面也可以看出是
3.NAMES.DIRECTORY_PATH为默认值
[oracle@node1 samples]$ more $ORACLE_HOME/network/admin/sqlnet.ora #NAMES.DIRECTORY_PATH= (EZCONNECT) #NAMES.DIRECTORY_PATH= (TNSNAMES) [oracle@node1 samples]$ sqlplus hr/xifenfei@127.0.0.1/ecp SQL*Plus: Release 10.2.0.5.0 - Production on Wed Feb 8 23:13:49 2012 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>
当NAMES.DIRECTORY_PATH为默认值时,使用Easy Connect Naming Method也可以登录成功(正是因为这个原因,导致我忽略了EZCONNECT的存在).
4.sqlnet.ora中关于NAMES.DIRECTORY_PATH说明
#names.directory_path # #Syntax: <adapter-name> #Default: TNSNAMES,ONAMES,HOSTNAME # # Sets the (ordered) list of naming adaptors to use in resolving a name. # The default is as shown for 3.0.2 of sqlnet onwards. The default was # (TNSNAMES, ONAMES) before that. The value can be presented without # parentheses if only a single entry is being specified. The parameter is # recognized from version 2.3.2 of sqlnet onward. Acceptable values include: # TNSNAMES -- tnsnames.ora lookup # ONAMES -- Oracle Names # HOSTNAME -- use the hostname (or an alias of the hostname) # NIS -- NIS (also known as "yp") # CDS -- OSF DCE's Cell Directory Service # NDS -- Novell's Netware Directory Service
5.关于NAMES.DIRECTORY_PATH参数的补充说明
tnsnames:local naming naming method Set to resolve a net service name through the tnsnames.ora file on the client. hostname:host naming method Set to resolve a host name alias through an existing names resolution service or a centrally-maintained set of /etc/hosts files. onames:Oracle Names method Set to resolve database objects through a Oracle Names server. ldap:directory naming naming method Set to resolve a database service name, net service name, or net service alias through a directory server. cds:Cell Directory Services (CDS) external naming method Set to resolve an Oracle database name in a Distributed Computing Environment (DCE) environment. nis:Network Information Service (NIS) external naming method Set to resolve service information through an existing NIS. Ezconnect:The easy connect naming method eliminates the need for service name lookup in the tnsnames.ora files for TCP/IP environments; in fact, no naming or directory system is required if you use this method.
当NAMES.DIRECTORY_PATH为默认值时Easy Connect Naming Method可以工作其本质是当NAMES.DIRECTORY_PATH=(HOSTNAME)时Easy Connect Naming Method可以访问