Oracle11g googlecomputeengine中的Oracle数据库
我已经在谷歌计算引擎(GCE)虚拟机(Windows Server 2012数据中心)中安装了Oracle 11g标准版。我已经在Windows防火墙中为tcp:1521创建了入站和出站规则。同时,我为GCE网络创建了tcp:1521防火墙规则 当我从localhost使用sqldeveloper连接到数据库时,一切正常。但是,如果尝试从远程主机(也使用SQL Developer)连接到数据库,则会出现错误:Oracle11g googlecomputeengine中的Oracle数据库,oracle11g,port,google-compute-engine,firewall,windows-firewall,Oracle11g,Port,Google Compute Engine,Firewall,Windows Firewall,我已经在谷歌计算引擎(GCE)虚拟机(Windows Server 2012数据中心)中安装了Oracle 11g标准版。我已经在Windows防火墙中为tcp:1521创建了入站和出站规则。同时,我为GCE网络创建了tcp:1521防火墙规则 当我从localhost使用sqldeveloper连接到数据库时,一切正常。但是,如果尝试从远程主机(也使用SQL Developer)连接到数据库,则会出现错误: Status: Failure - Test failed: IO Error: Th
Status: Failure - Test failed: IO Error: The Network Adapter could not establish the connection.
我已成功从远程主机ping托管数据库的虚拟机,但当我telnet时,连接失败:
Connecting To <host-ip>... Could not open connection to the host, on port 1521: Connect failed
正在连接到。。。无法在端口1521上打开与主机的连接:连接失败
此外,nmap声明在虚拟机中过滤端口1521
我错过了什么?感谢您的帮助。以下是您可以采取的一些步骤来排除故障并解决此问题: 首先,为了进行故障排除,请关闭Windows VM的防火墙:
netsh firewall set opmode mode=Disable
以后可以使用以下命令将其打开:
netsh firewall set opmode mode=Enable
确保您的远程IP地址列在tcp:1521
的GCE防火墙规则的源过滤器中。如果GCE防火墙规则有一个目标标记
,则您的Windows VM实例也必须使用相同的标签进行标记,因此此防火墙规则适用于它
如果防火墙规则配置正确,则要检查的另一点是。由于您的虚拟机的内部IP地址不是静态IP地址,并且可能会发生更改,请使用SSL配置TCP/IP或TCP/IP,并在侦听协议地址的主机字段中输入计算机的主机名。我在考虑您的答案后进行了进一步研究,这是我们应该考虑的:
1。配置Windows服务器防火墙:
进入控制面板
->系统和安全
->Windows防火墙
->高级设置
。然后创建具有以下功能的新入站规则:
规则类型:端口
协议:TCP
端口号:1521
(除非您在Oracle数据库中指定了不同的端口号)
操作:允许连接
档案:域+私有+公共
(或适用于您的案例的档案)
名称:Oracle DB
(或您想要的任何名称)
完成后,使用为入站规则指定的相同功能创建出站规则
2。配置Google Compute Engine网络防火墙:在Google Compute Engine(GCE)控制台转到网络->防火墙规则。然后单击新防火墙规则
,并对其进行配置:
名称:oracle db
(或您想要的任何名称)
网络:默认值
(或已部署虚拟机的网络。请从虚拟机实例仪表板验证)
源筛选器:允许来自任何源(0.0.0.0/0)
(警告:如果只想启用一个主机或一组主机,则应选择IP范围。然后指定域或IP地址)
允许的协议和端口:tcp:1521
(或适用于您的情况的协议和端口-与您为Windows防火墙规则定义的协议和端口相同)
最后,单击Create
3。配置Oracle Net侦听器:默认情况下,Oracle数据库不接受远程连接。它只接受本地主机请求。因此,在Oracle数据库服务器上以管理员身份打开CMD。我们将在执行以下操作时停止数据库网络侦听器:
lsnrctl STOP
现在,转到Oracle安装路径Oracle\u path(通常为:Oracle\u path
=C:\app\
)。然后导航到:ORACLE\u PATH\product\11.2.0\dbhome\u 1\NETWORK\ADMIN
。您将在那里找到两个重要文件:listener.ora
和tnsnames.ora
。打开listener.ora
,并按服务器主机名更改所有本地主机实例(警告:不更改IP地址,而改为服务器主机名)
保存您的更改。最后,我们应该重新启动网络侦听器。因此,以管理员身份转到CMD并执行以下命令:
lsnrctl START
打开浏览器并键入:。您的数据库和侦听器应该正在运行。现在,您可以从远程主机进行连接
有关更多信息,请参阅:Nice研究。我只想补充一点,建议在GCE防火墙上使用目标标记
,否则防火墙规则适用于所有VM实例。
YOUR_SERVICE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <server_hostname>)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = your_service_name)
)
)
LISTENER_YOUR_SERVICE =
(ADDRESS = (PROTOCOL = TCP)(HOST = <server_hostname>)(PORT = 1521))
lsnrctl START