温馨提示×

debian lsnrctl如何设端口

小樊
32
2026-10-15 09:39:52
栏目: 智能运维

在 Debian 上,lsnrctl 是 Oracle Database Listener(监听器)的管理工具,它本身不能直接“设端口”,而是通过修改 listener.ora 配置文件来设置监听端口,然后用 lsnrctl 重新加载或启动监听。

下面按步骤说明。


一、找到 listener.ora 文件

通常在:

$ORACLE_HOME/network/admin/listener.ora

例如:

/u01/app/oracle/product/19.0.0/dbhome_1/network/admin/listener.ora

二、编辑 listener.ora 设置端口

示例(监听端口 1522):

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1522))
    )
  )

说明:

  • PORT = 1522 ← 你要设置的端口
  • HOST 可用主机名或 IP
  • 可同时配置多个 ADDRESS(多端口监听)

多端口示例:

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

三、使用 lsnrctl 使配置生效

1️⃣ 重新加载(推荐)

lsnrctl reload

2️⃣ 或停止再启动

lsnrctl stop
lsnrctl start

四、确认端口已监听

lsnrctl status

或:

netstat -tulnp | grep 1522
# 或
ss -tulnp | grep 1522

五、客户端连接端口

如果端口不是默认 1521,客户端需要在 tnsnames.ora 或连接串中指定:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1522))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

六、常见问题

✅ 端口被占用
→ 换端口或释放端口

✅ 防火墙拦截(Debian)

sudo ufw allow 1522/tcp

✅ ORACLE_HOME 未设置

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

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

  • Oracle 版本
  • 是否使用 ASM / RAC
  • 是否要改默认 1521 端口

我可以给你更精确的配置示例。

0 踩