温馨提示×

linux oracle怎么远程连接

小樊
39
2026-09-28 14:51:05
栏目: 云计算

在 Linux 环境下远程连接 Oracle 数据库,通常有以下几种常见方式。下面按“从哪连、连什么、怎么配”来说明。


一、远程连接 Oracle 的几种方式

1️⃣ 使用 SQL*Plus(Oracle 自带客户端)

适合服务器运维、脚本方式。

2️⃣ 使用 Oracle Instant Client

轻量级客户端,最常用。

3️⃣ 使用图形化工具

  • DBeaver
  • Oracle SQL Developer
  • Navicat

二、远程连接前提条件(非常重要)

✅ 1. Oracle 服务端已启动

lsnrctl status

应能看到监听器在运行。

✅ 2. 监听端口可访问(默认 1521)

telnet ip 1521
# 或
nc -zv ip 1521

✅ 3. 防火墙放行

# firewalld
firewall-cmd --add-port=1521/tcp --permanent
firewall-cmd --reload

三、使用 SQL*Plus 远程连接(Linux → Linux)

1️⃣ 安装 Oracle 客户端(或 Instant Client)

Instant Client 示例(最推荐)

yum install -y oracle-instantclient-basic oracle-instantclient-sqlplus

2️⃣ 设置环境变量

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

3️⃣ 连接命令

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

示例:

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

四、使用 tnsnames.ora 方式(传统方式)

1️⃣ 配置 tnsnames.ora

vi $ORACLE_HOME/network/admin/tnsnames.ora

示例:

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

2️⃣ 连接

sqlplus scott/tiger@ORCL

五、使用 Python 远程连接(示例)

pip install oracledb
import oracledb

conn = oracledb.connect(
    user="scott",
    password="tiger",
    host="192.168.1.10",
    port=1521,
    service_name="orcl"
)

cur = conn.cursor()
cur.execute("SELECT sysdate FROM dual")
print(cur.fetchone())

六、常见问题排查

❌ ORA-12170: TNS:Connect timeout

  • IP 不通
  • 防火墙未放行
  • 监听器未启动

❌ ORA-12514

  • SERVICE_NAME 写错
  • 监听未注册服务

❌ ORA-12545

  • HOST 配置错误

七、推荐连接方式(总结)

场景 推荐方式
服务器运维 SQL*Plus
开发调试 DBeaver / SQL Developer
程序连接 Instant Client / oracledb

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

  • ✅ Oracle 版本(11g / 12c / 19c / 21c)
  • ✅ 是哪一端(客户端 / 服务端)
  • ✅ 报错信息

我可以直接帮你一步一步配好。

0 踩