2014-03-24 53 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