【Oracle】-【TWO_TASK】-TWO_TASK环境变量的作用(二)

2014-11-24 13:06:37 · 作者: · 浏览: 2
------------------------------------- BISAL SQL>

但之前可以通过操作 系统验证登陆的本地库sys账户:
[oracle@liu Desktop]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Aug 11 14:40:37 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name: 

禁止访问了。
只能通过如下方式访问之前的本地库sys账户:
[oracle@liu Desktop]$ sqlplus bisal/bisal@bisal
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Aug 11 14:43:52 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Error accessing PRODUCT_USER_PROFILE
Warning:  Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> conn sys/oracle as sysdba
Connected.
SQL> show user
USER is "SYS"
SQL> 

总结:
1、未设置TWO_TASK环境变量时,不指定服务名连接的默认是ORACLE_SID的值。
2、当设置TWO_TASK环境变量时,不指定服务名连接的默认是TWO_TASK的值。
3、当使用@服务名方式连接时,会忽略ORACLE_SID或TWO_TASK的值。
4、当使用TWO_TASK环境变量时,操作系统验证登录数据库的方式被禁止,提示ORA-01031: insufficient privileges。
5、因为TWO_TASK设置后,屏蔽了ORACLE_SID的作用,因此即使对于本地库,也需要通过SQLNet的方式连接,也就是需要监听,一般对于从本机访问本地库可能不打开监听,但此时需要打开监听,才能通过@服务名的方式连接到本地库。
6、补充:tnsnames.ora文件默认采用的路径如下:
$HOME(~)/.tnsnames.ora
$TNS_ADMIN/tnsnames.ora
/var/opt/oracle/tnsnames.ora or /etc/tnsnames.ora (depending on platform)
$ORACLE_HOME/network/admin/tnsnames.ora

7、关于TWO和TASK的来源,这个词来源于20世纪80年代,TWO TASK表示两个一起工作的含义,仅仅是意会,并不局限于两个。
8、个人理解,设置TWO_TASK,能够覆盖ORACLE_SID的作用,改变不带@服务名默认连接的数据库(本地or远程),要求所有的sqlplus连接都是通过SQLNet的方式,禁止操作系统验证。仅此而已。