與虛擬機器Oracle串連出現ora-12154問題的解決

來源:互聯網
上載者:User

談到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:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = test)      自訂服務名
      (ORACLE_HOME = E:\oracle\product\10.2.0\db_1) db_home
      (SID_NAME = test)       

    )
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)  ##這個服務保證你可以使用外部過程,如C程式
    )
  )

本機tns:

ORCL_XNJ =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 182.12.15.232)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = test)  與自訂服務名對應
    )
  )

再次串連,問題解決!

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.