關於two_task,local,oracle_sid三個環境變數說明

BTxigua發表於2007-08-18

這三個引數都時作業系統中的環境變數。
在UNIX中,三個引數都存在,優先順序如下:
1. TWO_TASK
2. LOCAL
3. ORACLE_SID
TWO_TASK是unix一個隱含的變數,該變數的值始終是指向連線到當前例項的連線字串值。sqlplus在不指定連線字串,而預設使用的連線字串名。LOCAL在unix平臺下基本上沒什麼用,可以忽略。
在預設的情況下,TWO_TASK是不需要設定的,是一個隱含的變數。我們可以進行測試,測試資料庫ORACLE_SID=test,連線字串=testxx
在不作任何設定的時候,我們
sqlplus xigua/xigua 能連線到資料庫。
export TWO_TASK=test
sqlplus xigua/xigua 提示無法解析服務名。
export TWO_TASK=testxx
sqlplus xigua/xigua 又能連線到資料庫。

[@more@]當然,在上面的任何一種情況下,如果後面帶上了連線字串,那肯定是可以連線上的。
上面的所有測試都是單例項的情況下,多例項的情況有些不同,必須要設定ORACLE_SID引數。


在windows系統中,則不存在TWO_TASK環境變數,起作用的就是LOCAL變數了。LOCAL變數的作用同TWO_TASK變數。

另外,我們還可以發現,在不顯式的指定TWO_TASK的值情況下,我們關閉監聽,也可以利用作業系統驗證登陸sqlplus '/as sysdba'。 如果顯式的指定TWO_TASK的值,將被強制使用本地服務驗證,必須使用監聽服務。
[oracle@VM:oracle] lsnrctl stop
[oracle@VM:oracle] sqlplus ' /as sysdba '

SQL*Plus: Release 9.2.0.4.0 - Production on Sat Jul 7 13:19:50 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production

SQL> quit

[oracle@VM:oracle] export TWO_TASK=test #將TWO_TASK設定成非連線字串值
[oracle@VM:oracle] sqlplus ' /as sysdba '

SQL*Plus: Release 9.2.0.4.0 - Production on Sat Jul 7 13:20:07 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve service name


Enter user-name:

[oracle@VM:oracle] export TWO_TASK=testxx -將TWO_TASK設定成連線字串值
[oracle@VM:oracle] sqlplus ' /as sysdba '

SQL*Plus: Release 9.2.0.4.0 - Production on Sat Jul 7 13:20:15 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

ERROR:
ORA-12541: TNS:no listener


Enter user-name:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10867315/viewspace-963995/,如需轉載,請註明出處,否則將追究法律責任。

相關文章