天天看點

我的“ORA-28547:connection to server failed,probable Oracle Net admin error”的解決步驟(navicat,toad,plsql developer工具通用)

連接配接oracle 11g突然蹦出了一個錯誤“ORA-28547:connection to server failed,probable Oracle Net admin error”,見下圖,我勒個去,真是郁悶死了,無奈在網上搜尋了好久找到了解決方法,寫下來了以便以後參考。

我的“ORA-28547:connection to server failed,probable Oracle Net admin error”的解決步驟(navicat,toad,plsql developer工具通用)

第一個方法解決方案:

listener.ora是伺服器端的配置oracle的檔案。

後來将listener.ora的這一行注釋掉,就行了,, (PROGRAM = extproc)

修改為:

SID_LIST_LISTENER =

  (SID_LIST =

  (SID_DESC =

  (SID_NAME = prod)

  (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)

# (PROGRAM = extproc)

  )

LISTENER =

  (DESCRIPTION_LIST =

  (DESCRIPTION =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.8)(PORT = 1522))

  (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

第二種解決方案如下:

整理如下:

用戶端的配置檔案sqlnet.ora中配置如下:

将#SQLNET.AUTHENTICATION_SERVICES= (NTS)注釋掉,改成如下即可!

如下:

SQLNET.AUTHENTICATION_SERVICES= (NONE)

同時修改監聽器配置檔案,具體做法是: 在oracle安裝目錄下搜尋listener.ora檔案,一般在$/NETWORK/ADMIN目錄下,把主機名用ip位址代替,例如(ADDRESS = (PROTOCOL = TCP)(HOST = HBONLINE1)(PORT = 1523))改為(ADDRESS = (PROTOCOL = TCP)(HOST = 168.168.168.42)(PORT = 1523))。

第三種解決方案:

如果你以上使用的是plsql developer工具或者是toad工具,應該以上的操作就絕對可以解決你的問題,

但是如果你使用的是navicat工具,以上怕是還不能解決你的問題。具體的如果在navicat工具上使用就是如下的問題:

Oracle基本是預設安裝,安裝過程沒出現過任何異常

Oracle開啟了兩個服務:OracleServiceORCL和OracleOraDb11g_home1TNSListener

Navicat一直都連接配接不上本地的Oracle

網上搜了一大堆資料,大都是改那3個配置檔案的

最終還是沒能解決這個問題

最終的問題是:

Navicat主機那裡如果填本機IP位址(192.168.18.8),錯誤代碼是:ORA-12541:TNS:no listener

如果填localhost,錯誤代碼是:ORA-28547:connection to server failed,probable Oracle Net admin error

tnsping localhost 是通的,tnsping 192.168.18.8 則出錯 TNS-12541: TNS: 無監聽程式

解決的方案是:

oci.dll的版本不對

  從 http://www.oracle.com/technology/software/tech/oci/instantclient/index.html 下載下傳client

  裡面很多,根據你的版本來下,我下載下傳的是instantclient_11_1。

  在navicat的 工具-選項-其他-OCI ,選擇剛下的client中的 oci.dll

  設定環境變量:

  1)在環境變量PATH中開頭增加C:\Instantclient10_2;

  2)增加使用者環境變量SQLPATH,值為C:\Instantclient10_2

  3)增加使用者環境變量NLS_LANG,值為AMERICAN_AMERICA.UTF8

  選擇 Basic 連接配接,就大概能連接配接上了

以上的操作可以通過如下進行排查:

進行查找:

1、首先确認你的資料庫已經啟動了,可以用net start OracleServiceORCL

2、其次确認你的偵聽啟動了否,用lsnrctl status檢視,如果沒有啟動,用lsnrctl start啟動。

3、以上啟動後,直接打開sqlplus,輸入使用者名密碼,無需輸入服務名,直接登入即可。

本文轉自hcy's workbench部落格園部落格,原文連結:http://www.cnblogs.com/alterhu/archive/2012/03/07/2384305.html,如需轉載請自行聯系原作者。