Oracle数据库默认仅允许本地连接,要实现远程客户端访问,需要完成服务端监听配置、实例注册等相关操作,下面逐步介绍具体配置流程。

一、配置前准备
配置前需要确认服务端环境满足以下要求:
- Oracle数据库实例已经正常启动,能够本地通过sqlplus连接
- 服务端防火墙开放1521端口(Oracle默认监听端口,若自定义端口需对应开放)
- 记录服务端的IP地址、数据库实例名(SID)、服务名等信息
二、配置监听器(listener.ora)
监听器是Oracle服务端接收远程连接请求的核心组件,配置文件通常位于$ORACLE_HOME/network/admin/listener.ora,若文件不存在可手动创建。
以下是标准监听器配置示例,需根据实际环境替换IP和端口:
# listener.ora配置示例
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
# 若需要同时支持本地IPC连接,可添加如下地址
# (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
# 静态注册实例,可选配置,动态注册可省略该部分
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL) # 替换为你的数据库SID
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1) # 替换为实际ORACLE_HOME路径
)
)配置完成后,执行以下命令重启监听器使配置生效:
# 停止监听器 lsnrctl stop # 启动监听器 lsnrctl start # 查看监听器状态 lsnrctl status
三、配置tnsnames.ora(可选但推荐)
tnsnames.ora文件用于定义客户端的连接描述符,服务端配置该文件可以方便本地测试远程连接逻辑,文件路径同样为$ORACLE_HOME/network/admin/tnsnames.ora。
配置示例如下:
# tnsnames.ora配置示例
ORCL_REMOTE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpdb) # 替换为你的数据库服务名,若用SID则改为(SID = ORCL)
)
)四、验证远程连接配置
完成上述配置后,可以通过以下方式验证配置是否生效:
1. 服务端本地测试
在服务端使用tns连接字符串测试连接:
sqlplus sys/oracle@ORCL_REMOTE as sysdba
若能正常登录则说明服务端配置基本正确。
2. 远程客户端测试
在远程客户端配置好tnsnames.ora后,使用相同连接字符串尝试连接,或使用以下命令直接测试:
sqlplus 用户名/密码@//192.168.1.100:1521/orclpdb
五、常见问题排查
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 远程连接提示ORA-12541: TNS:无监听程序 | 监听器未启动、HOST配置错误、端口被防火墙拦截 | 检查监听器状态,确认HOST为服务端IP,开放对应端口 |
| 连接提示ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务 | 实例未注册到监听器、SERVICE_NAME/SID配置错误 | 检查监听器状态中的服务列表,确认连接参数与实际实例信息一致 |
| 本地可连远程不可连 | 监听仅绑定了127.0.0.1,未绑定公网/内网IP | 修改listener.ora中的HOST为服务端实际对外IP,重启监听器 |
只要按照上述步骤逐步配置,大部分Oracle数据库远程连接问题都可以解决,配置过程中注意替换示例中的IP、端口、实例名等参数为实际环境信息即可。
Oracle远程连接服务端配置tnsnames_oralistener_ora修改时间:2026-05-25 00:07:04