温馨提示×

debian lsnrctl怎么添加监听

小樊
71
2026-08-31 17:38:55
栏目: 智能运维

在 Debian 上,lsnrctl 是 Oracle Database 的监听控制工具,用于管理 Oracle Listener。下面按最常见场景一步一步说明如何添加/配置监听。


一、前提条件

  1. 已安装 Oracle Database(如 19c、21c)
  2. lsnrctl 可执行文件在 PATH 中
    通常位于:
    $ORACLE_HOME/bin/lsnrctl
    
  3. 已正确设置环境变量:
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
    export PATH=$ORACLE_HOME/bin:$PATH
    

二、添加监听的两种方式

✅ 方法一:手工编辑 listener.ora(最常用)

1️⃣ 找到 listener.ora 文件

vi $ORACLE_HOME/network/admin/listener.ora

2️⃣ 添加监听配置示例

示例:添加一个名为 LISTENER_NEW 的监听
LISTENER_NEW =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1522))
    )
  )

✅ 说明

  • LISTENER_NEW:监听名称,可自定义
  • HOST:服务器 IP 或主机名
  • PORT:监听端口(如 1521、1522)

3️⃣ 刷新或启动监听

lsnrctl start LISTENER_NEW

查看状态:

lsnrctl status LISTENER_NEW

✅ 方法二:使用 netca(图形界面)

如果你有桌面环境或 X11:

netca

步骤:

  1. 选择 Listener configuration
  2. Add
  3. 输入监听名
  4. 选择协议(TCP)
  5. 设置端口
  6. 完成

三、注册数据库到监听(非常重要)

1️⃣ 静态注册(listener.ora)

SID_LIST_LISTENER_NEW =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
      (SID_NAME = orcl)
    )
  )

2️⃣ 动态注册(推荐)

在数据库内执行:

ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1522))';
ALTER SYSTEM REGISTER;

四、常用 lsnrctl 命令

lsnrctl start
lsnrctl stop
lsnrctl status
lsnrctl reload
lsnrctl services

五、常见问题排查

❌ 监听启动失败

TNS-12542: TNS:address already in use

✅ 端口被占用

netstat -tunlp | grep 1521

❌ 数据库无法注册

show parameter local_listener;

确保:

  • IP 可 ping
  • 防火墙放行端口
sudo ufw allow 1521/tcp

六、总结

✅ 添加监听的核心步骤:

  1. 编辑 listener.ora
  2. 启动监听 lsnrctl start <监听名>
  3. 注册数据库(静态 / 动态)

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

  • Oracle 版本(11g / 19c / 21c)
  • 是否是 全新安装
  • 是否有 多实例

我可以给你一份完全贴合你环境的配置示例。

0 踩