首页 > 解决方案 > 我想使用我的公共 IP 地址通过 DBlink 连接到我的 Oracle DB

问题描述

我想让朋友通过 DBlink 访问我的 oracle 数据库。我是数据库新手,所以我无法完成这项工作。

我想我必须用我的公共 IP 左右创建一个侦听器。所以我使用 NET 配置向导来创建一个服务名称。我使用了公共 IP,但在尝试连接时向导会引发超时。我尝试在 1522 端口的 listener.ora 中使用我的公共 IP 创建一个监听器,但它也不起作用

我做了什么:

  1. 我检查了 listener.ora,它有一个带有我本地 ip (192.168.1.134) 的 LISTENER,端口是 1521
  2. 我检查了 tnsnames.ora,它具有相同的侦听器 IP 和端口。
  3. 我在路由器中进行了端口转发。
  4. 我使用向导创建了一个具有公共 IP 的侦听器。
  5. 我使用向导创建了一个具有公共 IP 地址的服务名称,但它无法连接

TNSNAMES.ORA:

# tnsnames.ora Network Configuration File: D:\Programas\Oracle\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.134)(PORT = 1521))


JORGE_ORA_DB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 190.153.1.32)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.134)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

听众.ORA:

# listener.ora Network Configuration File: D:\Programas\Oracle\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\Programas\Oracle)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\Programas\Oracle\bin\oraclr19.dll")
    )
  )

REMOTE =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = croquer.ddns.net)(PORT = 1522))
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.134)(PORT = 1521))
    )
  )

标签: oracleoracle-sqldeveloperip-addressremote-accessdblink

解决方案


谢谢您的反馈!解决方案非常简单。我在两台计算机的防火墙中创建了一个新的入站和出站规则。然后它对我有用。

这些规则是端口 1521(在我的例子中)的端口类型规则。


推荐阅读