2011-08-01 56 views
45

enter image description hereORA-12560:TNS:協議適配器錯誤

我谷歌[d]這個錯誤ORA-12560:TNS:協議適配器錯誤,但沒能找到實際的原因,以及如何解決這個錯誤?

誰能告訴我一個完美的解決方案來解決登錄問題。

回答

61
  1. 轉到Windows機器託管Oracle數據庫服務器
  2. 開始 - >運行 - > SERVICES.MSC在Windows 。找到OracleService (這裏OracleServiceORCL的),然後點擊「開始」啓動Oracle數據庫服務(如果尚未運行)
  3. 一旦啓動並運行,在命令提示符下運行以下命令:

    用tnsping < tnsalias>

(tnsalias條目你可以找到它在tnsnames.ora文件)

Services

+10

在我的情況下,服務正在運行,但又是這個錯誤?我該怎麼辦? –

+0

因此,這假定您正在Windows上運行Oracle Server? –

+0

我在Windows 8.1上使用Oracle 11g。畢竟,我設置了'ORACLE_SID'。 'sqlplus'起作用,沒問題,然後關閉它。我重新開放,我嘗試了很多次,但沒有工作。即使在服務運行時,「sqlplus」也不起作用。 –

0

您需要告訴SQLPlus您要登錄到哪個數據庫。主機字符串需要是連接字符串或在您的TNSNames.ora文件中配置的別名。

3

很多時候這意味着聽者還沒有開始。檢查服務面板。

在Windows上(與您一樣)另一個常見原因是ORACLE_SID未在註冊表中定義。編輯註冊表或在CMD框中設置ORACLE_SID。 (因爲要sqlplusw.exe運行,我建議你編輯註冊表。)

19

似乎像數據庫不起來。這可能是由於重新啓動計算機,並且實例未設置爲自動啓動,並且從服務啓動屏幕開始後它不會自動啓動。

就轉到命令提示符

  1. 集的Oracle SID C:>設置ORACLE_SID = ORCL

  2. 現在運行網絡啓動命令。 C:>網絡啓動OracleServiceORCL的

+3

工作就像一個魅力..感謝Yasir – Hrushikesh

+0

這是唯一的解決方案爲我工作!謝謝! – akelec

+0

這仍然適用於2018年 –

7

添加到環境瓦爾以下varibale和值來標識tnsnames.ora文件的地點:

TNS_ADMIN

C:\ ORACLE \ product \ 10.2.0 \ client_1 \ network \ admin

+3

您可能還需要將ORACLE_HOME設置爲類似於C:\ oracle \ product \ 10.2.0 \ client_1 – jackohug

2

我已經解決了這個問題的簡單方法。我的oracle在過去運行得很好。我安裝MS SQL Server後,當我發現這個問題。我只是在我的機器上卸載了MS SQL Server,然後問題消失了。確保您在此之後重新啓動計算機。現在我可以再次通過SQLPlus連接到Oracle數據庫。我的猜測是兩者之間存在一些衝突。希望這可以幫助。

1

如果沒有上述工作,那就試試這個: 修改LISTENER.ora(礦中發現:oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora)==>添加指向你的數據庫(SID)的自定義監聽器,比如我的SID是XZ0301,那麼:

## Base XZ03001 

SID_LIST_LISTENER_XZ03001=(SID_LIST=(SID_DESC=(ORACLE_HOME = 
E:\oracle\product\11.2.0\dbhome_1)(SID_NAME= XZ03001))) 

LISTENER_XZ03001=(DESCRIPTION_LIST=(ADDRESS=(PROTOCOL = 
TCP)(HOST=MyComputerName)(PORT= 1521))) 

DIAG_ADR_ENABLED_LISTENER_XZ03001=ON 

ADR_BASE_LISTENER_XZ03001=E:\oracle 

重新啓動機器

對於Windows 7,使用以下方法來修改LISTENER.ORA: - 轉到開始>所有程序>附件 - 右鍵單擊​​記事本,然後單擊以管理員身份運行。 - 文件>打開並導航到tnsnames.ora文件。 - 進行更改,然後它應該允許您保存

0

它真的在我的機器上工作。但是,我發現OracleServiceXE而不是OracleServiceORCL。

2

