程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle數據庫TNS常見錯誤的解決辦法

Oracle數據庫TNS常見錯誤的解決辦法

編輯:Oracle教程

   1、ORA-12541:TNS:沒有監聽器

  原因:沒有啟動監聽器或者監聽器損壞。若是前者,使用命令net start OracleOraHome10gTNSListener(名字可能有出入)即可;如果是後者,則使用“Net Configuration Assistant”工具向導之“監聽程序配置”增加一個監聽器即可(基本不用寫任何信息,一路OK。在添加之前可能需要把所有的監聽器先刪!)

  2、ORA-12500:TNS:監聽程序無法啟動專用服務器進程或ORA-12560:TNS:協議適配器錯誤

  原因:ORACLE的數據庫服務沒有啟動。使用命令net start ORACLESERVICEORADB(ORADB為數據庫名字)即可。如果仍沒有解決,請繼續向下看。

  3、如果數據庫服務啟動失敗,則很有可能是其注冊表項值損壞,最好的做法是以下兩步:

  1)ORADIM -DELETE -SID oradb 刪除數據庫服務項

  2)ORADIM -NEW -SID oradb 新增數據庫服務項

  注:這個過程中如果出錯,就重啟計算機!

  4、ORA-12154:TNS:能解析服務名

  原因:ORACLE的網絡服務名沒有正確配置。請使用“Net8 Configuration Assistant”工具向導之“本地網絡服務名配置”配置TNS即可。如果仍沒有解決,請繼續向下看。

  5、ORA-1034 :TNS:ORACLE不可用

  原因:ORACLE的數據庫服務正確啟動,但是數據庫沒有打開!

  使用命令:

  1)svrmgrl 啟動服務管理器

  2)connect internal 以internal身份登陸

  3)startup 打開數據庫

  6、ORA-12560:TNS:協議適配器錯誤(頑固性的)

  原因:未知。

  解決:必殺技--打開“Windows任務管理器”,殺死ORACLE.exe及ORADIM.exe進程,書寫自己的ora_startup.bat,執行之!

  PS:

  1、ora_startup.bat:

  net start OracleOraHome81TNSListener

  net start ORACLESERVICEORADB

  svrmgrl 一般情況下不用,不過有時少不了它的,具體步驟見第5步。

  2、ora_shutdown.bat:

  net stop OracleOraHome81TNSListener

  net stop ORACLESERVICEORADB

  3、ORACLE相關服務名請參見“管理工具”之“服務”中以ORACLE開頭的服務名

  1、TNS-12154 Error 或ORA-12154

  特征:SQL*NET沒有找到連接串或別名

  原因1:(1)沒有找到TNSNAMES.ORA文件,該文件的缺省路徑為:

  Windows 95/98 client

  SQL*Net 2.x - ORAWIN95NETWORKADMIN

  Net8 - ORAWIN95NET80admin

  Net8i - ORACLEORA81NETWORKADMIN

  Windows NT client

  SQL*Net 2.x - ORANTNETWORKADMIN

  Net8 - ORANTNET80ADMIN

  Net8i - ORACLEORA81NETWORKADMIN

  UNIX Client

  $ORACLE_HOME/NETWORK/ADMIN

  or /etc

  or /var/opt/oracle

  . 在客戶端設置TNS_ADMIN

  在注冊表 HKEY_LOCAL_MACHINESoftwareOracle 設置TNS_ADMIN. TNS_ADMIN 指向TNSNAMES.ORA文件的位置

  措施:按上述說明檢查文件位置

  原因2:(2)TNSNAMES.ORA文件中內容格式不對

  措施:檢查文件格式,標准格式如下:

  DEV1.WORLD =

  (DESCRIPTION = (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP) (Host = 145.45.78.56) (Port = 1521) ) )

  (CONNECT_DATA = (SID = ORCL) ) )

  原因3: (3) TNSNAMES.ORA與SQLNET.ORA不一致

  措施: SQLNET.ORA格式如下:

  TRACE_LEVEL_CLIENT = OFF

  SQLNET.AUTHENTICATION_SERVICES = (NONE)

  NAMES.DIRECTORY_PATH = (TNSNAMES)

  AUTOMATIC_IPC = OFF

  因為沒有NAMES.DEFAULT_DOMAIN=world,所以DEV1.WORLD連接串不能連接,可以在TNSNAMES.ORA中增加

  DEV1 =

  (DESCRIPTION = (ADDRESS_LIST =

  (ADDRESS = (PROTOCOL = TCP) (Host = 145.45.78.56) (Port = 1521) ) )

  (CONNECT_DATA = (SID = ORCL) ) )

  此時可連接。

  2、NL-00462 Error 或ORA-00462

  特征:監聽器無法啟動

  原因:LISTENER.ORA文件內容錯誤,例如,括號不匹配、參數名錯誤等、多余的空格等。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved