Navicat “ORA-28547:connection to server failed

我的“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”,見下圖,我勒個去,真是鬱悶死了,無奈在網上搜索了好久找到了解決方法,寫下來了以便以後參考。

QQ截圖20120307213721

第一個方法解決方案:

 

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))
  )
  )

 

第二種解決方案如下:

參考路徑:https://forums.oracle.com/forums/message.jspa?messageID=693607

整理如下:

客戶端的配置文件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,輸入用戶名密碼,無需輸入服務名,直接登錄即可。

***************************************************************************************

走下一步,留下走過的腳印。希望越走越遠,走的更穩,更好!

作者:Alter hu
      博客地址:http://www.cnblogs.com/alterhu/

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
***************************************************************************************


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章