搜索很多後有一個簡單的方法來解決它。 只需按照以下步驟操作即可。

  1. 檢查監聽者的狀態。
    1. 打開命令提示符,然後鍵入lsnrctl status
    2. 你會得到沒有監聽。
  2. 現在打開listener.ora文件,該文件存在於以下目錄:C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN

    1. 打開該文件,並與您更改主機參數的計算機名稱
    2. 你可以通過右鍵點擊你的計算機名在並檢查您的計算機名稱,並將主機參數替換爲您的計算機名稱,如下所示:

      LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = Electron-PC)(PORT = 1521) ) ) )

      所以在這裏你可以觀察HOST = Electron-PC,這是我的電腦名稱。

    3. 保存listener.ora文件,並再次返回到cammand propt

    3。鍵入命令提示符lsnrctl start

下面這將啓動OracleTNSListner

你可以通過打開任務管理器的服務標籤在服務中檢查它。如果沒有自動啓動,你可以啓動它。

只要這麼多,你就可以在oracle上重新工作了。

祝你好運。

3

從命令控制檯,如果你得到這個錯誤,你可以通過鍵入 SQLPLUS/NOLOG

就可以連接 康恩用戶避免它/通過@host:端口/服務

1

另一種可能的解決方案,剛剛爲我工作......考慮到我使用本地登錄作爲dba權限。

按照步驟進入服務。右鍵單擊實例並轉到「登錄」? (可能不是名稱,但它是包含權限的選項卡之一)。將設置更改爲使用LOCAL。

0

在我的情況下,(ORA-12560:TNS協議適配器錯誤)數據庫連接問題的原因,如數據庫,用戶名和密碼。

一旦你得到了問題。最初你必須檢查連接的詳細信息,在檢查oracle服務和更多。

我錯過了一些連接的詳細信息,所以只有我得到TNS協議適配器錯誤我會改變連接的詳細信息,這將是工作的罰款

1

在我的情況下(OracleExpress)服務正在運行,但我試圖通過sqlplus中訪問數據庫,而無需連接標識符時,這個問題:

sqlplus sys/mypassword as sysdba 

爲了使它工作,我需要添加連接標識符(XE爲Oracle快捷),所以下面的命令行工作:

sqlplus sys/[email protected] as sysdba 

如果仍然出現ORA-12560,請確保您可以ping XE服務。用途:

tnsping XE 

你應該有完整的連接字符串相處OK消息(用tnsping命令位於Oracle的安裝目錄:[Oracle快捷的安裝目錄] \程序\ ORACLE \產品\ 11.2.0 \服務器\ BIN )。如果您無法ping通,請確保您的tnsnames.ora文件可用於sqlplus。您可能需要TNS_ADMIN環境變量指向設置你的管理員目錄,其中的文件所在,例如:

TNS_ADMIN=[oracle express installation dir]\app\oracle\product\11.2.0\server\network\ADMIN 
0

流流動的步驟:

  1. 編輯您的listener.ora和TNSNAMES。ora文件 $ Oracle_home \ product \ 11.2.0 \ client_1 \ NETWORK \ ADMIN位置

    a。添加listener.ora文件

    LISTENER = 
        (DESCRIPTION_LIST = 
        (DESCRIPTION = 
         (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
         (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) 
    ) 
    

ADR_BASE_LISTENER = C:[此處c是ORALCE主目錄]

灣添加在tnsnames.ora文件

SCHEMADEV = 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
        (ADDRESS = (PROTOCOL = TCP)(HOST = dabase_ip)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
     (SERVICE_NAME = SCHEMADEV) 
    ) 
) 
  • 打開命令提示並鍵入
    SQLPLUS的用戶名/ passowrd @ oracle_connection_alias
  • 實施例:
    用戶名:your_database_username
    密碼:Your_database_password
    oracle_connection_alias:以上示例的SCHEMADEV。

    0

    ORA-12560:TNS:埃羅德adaptador德protocolo

    1. 設置環境變量:ORACLE_BASE,ORACLE_HOME,ORACLE_SID
    2. 確保你的用戶是ORACLE_GROUP_NAME的一部分(Windows)中
    3. 確保ORACLE_HOME/network/admin/sqlnet.ora文件是: SQLNET.AUTHENTICATION_SERVICES =(NTS)
    4. (Windows)添加新的Oracle客戶端時要小心:向PATH環境添加新路徑。變量可以搞砸了。該變量中的第一個條目有所不同:證明ORACLE_HOME(ORACLE_HOME/bin)中的sqlplus可執行文件在PATH環境中首先出現。變量。