問(wèn)題說(shuō)明
之前在虛擬機(jī)里的CentOs上安裝了Oracle 11g ,由于一直采用的是物理機(jī)win 10 系統(tǒng)中安裝sql developer直接連接Oracle的方式進(jìn)行操作委乌,所以虛擬機(jī)采用的是NAT方式的靜態(tài)IP。今天突然想用另一臺(tái)macbook中的sql developer 連接Oracle戈咳,于是就將虛擬機(jī)的聯(lián)網(wǎng)方式改為了Bridge(橋接)著蛙,并且重新配置了靜態(tài)IP,啟動(dòng)Oracle監(jiān)聽(tīng)后踏堡,sql develoer 連接時(shí)出現(xiàn)了Oracle Listener refused the connection with the following error:ORA-12505顷蟆,TNS:listener does not currently know of SID given in connect descriptor的錯(cuò)誤。
分析
參考網(wǎng)上的說(shuō)法帐偎,這個(gè)問(wèn)題是數(shù)據(jù)庫(kù)監(jiān)聽(tīng)的配置文件中sid不正確,進(jìn)入數(shù)據(jù)庫(kù)安裝目錄下豁生,找到tnsnames.ora文件漫贞,例如我的路徑是/home/Oracle_11g/product/11.2.0/dbhome_1/network/admin/tnsnames.ora。
[Oracle@dpc admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /home/Oracle_11g/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
CHENDONGPO =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dpc)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
發(fā)現(xiàn)SERVICE_NAME = orcl 沒(méi)有問(wèn)題摇肌,但是發(fā)現(xiàn)了(HOST = dpc)這里(dpc為我的主機(jī)名)围小,于是想起之前安裝Oracle時(shí)曾經(jīng)在hosts文件中增加了dpc到原來(lái)的ip的映射树碱。于是找到了解決方法。
解決
root 用戶(hù)下打開(kāi)/etc/hosts文件框舔,將原來(lái)的dpc指向的地址更改為新的ip赎婚,例如:
192.168.1.198 dpc
一般情況下hosts文件更改后是立即生效的,可以用 hostname -i ?命令來(lái)查看用戶(hù)名指向的ip地址是否改變纬凤,如果未生效撩嚼,可以重啟服務(wù)器使hosts生效。