考虑到您的回答,我进行了更多研究,这是我们应该考虑的:
1.配置 Windows Server 防火墙:
转到Control Panel -> System and Security -> Windows Firewall -> Advanced settings。然后创建具有以下功能的新入站规则:
规则类型: Port
协议: TCP
端口号: 1521(除非您在 Oracle 数据库中指定了不同的端口号)
行动: Allow the connection
简介: Domain + Private + Public(或适用于您的情况的那个)
姓名: Oracle DB(或任何你想要的名字)
完成后,使用为入站规则指定的相同功能创建出站规则。
2。配置 Google Compute Engine 网络防火墙: 在 Google Compute Engine (GCE) 控制台上转到 Networking -> Firewall rules。然后点击New firewall rule,进行配置:
姓名: oracle-db(或任何你想要的名字)
网络:default(或您部署虚拟机的地方。通过虚拟机实例仪表板验证它)
源过滤器: Allow from any source (0.0.0.0/0)(警告:如果您只想启用一个主机或一组主机,则应选择 IP 范围。然后指定您的域或 IP 地址)
允许的协议和端口: tcp:1521(或适用于您的情况 - 与您为 Windows 防火墙规则定义的相同)
最后,点击创建。
3.配置 Oracle Net Listener: 默认情况下,Oracle 数据库不接受远程连接。它只接受本地主机请求。因此,在您的 Oracle 数据库服务器上以管理员身份打开 CMD。我们将在执行时停止数据库网络监听器:
lsnrctl STOP
现在,转到 Oracle 安装路径 ORACLE_PATH(通常为:ORACLE_PATH = C:\app\<user_name>)。然后导航到:ORACLE_PATH\product\11.2.0\dbhome_1\NETWORK\ADMIN。在那里您会找到两个重要文件:listener.ora 和 tnsnames.ora。打开 listener.ora 并通过您的服务器主机名更改所有 LOCALHOST 出现(警告:不是 IP 地址,而是服务器 HOSTNAME)。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = <server_hostname>)(PORT = 1521))
)
)
保存您的更改。然后,打开tnsnames.ora 文件。并为您的服务做同样的事情:
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))
保存您的更改。最后,我们应该重新启动网络监听器。于是以管理员身份进入CMD,执行如下命令:
lsnrctl START
打开浏览器并输入:http://localhost:1158/em。您的数据库和侦听器应该正在运行。现在您可以从远程主机进行连接了。
更多信息请参考:http://docs.oracle.com/cd/B28359_01/network.111/b28316/listenercfg.htm