連接Oracle虛擬機(jī)出現(xiàn)ora-12154問(wèn)題的解決方案
連接Oracle虛擬機(jī)出現(xiàn)ora-12154問(wèn)題的解決方案的相關(guān)知識(shí)是本文我們主要要介紹的內(nèi)容。談到ora-12154問(wèn)題,網(wǎng)上有一大堆解決方法,原因基本統(tǒng)一:tns或listener配置不正確。對(duì)于listener配置不正確的一般較少發(fā)生,大多數(shù)人都是按照默認(rèn)配置一路“下一步”過(guò)來(lái)的,基本都是orcl的服務(wù)名,如果說(shuō)本地可以連通orcl,別的機(jī)子就連不通那應(yīng)該跟listener關(guān)系不大。
大部分都是tns配置不正確。我遇到的現(xiàn)象是:在本機(jī)建了一個(gè)2003的虛擬機(jī),虛擬機(jī)里面裝了oracle10g,默認(rèn)配置。本機(jī)只裝了oracle10g的客戶端,當(dāng)我以前用本機(jī)連接局域網(wǎng)內(nèi)數(shù)據(jù)庫(kù)的orcl服務(wù)(數(shù)據(jù)庫(kù)與局域網(wǎng)內(nèi)數(shù)據(jù)庫(kù)一樣)時(shí)沒(méi)有問(wèn)題,但是在連接虛擬機(jī)中的orcl服務(wù)卻連不通,總是報(bào)ora-12154錯(cuò)誤。而虛擬機(jī)內(nèi),plsql卻可以連接虛擬機(jī)oracle,但是不能連接本機(jī)所在局域網(wǎng)內(nèi)的oracle。
按照如下過(guò)程,一般都能解決:
- 在虛擬機(jī)內(nèi)開(kāi)cmd,用lsnrctl status查看監(jiān)聽(tīng)器監(jiān)聽(tīng)的服務(wù)
- 如看到監(jiān)聽(tīng)服務(wù)“orcl”,那在本機(jī)的tns配置中(SERVICE_NAME = orcl)必須寫(xiě)orcl;如果想要自定義,則在虛擬機(jī)內(nèi)的listener配置中就要加入自定義服務(wù)名,記得要重啟監(jiān)聽(tīng)服務(wù):lsnrctl reload
- 最后形成的配置文件如下:
虛擬機(jī)listener:
- SID_LIST_LISTENER =
- (SID_LIST =
- (SID_DESC =
- (GLOBAL_DBNAME = test) 自定義服務(wù)名
- (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) ##這個(gè)服務(wù)保證你可以使用外部過(guò)程,如C程序
- )
- )
本機(jī)tns:
- ORCL_XNJ =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 182.12.15.232)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = test) 與自定義服務(wù)名對(duì)應(yīng)
- )
- )
再次連接,問(wèn)題解決!
總結(jié):記住,一定從最簡(jiǎn)單的原因找起,不要一上去就看到網(wǎng)上的什么改process數(shù)、注冊(cè)表之類(lèi)的,要想想本機(jī)能連為什么通過(guò)網(wǎng)絡(luò)就不行,還是定位問(wèn)題。
關(guān)于連接Oracle虛擬機(jī)出現(xiàn)ora-12154問(wèn)題的解決方案的相關(guān)知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】






