oracle 11g中的ORA-12170 TNS侦听器
我已经在AmazonEC2中安装了一个Windows Server 2008R2,其中包含一个oracle Server 11g(11.2)和一个小型数据库(MYDB) 现在我想从我的计算机连接到这个数据库(我使用PL/SQLDeveloper,但我不介意使用其他工具) 在服务器端,我有:(其中ec2-xx-xxx-xxx-xx.us-west-2.compute.amazonaws.com是我的Win服务器的公共DNS。)oracle 11g中的ORA-12170 TNS侦听器,oracle,amazon-ec2,oracle11g,plsqldeveloper,ora-12170,Oracle,Amazon Ec2,Oracle11g,Plsqldeveloper,Ora 12170,我已经在AmazonEC2中安装了一个Windows Server 2008R2,其中包含一个oracle Server 11g(11.2)和一个小型数据库(MYDB) 现在我想从我的计算机连接到这个数据库(我使用PL/SQLDeveloper,但我不介意使用其他工具) 在服务器端,我有:(其中ec2-xx-xxx-xxx-xx.us-west-2.compute.amazonaws.com是我的Win服务器的公共DNS。) tnsnames.ora: MYDB = (DESCRIPTI
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)
)
)
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的pc上,我有:
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:发生连接超时
你知道我做错了什么,或者有什么故障排除计划吗?你只允许RDP和SSH访问端口3389和22(加上ICMP ping)。当您尝试连接到数据库时,您正在使用端口1521,正如tnsnames.ora
所指示的:
(HOST = ec2-xx-xxx-xxx-xx.us-west-2.compute.amazonaws.com)(PORT = 1521))
因此,除了3389和3322的现有流量外,还需要允许TCP端口1521上的流量通过EC2实例。我不知道SQL*Net是否会列在“类型”下拉列表中,因此您可能需要选择“所有TCP”
你可能还想让它更具限制性——如果这是私有的,则将“来源”限制为你电脑的IP地址,如果不是,则将“来源”限制为你公司的传出IP地址;如果您的ISP提供静态公共IP。您肯定需要端口1521的入站规则吗?或者您计划通过SSH进行隧道传输,在这种情况下,您的PC
tnsnames.ora
条目需要反映这一点?为什么问题的标题是指ORA-12514,而不是ORA-12170的主体?@Alex Poole。你能再解释一下吗?我只想通过PL/SQL开发人员进行连接。@AlexPoole:对不起,复制粘贴错误。我已经更改了标题OK,但是我应该添加哪种类型的规则?我不知道“类型”下拉列表中有什么。如果它有'SQL*Net'或'oraclenet'(用TCP/1521预先填充的东西)就好了。“任意TCP”选项看起来不受限制,这并不理想;您确实希望能够选择单个端口。事实上谢谢你是我的上帝。我已经花了三天多的时间。你真是太好了。只是为了记录在案,入站规则是-Type:Custom-TCP-rule,Protocol:TCP-Port-Range:1521