温馨提示×

debian lsnrctl怎么优化

小樊
33
2026-09-18 18:39:58
栏目: 智能运维

在 Debian 上优化 lsnrctl(Oracle Listener),通常目标是:减少连接延迟、提高并发能力、增强稳定性、便于运维。下面按「配置优化 → 系统优化 → 运维建议」来说明。


一、Listener 配置优化(listener.ora)

文件位置一般在:

$ORACLE_HOME/network/admin/listener.ora

1. 使用独立 Listener + 明确端口

避免使用默认 1521 被滥用,明确监听地址:

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

✅ 不建议用 HOST=localhost 或通配地址(性能 & 安全)


2. 增加并发连接支持(重要)

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
      (QUEUESIZE = 512)
    )
  )
  • QUEUESIZE:监听队列长度(默认通常 128)
  • 高并发场景建议 256~1024

3. 启用 ADR & 控制日志级别

ADR_BASE_LISTENER = /u01/app/oracle

LOGGING_LISTENER = OFF
# 或
TRACE_LEVEL_LISTENER = OFF

⚠ 日志过多会严重拖慢 listener


4. 静态注册(减少动态注册压力)

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

适合:

  • 启动顺序不确定
  • 大量连接创建

二、系统级优化(Debian)

1. 文件描述符限制

ulimit -n

推荐:

* soft nofile 65536
* hard nofile 65536

修改:

/etc/security/limits.conf

2. 内核参数(TCP)

sysctl -w net.core.somaxconn=1024
sysctl -w net.ipv4.tcp_max_syn_backlog=8192

永久:

/etc/sysctl.conf

3. 使用 Oracle 用户运行 listener

避免 root 启动,确保:

lsnrctl start

oracle 用户执行


三、lsnrctl 运维优化

1. 常用优化命令

lsnrctl status
lsnrctl services
lsnrctl reload   # 不中断连接

✅ 修改 listener.ora 后优先用 reload


2. 定期清理日志

$ORACLE_BASE/diag/tnslsnr/.../trace

可脚本化清理或限制大小


3. 使用多个 Listener(高并发)

LISTENER1 → 1521
LISTENER2 → 1522

客户端通过 tnsnames.ora 做负载


四、典型优化组合(推荐)

✅ 生产环境推荐配置:

  • QUEUESIZE = 512
  • 静态注册
  • 关闭 TRACE
  • nofile ≥ 65536
  • somaxconn ≥ 1024

五、如果你愿意,我可以帮你:

  • 看你的 listener.ora
  • 判断是 连接慢 / 断连 / CPU 高
  • 给你一份可直接用的优化模板

直接贴配置或说现象就行。

0