2014-03-24 51 views
0

我已經安裝在Windows Server 2008 R2與Oracle服務器11g(11.2)和Amazon EC2的一個小型的數據庫(MYDB)。ORA-12170 TNS監聽器在Oracle 11g中

現在我想從我的電腦連接到這個數據庫(我使用PL/SQL開發者,但我不介意使用其他工具)

在服務器端,我有:(其中EC2-XX-XXX- xxx-xx.us-west-2.compute.amazonaws.com是我贏服務器的公共DNS)
的tnsnames.ora:

​​

的listener.ora:

# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora 
# Generated by Oracle configuration tools. 

LISTENER = 
    (DESCRIPTION_LIST = 
     (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = ec2-xx-xxx-xxx-xx.us-west-2.compute.amazonaws.com)(PORT = 1521)) 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    ) 

    ADR_BASE_LISTENER = C:\app\Administrator 

在我的電腦在tnsnames.ora中我有:

MYDB= 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = ec2-xx-xxx-xxx-xx.us-west-2.compute.amazonaws.com)(PORT = 1521)) 
    (CONNECT_DATA = 
    (SERVICE_NAME = MYDB) 
    ) 
) 

通過這些設置,我能夠在我的本地服務器連接,而不是通過我的電腦。
我已經安裝了安全組在我的EC2:

入站規則

Type    Protocol    Port Range  Source 
RDP     TCP     3389   Anywhere 0.0.0.0/0 
SSH     TCP     22    Anywhere 0.0.0.0/0 
Custom ICMP Rule Echo Reply   N/A   Anywhere 0.0.0.0/0 

當我想從我的計算機連接我得到

ORA-12170:TNS:連接超時發生。

任何想法,我做錯了,或故障排除計劃?

+0

當然,你需要的端口1521的入站規則?或者你計劃通過SSH進行隧道傳輸,在這種情況下,你的PC'tnsnames.ora'條目需要反映這一點?爲什麼問題標題是指ORA-12514,而ORA-12170? –

+0

@Alex Poole。你能解釋一下嗎?我只想通過PL/SQL開發人員進行連接。 – Nianios

+0

@AlexPoole:抱歉,錯誤的複製粘貼。我改變了標題 – Nianios

回答

1

security groups只允許RDP和SSH訪問,在端口3389和22(加ICMP PING)。當你試圖連接到您正在使用的端口1521的數據庫,爲您tnsnames.ora使然:

(HOST = ec2-xx-xxx-xxx-xx.us-west-2.compute.amazonaws.com)(PORT = 1521)) 

所以你需要通過add an inbound firewall rule你的EC2實例,以允許TCP端口1521上的流量,除現有的對於3389和22,我不知道SQL * Net是否會列在'type'下拉列表中,因此您可能需要選擇'All TCP'。

您可能還想讓它更加嚴格,雖然 - 限制「源」到你的電腦的IP地址也許,如果這是私人的,或公司傳出IP若不;如果你有一個來自ISP的靜態公共IP地址。

+0

好的,但我應該添加哪種類型的規則? – Nianios

+0

我不知道「類型」下拉菜單中有什麼。如果它有'SQL * Net'或'Oracle Net' - 預先安裝了TCP/1521,那將會很不錯。 '任何TCP'選項看起來不受限制,這並不理想;真的你想能夠選擇一個單一的端口。其實...... [見本演練中的第4步](http://www.pythian.com/blog/how-to-get-started-with-amazon-ec2-oracle-11g-xe-example/) 。 –

+0

謝謝。你是我的上帝。 我已經花了3天以上。你很高尚。 – Nianios