我对 Oracle 还很陌生,所以请多多包涵。
我想在服务器上安装 Oracle 18c XE DBMS 并通过 DBeaver 远程访问它的数据库。首先,对于使用哪个客户端存在一些混淆。
到目前为止,我已经阅读了文档,这是我在寻找客户时发现的:
Oracle 客户端软件
远程计算机必须安装 Oracle 客户端软件。Oracle 命令行实用程序(和您的应用程序)通过 Oracle 客户端软件连接到数据库。Oracle Database XE >接受来自以下所有类型的 Oracle 客户端软件的连接:
- Oracle 数据库快捷版客户端(Oracle 数据库快捷版)
安装 Oracle Database XE 时,Oracle Database Express Edition Client 也安装在同一台计算机上。您可以在远程计算机上单独安装 Oracle Database XE。可在
http://www.oracle.com/technetwork/database/express-edition/打开一个新窗口
- 即时客户端
即时客户端可在
http://www.oracle.com/technetwork/database/features/instant-client/index-100365.htmlOpens a new window Oracle 数据库企业版或标准版的 Oracle 客户端软件(所有受支持的 > 版本的 Oracle 数据库)
- 所有 Oracle 客户端软件都包括 Oracle Net,它是一种 Oracle 网络软件,它使一台计算机上的 >client > 应用程序能够通过网络连接到另一台计算机上的数据库。
问题 1: 由于我不打算以编程方式访问数据库并且实际上想要使用 GUI 或 SQLPLUS,这是否意味着我必须在所有客户端上完全安装 Oracle 18c XE?
出于测试目的,我设置了两个设备:
- Device1 - 私有安装 Oracle 19c (IP: 192.168.178.201)
- Device2 - 安装了 Oracle 18c XE 的未来服务器(IP:192.168.178.54)
Device1 通过 vpn 与网络 192.168.178.0 连接,两台设备可以互相 ping 通。
现在根据我的理解,我应该只需要像这样配置我的 DBeaver 客户端连接:
但是连接超时...
问题2: 我的tsnames.ora和listener.ora的配置有错吗?
tsnames.ora:
# tnsnames.ora Network Configuration File: C:\app\install\product\18.0.0\dbhomeXE\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.178.54)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
XEPDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.178.54)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xepdb1)
)
)
LISTENER_XE =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.178.54)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
监听器.ora
# listener.ora Network Configuration File: C:\app\install\product\18.0.0\dbhomeXE\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
DEFAULT_SERVICE_LISTENER = XE
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\install\product\18.0.0\dbhomeXE)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\install\product\18.0.0\dbhomeXE\bin\oraclr18.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.178.54)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
您应该只在服务器上安装服务器软件(即 Oracle 18c XE)。您应该在其他任何地方安装客户端软件(即即时客户端或完整的 OCI 客户端)。虽然服务器软件包括客户端,但它旨在用于本地访问,或允许服务器相互通信。没有必要(确实有理由不)在每个客户端主机上安装完整的 XE 服务器。
对于您的服务器网络配置文件,与 XE 设置关联的默认值应该没问题。您唯一需要仔细检查的是您没有防火墙阻止远程客户端访问服务器端口(默认为 1521)。