我想使用我的 public IP 地址通过 DBlink 连接到我的 Oracle 数据库
I want to connect through DBlink to my Oracle DB using my public IP address
我想让朋友通过DBlink访问我的oracle DB。我是数据库的新手,所以我无法完成这项工作。
我想我必须用我的 public IP 左右创建一个侦听器。所以我使用 NET 配置向导来创建服务名称。我使用了 public IP,但向导在尝试连接时抛出超时。我试图在 por 1522 的 listener.ora 中用我的 public IP 创建一个监听器,但它也不起作用
我做了什么:
- 我检查了 listener.ora,它有一个 LISTENER 与我的本地 ip (192.168.1.134) 和端口是 1521
- 我检查了 tnsnames.ora,它与侦听器具有相同的 IP 和端口。
- 我在我的路由器中进行了端口转发。
- 我使用向导创建了一个具有 public IP 的侦听器。
- 我使用向导创建了一个具有 public 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)
)
)
LISTENER.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))
)
)
感谢您的回复!
解决方案非常简单。我在两台计算机的防火墙中创建了一个新的入站和出站规则。然后它对我有用。
规则是端口 1521 的端口类型规则(在我的例子中)。
我想让朋友通过DBlink访问我的oracle DB。我是数据库的新手,所以我无法完成这项工作。
我想我必须用我的 public IP 左右创建一个侦听器。所以我使用 NET 配置向导来创建服务名称。我使用了 public IP,但向导在尝试连接时抛出超时。我试图在 por 1522 的 listener.ora 中用我的 public IP 创建一个监听器,但它也不起作用
我做了什么:
- 我检查了 listener.ora,它有一个 LISTENER 与我的本地 ip (192.168.1.134) 和端口是 1521
- 我检查了 tnsnames.ora,它与侦听器具有相同的 IP 和端口。
- 我在我的路由器中进行了端口转发。
- 我使用向导创建了一个具有 public IP 的侦听器。
- 我使用向导创建了一个具有 public 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)
)
)
LISTENER.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))
)
)
感谢您的回复! 解决方案非常简单。我在两台计算机的防火墙中创建了一个新的入站和出站规则。然后它对我有用。
规则是端口 1521 的端口类型规则(在我的例子中)。