協議適配器錯誤

來源:互聯網
上載者:User

問:作業系統windows,oracle9i在服務端,以sys登陸不加服務名,登陸報錯;如果加上服務名登陸正確。重啟作業系統,重啟db,現在在服務端無論用什麼使用者登陸只要不加服務名都錯誤;串連時加上服務名就正確。到底為什麼呀?

C:>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 1月 31 08:46:08 2007

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

SQL> connect sys/oracle@vassp as sysdba已串連。
SQL> exit從Oracle9i Release 9.2.0.1.0 - Production
JServer Release 9.2.0.1.0 - Production中斷開

C:>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 1月 31 08:46:24 2007

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

SQL> connect /as sysdba
ERROR:
ORA-12560: TNS: 協議適配器錯誤
---------------------------------------------------------------
由於這個問題也正困繞著我,一直在關注這個貼子的動態.今天看到PondKa的回複後,才豁然開朗
我的平台:windows2003+oracle9.2.0.1.0
SQL> select * from v$version;
BANNER
---------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production
我的系統開始運行正常,系統只有一個資料庫test1,為了自己做測試,又建了第兩個資料庫test2,這樣當啟動test1的服務後,當登入總是報如下錯誤:
ERROR:
ORA-12560: TNS: 協議適配器錯誤
自己嘗試了幾次沒有搞定,發現登入時加上服務名可以正常登入,也就隨它去了,但這個問題也依然在自己腦中.
BTW:自己為什麼沒有拿到論壇上來問問大家,BS一下自己
經過測試發現,
1.確認sqlnet.ora檔案中設定為作業系統驗證
  SQLNET.AUTHENTICATION_SERVICES= (NTS)
2.查看windows對應的服務是否開啟
開啟services查看,服務名oracleservice<SID>的運行狀態,該服務的啟動與關閉也可通過CML(命令列 COMMAND LINE)進行操作.
SQL> $net start oracleserviceTEST2The OracleServiceTEST2 service is starting.
The OracleServiceTEST2 service was started successfully.

SQL> $net stop oracleserviceTEST2The OracleServiceTEST2 service is stopping...
The OracleServiceTEST2 service was stopped successfully.
註:WINNT中,在sqlplus中運行dos命令時,命令前加"$"符號
3.查看本地環境變數ORACLE_SID,ORACLE_HOME是否正確設定
C:Documents and SettingsAdministrator> set
ALLUSERSPROFILE=C:Documents and SettingsAll Users
APPDATA=C:Documents and SettingsAdministratorApplication Data
ClusterLog=C:WINDOWSClustercluster.log
CommonProgramFiles=C:Program FilesCommon Files
COMPUTERNAME=LDY
ComSpec=C:WINDOWSsystem32cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=Documents and SettingsAdministrator
JSERV=F:oracleora92/Apache/Jserv/conf
LOGONSERVER=LDY
NUMBER_OF_PROCESSORS=1
oracle_home=F:oracleora92
oracle_sid=TEST1OS=Windows_NT....
4.如果沒有設定環境變數,請查看註冊表中,HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中的ORACLE_SID,ORACLE_HOME項是否正確設定,如果oracle只有一個資料庫,只需註冊表中正確設定即可,無需設定環境變數.當然,如果像有多個資料庫,需動態設定該環境變數
C:Documents and SettingsAdministrator>set oracle_home=
C:Documents and SettingsAdministrator>set oracle_sid=
C:Documents and SettingsAdministrator>set
ALLUSERSPROFILE=C:Documents and SettingsAll Users
APPDATA=C:Documents and SettingsAdministratorApplication Data
ClusterLog=C:WINDOWSClustercluster.log
CommonProgramFiles=C:Program FilesCommon Files
COMPUTERNAME=LDY
ComSpec=C:WINDOWSsystem32cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=Documents and SettingsAdministrator
JSERV=F:oracleora92/Apache/Jserv/conf
LOGONSERVER=LDY
NUMBER_OF_PROCESSORS=1
OS=Windows_NT...無此變數
C:Documents and SettingsAdministrator>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 2月 1 19:56:47 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn / as sysdba已串連。
5.如果有多個資料庫,若想預設串連某個資料庫,可不管當前註冊表的設定,手動設定環境變數ORACLE_SID即可請看實驗:
當前註冊表ORACLE_SID=TEST1,
C:Documents and SettingsAdministrator>set oracle_sid=
C:Documents and SettingsAdministrator>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 2月 1 20:39:41 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> $net stop oracleserviceTEST2
The OracleServiceTEST2 service is stopping...
The OracleServiceTEST2 service was stopped successfully.
SQL> $net stop oracleserviceTEST1
The OracleServiceTEST1 service is stopping........
The OracleServiceTEST1 service could not be stopped.
SQL> $net start oracleserviceTEST1
The OracleServiceTEST1 service is starting.
The OracleServiceTEST1 service was started successfully.
SQL> conn / as sysdba
已串連到空閑常式。
--註:當有註冊設定時,即使沒有設定環境變數,此時系統可按註冊表設定進行TEST1的登入
SQL> $net stop oracleserviceTEST1
The OracleServiceTEST1 service is stopping...
The OracleServiceTEST1 service was stopped successfully.
SQL> conn / as sysdba
ERROR:
ORA-12560: TNS: 協議適配器錯誤
警告: 您不再串連到 ORACLE。
--註:當相關WINNT服務ORACLESERVICETEST1沒有開啟,使用者將無法正常串連TEST1
SQL> $net start oracleserviceTEST1
The OracleServiceTEST1 service is starting.
The OracleServiceTEST1 service was started successfully.
SQL> conn / as sysdba
已串連到空閑常式。
SQL> exit
已中斷連線
C:Documents and SettingsAdministrator>set oracle_sid=TEST2
C:Documents and SettingsAdministrator>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 2月 1 20:45:29 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn / as sysdba
ERROR:
ORA-12560: TNS: 協議適配器錯誤
--註:環境變數的設定影響使用者登入資料庫的選擇,此時設定為TEST2,而NT服務ORACLESERVICEQTEST2沒有開啟,所以顯示登入錯誤
SQL> $NET START ORACLESERVICEQTEST2
The OracleServiceTEST2 service is starting.
The OracleServiceTEST2 service was started successfully.
SQL> CONN / AS SYSDBA
已串連到空閑常式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.