温馨提示×

debian lsnrctl如何远程连

小樊
36
2026-09-06 18:20:04
栏目: 智能运维

在 Debian 上,lsnrctlOracle Database Listener 的管理工具(来自 oracle-instant-client 或完整 Oracle 安装)。
lsnrctl 本身不能“远程直接连接”到另一台机器的 listener,它是通过 Oracle Net(TNS)配置 来管理的。

下面分几种常见情况说明 ✅


一、最推荐方式:在本地用 tnsnames + sqlplus 远程连(不是 lsnrctl)

lsnrctl 一般只用于 管理 listener(启停/查看状态)
远程访问数据库 用的是 sqlplus / tnsnames.ora

1️⃣ 在 Debian 上安装 Oracle 客户端

sudo apt update
sudo apt install oracle-instant-client-basic

或手动装:

  • instantclient-basic
  • instantclient-sqlplus

2️⃣ 配置 tnsnames.ora

mkdir -p ~/oracle/network/admin
export TNS_ADMIN=~/oracle/network/admin

编辑:

vi ~/oracle/network/admin/tnsnames.ora

示例:

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

3️⃣ 远程连接数据库

sqlplus user/pass@REMOTE_DB

✅ 这是标准远程连接方式


二、用 lsnrctl 查看“远程 listener 状态”(有限支持)

lsnrctl status 默认只查本机 listener
但可以通过 listener.ora + TNS 查看远程

1️⃣ 配置 listener.ora(本机)

vi ~/oracle/network/admin/listener.ora
LISTENER_REMOTE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
  )

2️⃣ 指定 listener 名字

lsnrctl status LISTENER_REMOTE

⚠️ 注意:

  • 远程 listener 必须允许 STATUS 查询
  • 很多生产环境 禁止远程 lsnrctl status

三、通过 SSH 在远程 Debian 上执行 lsnrctl(最常用)

如果 listener 在远程服务器:

ssh oracle@192.168.1.100
lsnrctl status

这是 DBA 标准做法


四、防火墙 & 权限注意

远程连不上常见原因:

  • 防火墙未开 1521
ufw allow 1521/tcp
  • listener 只监听 localhost
# listener.ora
HOST = 0.0.0.0
  • Oracle 未设置 remote_listener

五、总结

目的 正确方式
远程连数据库 sqlplus + tnsnames.ora
管理远程 listener SSH 到服务器
lsnrctl 远程 status 仅有限支持

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

  • Oracle 版本
  • Debian 版本
  • 是想 连数据库 还是 管理 listener

我可以直接给你一套可用的配置文件。

0