温馨提示×

linux lsnrctl如何配置

小樊
35
2026-10-05 01:28:01
栏目: 智能运维

lsnrctl 是 Oracle 数据库监听程序(Listener) 的管理工具,本身不是“配置”工具,而是用来启动 / 停止 / 查看监听器的。真正的“配置”是在 listener.ora 文件里完成的。

下面从「配置文件位置 → 常见配置示例 → 使用 lsnrctl 管理」给你一个完整说明。


一、listener.ora 文件位置

一般在:

$ORACLE_HOME/network/admin/listener.ora

查看当前 ORACLE_HOME:

echo $ORACLE_HOME

二、最简单的 listener.ora 配置示例

1️⃣ 基础单实例监听

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (SID_NAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
    )
  )

说明:

  • LISTENER:监听名称(默认就是 LISTENER)
  • HOST:服务器 IP 或主机名
  • PORT:默认 1521
  • SID_NAME:数据库实例名
  • GLOBAL_DBNAME:服务名(用于远程连接)

2️⃣ 多个 IP / 端口监听

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )

3️⃣ 使用服务名(推荐,12c+)

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
    )
  )

数据库注册方式:

ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=dbserver)(PORT=1521))';
ALTER SYSTEM REGISTER;

三、lsnrctl 常用命令

启动监听

lsnrctl start

停止监听

lsnrctl stop

查看监听状态

lsnrctl status

重新加载配置(不中断连接)

lsnrctl reload

指定监听名

lsnrctl start LISTENER2

四、常见排错

1️⃣ lsnrctl: command not found

export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH

2️⃣ 状态显示 no services

ALTER SYSTEM REGISTER;

3️⃣ 端口被占用

netstat -tunlp | grep 1521

五、最小可用配置流程

  1. 编辑 listener.ora
  2. lsnrctl start
  3. lsnrctl status
  4. 数据库 ALTER SYSTEM REGISTER

如果你告诉我:

  • Oracle 版本(11g / 12c / 19c)
  • 单实例还是 RAC
  • 是否用服务名连接

我可以直接给你 一份可直接用的 listener.ora。

0 踩