温馨提示×

linux oracle怎样远程连接

小樊
58
2026-09-04 14:05:34
栏目: 云计算

在 Linux 环境下远程连接 Oracle 数据库,常见方式有以下几种,按使用场景从“命令行”到“工具”给你说明:


一、使用 SQL*Plus 远程连接(最常用)

1️⃣ 前提条件

  • 远程 Oracle 已启动监听(默认端口 1521)
  • 本地 Linux 已安装 Oracle Client 或 Instant Client
  • 网络可达(防火墙放行 1521)

2️⃣ 安装 Oracle Instant Client(推荐)

# 以 root 或 sudo 执行
yum install -y oracle-instantclient-basic oracle-instantclient-sqlplus

或下载 rpm / zip 版本: https://www.oracle.com/database/technologies/instant-client.html


3️⃣ 配置环境变量

export ORACLE_HOME=/usr/lib/oracle/21/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH

4️⃣ 使用 Easy Connect 连接

sqlplus 用户名/密码@//IP:端口/服务名

示例:

sqlplus scott/tiger@//192.168.1.100:1521/orcl

✅ 不需要 tnsnames.ora


5️⃣ 使用 TNS 连接(传统方式)

编辑:

$ORACLE_HOME/network/admin/tnsnames.ora

示例:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

连接:

sqlplus scott/tiger@ORCL

二、使用 tnsping 测试连接

tnsping ORCL

或

tnsping //192.168.1.100:1521/orcl

三、使用图形化工具(Windows / Linux)

常用工具

  • DBeaver(跨平台,推荐)
  • PL/SQL Developer(Windows)
  • Oracle SQL Developer(官方)

连接方式同样是:

IP:1521/服务名

四、常见问题排查

❌ ORA-12170: TNS:Connect timeout

  • 防火墙未放行 1521
  • 网络不通

❌ ORA-12541: TNS:no listener

  • 远程数据库 listener 未启动
lsnrctl status
lsnrctl start

❌ ORA-12514

  • SERVICE_NAME 写错

五、SSH 隧道方式(安全)

ssh -L 1521:localhost:1521 oracle@远程服务器

然后本地连接:

sqlplus 用户/密码@//localhost:1521/orcl

如果你愿意,可以告诉我:

  • Oracle 版本(11g / 12c / 19c)
  • 是 客户端连服务器 还是 服务器连服务器
  • 是否使用 RAC / PDB

我可以给你更精确的连接配置示例。

0 踩