我已经安装了一个WindowsServer2008R2,它有一个oracle 11g (11.2)和一个小型数据库(MYDB)。
现在我想从我的计算机连接到这个数据库(我使用PL/,但我不介意使用其他工具)
在服务器端,我有:(其中ec2-xx-xxx-xxx-xx.us-west-2.compute.amazonaws.com是Win服务器的公共DNS。)
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的个人电脑上有:
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:发生了连接超时。
有什么想法,我做错了什么,或一个故障排除计划?
发布于 2014-03-24 14:13:55
您的安全团体只允许端口3389和22上的RDP和SSH访问(加上ICMP ping)。当您试图连接到数据库时,您使用的是端口1521,正如您的tnsnames.ora所指示的那样:
(HOST = ec2-xx-xxx-xxx-xx.us-west-2.compute.amazonaws.com)(PORT = 1521))因此,您需要添加入站防火墙规则来允许TCP端口1521上的通信量通过您的EC2实例(除了3389和22的现有实例)。我不知道SQL*Net是否会出现在“type”下拉列表中,因此您可能需要选择“All”。
不过,你也可能希望对其进行更严格的限制--如果你的个人电脑的IP地址是私人的,或者你的公司的外发Ip地址是私有的;如果你的ISP有一个静态的公共IP,你也可以限制它。
https://stackoverflow.com/questions/22610792
复制相似问题