今天在使用PLSQL遠(yuǎn)程連接Oracle數(shù)據(jù)庫的時(shí)候,突然報(bào)錯(cuò),無監(jiān)聽程序,出現(xiàn)這個(gè)錯(cuò)誤 我首先第一反應(yīng)是打開 服務(wù) 看了一下 Oracle常用的幾個(gè)服務(wù)是否正常啟動(dòng),監(jiān)聽服務(wù)是否啟動(dòng),打開發(fā)現(xiàn)ORACLE的 所必須開的的服務(wù) 都已經(jīng)正常運(yùn)行, 然后我又嘗試連接了一下本地的Oracle數(shù)據(jù)庫,怪了 ,本地的數(shù)據(jù)庫可以正常連接,沒有任何問題,
既然這樣我想那應(yīng)該不是數(shù)據(jù)庫程序的錯(cuò)誤,本地?cái)?shù)據(jù)庫也沒問題, 那有可能是網(wǎng)絡(luò)問題,我又ping了一下 我要連接的數(shù)據(jù)庫的主機(jī)的ip OK!可以ping通 而且沒有任何問題,
我在網(wǎng)上找了半天關(guān)于與此有關(guān)的問題 有的改這,有的改那,但是問題依然解決不了,估計(jì)環(huán)境也不太一樣,后來我嘗試著去修改 oracle的連接配置文件 E:/PRoduct/11.2.0/dbhome_1/NETWORK/ADMIN/listener.ora 和
E:/product/11.2.0/dbhome_1/NETWORK/ADMIN/tnsnames.ora 這兩個(gè)文件,listener.ora這個(gè)文件是監(jiān)聽程序的配置文件,在這里可以配置主機(jī)的監(jiān)聽程序的信息,tnsnames.ora 這個(gè)文件是遠(yuǎn)程連接的配置信息通過修改這些配置文件,問題解決了,下面我具體說明一下我的解決流程。
首先打開這個(gè)兩個(gè)配置文件如果安裝客戶端程序的不要打開客戶端里面的listener.ora 文件,因?yàn)楸O(jiān)聽程序搜尋的配置文件是E:/product/11.2.0/dbhome_1/NETWORK/ADMIN/listener.ora這個(gè)路徑下的,SO打開這個(gè)配置文件,我的配置文件如下:
# listener.ora Network Configuration File: E:/product/11.2.0/dbhome_1/network/admin/listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = E:/product/11.2.0/dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:E:/product/11.2.0/dbhome_1/bin/oraclr11.dll") ) )LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) )ADR_BASE_LISTENER = E:
我們可以看到 上面文件中HOST = localhost 這句 一般默認(rèn)的都是localhost,但是如果你需要讓別人遠(yuǎn)程連接你的數(shù)據(jù)庫的時(shí)候,這個(gè)HOST的值就應(yīng)該是你的主機(jī)名稱,不然的話別人遠(yuǎn)程連接你的數(shù)據(jù)庫的時(shí)候會(huì)出現(xiàn) 無監(jiān)聽程序 的錯(cuò)誤修改如下:
# listener.ora Network Configuration File: E:/product/11.2.0/dbhome_1/network/admin/listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = E:/product/11.2.0/dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:E:/product/11.2.0/dbhome_1/bin/oraclr11.dll") ) )LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = SXL)(PORT = 1521)) ) )ADR_BASE_LISTENER = E:
將HOST = localhost 換成 HOST = SXL ,SXL是我的主機(jī)名稱,修改過后,注意還需要重啟服務(wù),先把Oracle的服務(wù)都關(guān)掉,然后重新啟動(dòng),關(guān)機(jī)從啟也可以就是太麻煩,
然后再按照以往的方式,打開客戶端里的 E:/product/instantclient_10_2/tnsnames.ora文件 ,如下:
`# tnsnames.ora Network Configuration File: E:/product/11.2.0/dbhome_1/network/admin/tnsnames.ora# Generated by Oracle configuration tools.LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) )ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ORCL244 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = SXL)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )然后重新啟動(dòng)PLSQL 遠(yuǎn)程連接oracle數(shù)據(jù)庫成功。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注