程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 連接Oracle虛擬機出現ora-12154問題的解決方案

連接Oracle虛擬機出現ora-12154問題的解決方案

編輯:Oracle數據庫基礎

連接Oracle虛擬機出現ora-12154問題的解決方案的相關知識是本文我們主要要介紹的內容。談到ora-12154問題,網上有一大堆解決方法,原因基本統一:tns或listener配置不正確。對於listener配置不正確的一般較少發生,大多數人都是按照默認配置一路“下一步”過來的,基本都是orcl的服務名,如果說本地可以連通orcl,別的機子就連不通那應該跟listener關系不大。

大部分都是tns配置不正確。我遇到的現象是:在本機建了一個2003的虛擬機,虛擬機裡面裝了oracle10g,默認配置。本機只裝了Oracle10g的客戶端,當我以前用本機連接局域網內數據庫的orcl服務(數據庫與局域網內數據庫一樣)時沒有問題,但是在連接虛擬機中的orcl服務卻連不通,總是報ora-12154錯誤。而虛擬機內,plsql卻可以連接虛擬機oracle,但是不能連接本機所在局域網內的Oracle。

按照如下過程,一般都能解決:

  1. 在虛擬機內開cmd,用lsnrctl status查看監聽器監聽的服務
  2. 如看到監聽服務“orcl”,那在本機的tns配置中(SERVICE_NAME = orcl)必須寫orcl;如果想要自定義,則在虛擬機內的listener配置中就要加入自定義服務名,記得要重啟監聽服務:lsnrctl reload
  3. 最後形成的配置文件如下:

虛擬機listener:

  1. SID_LIST_LISTENER =   
  2.   (SID_LIST =   
  3.     (SID_DESC =   
  4.       (GLOBAL_DBNAME = test)      自定義服務名   
  5.       (Oracle_HOME = E:\Oracle\product\10.2.0\db_1) db_home   
  6.       (SID_NAME = test)         
  7.  
  8.     )   
  9.     (SID_DESC =   
  10.       (PROGRAM = extproc)   
  11.       (SID_NAME = PLSExtProc)   
  12.       (Oracle_HOME = E:\Oracle\product\10.2.0\db_1)  ##這個服務保證你可以使用外部過程,如C程序   
  13.     )   
  14.   ) 

本機tns:

  1. ORCL_XNJ =   
  2.   (DESCRIPTION =   
  3.     (ADDRESS_LIST =   
  4.       (ADDRESS = (PROTOCOL = TCP)(HOST = 182.12.15.232)(PORT = 1521))   
  5.     )   
  6.     (CONNECT_DATA =   
  7.       (SERVICE_NAME = test)  與自定義服務名對應   
  8.     )   
  9.   ) 

再次連接,問題解決!

總結:記住,一定從最簡單的原因找起,不要一上去就看到網上的什麼改process數、注冊表之類的,要想想本機能連為什麼通過網絡就不行,還是定位問題。

關於連接Oracle虛擬機出現ora-12154問題的解決方案的相關知識就介紹到這裡了,希望本次的介紹能夠對您有所收獲!

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