温馨提示×

debian lsnrctl如何修改端口

小樊
47
2026-08-31 17:37:54
栏目: 智能运维

Debian 上,lsnrctlOracle Database Listener 的管理工具,修改监听端口不是直接通过 lsnrctl 命令完成的,而是修改 listener.ora 配置文件,然后重启监听。

下面按步骤说明。


一、确认当前监听端口

lsnrctl status

在输出中可以看到类似:

Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))

二、修改监听端口(核心步骤)

1️⃣ 找到 listener.ora 文件

常见路径(根据 Oracle 安装方式不同):

$ORACLE_HOME/network/admin/listener.ora

例如:

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

2️⃣ 编辑 listener.ora

vi listener.ora

原始配置示例(默认端口 1521):

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

只修改 PORT 即可,例如改为 1522

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

⚠️ 如果有多段 ADDRESS,逐条修改即可


三、重启监听使配置生效

lsnrctl stop
lsnrctl start

或直接:

lsnrctl reload

reload 不会中断已连接会话,但部分修改可能需要 stop/start


四、验证新端口是否生效

lsnrctl status

确认显示:

(PORT=1522)

也可以用系统命令验证:

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

五、客户端连接注意事项(非常重要)

如果端口不是 1521(Oracle 默认端口),客户端必须显式指定端口:

tnsnames.ora 示例

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库IP)(PORT = 1522))
    (CONNECT_DATA =
      (SERVICE_NAME = orclpdb)
    )
  )

连接字符串

sqlplus user/password@//localhost:1522/orclpdb

六、防火墙(Debian 常见)

如果连不上,记得放行端口:

sudo ufw allow 1522/tcp

七、常见问题

❓ 改了端口但没生效?

  • 修改的是 错误的 listener.ora
  • 没重启监听
  • 有多个 listener(如 LISTENER、LISTENER2)

❓ 多个监听怎么办?

lsnrctl status LISTENER_NAME

指定监听修改和重启。


八、总结一句话

Debian 下修改 Oracle 监听端口 = 修改 listener.ora 中的 PORT → 重启监听

如果你愿意,可以把你的 Oracle 版本Debian 版本listener.ora 内容贴出来,我可以帮你精确检查。

0