Oracle問題之ORA-12560TNS:協議適配器錯誤
一、造成ORA-12560: TNS: 協議適配器錯誤的問題的原因有三個:
1.監聽服務沒有起起來。windows平台個一如下操作:開始---程序---管理工具---服務,打開服務面板,
啟動OracleOraDb11g_home1TNSlistener服務。
2.database instance沒有起起來。windows平台如下操作:開始---程序---管理工具---服務,打開服務
面板,啟動OracleServiceBOOKSALES, BOOKSALES就是你的database SID
3.注冊表問題。regedit,然后進入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME
將該環境變量ORACLE_SID設置為XXXX, XXXX就是你的database SID.
或者右擊我的電腦,屬性--高級--環境變量---系統變量--新建,變量名=oracle_sid,變量值=XXXX, XXXX就是你的database SID.
或者進入sqlplus前,在command line下輸 set oracle_sid=XXXX, XXXX就是你的database SID.
經過以上步驟,一般就可以解決問題。
二、如果還沒有解決的話則會遇到以下問題:
1、執行請求的操作時遇到錯誤:
IO 錯誤: The Network Adapter could not establish the connection
供應商代碼 17002
2、執行請求的操作時遇到錯誤:
Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
供應商代碼 12514
三、解決方法如下:
假如只有一個數據庫的話:
1、找到如下路徑:
D:\install\oracle\oracle-install\product\11.2.0\dbhome_1\NETWORK\ADMIN
2、將文件中的內容修改如下,當然要結合自己的實際情況做簡單修改:
//listener.ora

1 # listener.ora Network Configuration File: D:\install\oracle\oracle-install\product\11.2.0\dbhome_1\network\admin\listener.ora 2 # Generated by Oracle configuration tools. 3 4 SID_LIST_LISTENER = 5 (SID_LIST = 6 (SID_DESC = 7 (SID_NAME = CLRExtProc) 8 (ORACLE_HOME = D:\install\oracle\oracle-install\product\11.2.0\dbhome_1) 9 (PROGRAM = extproc) 10 (ENVS = "EXTPROC_DLLS=ONLY:D:\install\oracle\oracle-install\product\11.2.0\dbhome_1\bin\oraclr11.dll") 11 ) 12 (SID_DESC = 13 (SID_NAME = BOOKSALES) 14 (ORACLE_HOME = D:\install\oracle\oracle-install\product\11.2.0\dbhome_1) 15 (GLOBAL_DBNAME = BOOKSALES) 16 ) 17 ) 18 19 LISTENER = 20 (DESCRIPTION_LIST = 21 (DESCRIPTION = 22 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 23 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) 24 (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 25 (ADDRESS = (PROTOCOL = TCP)(HOST = acer)(PORT = 1521)) 26 ) 27 ) 28 29 ADR_BASE_LISTENER = D:\install\oracle\oracle-install
//sqlnet.ora

1 # sqlnet.ora Network Configuration File: D:\install\oracle\oracle-install\product\11.2.0\dbhome_1\network\admin\sqlnet.ora 2 # Generated by Oracle configuration tools. 3 4 # This file is actually generated by netca. But if customers choose to 5 # install "Software Only", this file wont exist and without the native 6 # authentication, they will not be able to connect to the database on NT. 7 8 SQLNET.AUTHENTICATION_SERVICES= (NTS) 9 10 NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
//tnsnames.ora

1 # tnsnames.ora Network Configuration File: D:\install\oracle\oracle-install\product\11.2.0\dbhome_1\network\admin\tnsnames.ora 2 # Generated by Oracle configuration tools. 3 4 BOOKSALES = 5 (DESCRIPTION = 6 (ADDRESS_LIST = 7 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) 8 ) 9 (CONNECT_DATA = 10 (SERVICE_NAME = BOOKSALES) 11 ) 12 )
3、重新啟動 tnslistener
4、測試的時候要注意修改對應數據庫的用戶名和密碼
Oracle SQL Developer連接的時候也要注意用對應的用戶名和密碼
執行請求的操作時遇到錯誤:
IO 錯誤: The Network Adapter could not establish the connection
供應商代碼 17002
執行請求的操作時遇到錯誤:
Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
供應商代碼 12514
也是按照上面修改配置文件