談到ora-12154問題,網(wǎng)上有一大堆解決方法,原因基本統(tǒng)一:tns或listener配置不正確。對于listener配置不正確的一般較少發(fā)生,大多數(shù)人都是按照默認(rèn)配置一路“下一步”過來的,基本都是orcl的服務(wù)名,如果說本地可以連通orcl,別的機(jī)子就連不通那應(yīng)該跟listener關(guān)系不大。大部分都是tns配置不正確。我遇到的現(xiàn)象是:在本機(jī)建了一個2003的虛擬機(jī),虛擬機(jī)里面裝了oracle10g,默認(rèn)配置。本機(jī)只裝了oracle10g的客戶端,當(dāng)我以前用本機(jī)連接局域網(wǎng)內(nèi)數(shù)據(jù)庫的orcl服務(wù)(數(shù)據(jù)庫與局域網(wǎng)內(nèi)數(shù)據(jù)庫一樣)時沒有問題,但是在連接虛擬機(jī)中的orcl服務(wù)卻連不通,總是報ora-12154錯誤。而虛擬機(jī)內(nèi),plsql卻可以連接虛擬機(jī)oracle,但是不能連接本機(jī)所在局域網(wǎng)內(nèi)的oracle。
按照如下過程,一般都能解決:
虛擬機(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) ##這個服務(wù)保證你可以使用外部過程,如C程序 ) )
本機(jī)tns:
ORCL_XNJ = (DEscriptION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 182.12.15.232)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) 與自定義服務(wù)名對應(yīng) ) )
再次連接,問題解決!
記住,一定從最簡單的原因找起,不要一上去就看到網(wǎng)上的什么改process數(shù)、注冊表之類的,要想想本機(jī)能連為什么通過網(wǎng)絡(luò)就不行,還是定位問題。
新聞熱點(diǎn)
疑難解答
圖片精選