在 Debian 上,lsnrctl 是 Oracle Database Listener 的管理工具(来自 oracle-instant-client 或完整 Oracle 安装)。
lsnrctl 本身不能“远程直接连接”到另一台机器的 listener,它是通过 Oracle Net(TNS)配置 来管理的。
下面分几种常见情况说明 ✅
lsnrctl一般只用于 管理 listener(启停/查看状态)
远程访问数据库 用的是sqlplus/tnsnames.ora
sudo apt update
sudo apt install oracle-instant-client-basic
或手动装:
instantclient-basicinstantclient-sqlplustnsnames.oramkdir -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)
)
)
sqlplus user/pass@REMOTE_DB
✅ 这是标准远程连接方式
lsnrctl status 默认只查本机 listener
但可以通过 listener.ora + TNS 查看远程
listener.ora(本机)vi ~/oracle/network/admin/listener.ora
LISTENER_REMOTE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
lsnrctl status LISTENER_REMOTE
⚠️ 注意:
如果 listener 在远程服务器:
ssh oracle@192.168.1.100
lsnrctl status
这是 DBA 标准做法
远程连不上常见原因:
ufw allow 1521/tcp
localhost# listener.ora
HOST = 0.0.0.0
remote_listener| 目的 | 正确方式 |
|---|---|
| 远程连数据库 | sqlplus + tnsnames.ora |
| 管理远程 listener | SSH 到服务器 |
| lsnrctl 远程 status | 仅有限支持 |
如果你愿意,可以告诉我:
我可以直接给你一套可用的配置文件。