首页主机资讯如何用lsnrctl优化centos性能

如何用lsnrctl优化centos性能

时间2025-12-15 23:48:04发布访客分类主机资讯浏览812
导读:用 lsnrctl 优化 CentOS 上的 Oracle 监听器性能 一 基线检查与快速体检 确认环境变量与路径:确保 ORACLE_HOME、PATH、LD_LIBRARY_PATH 正确,避免命令解析或库加载异常。 检查监听状态与服...

用 lsnrctl 优化 CentOS 上的 Oracle 监听器性能

一 基线检查与快速体检

  • 确认环境变量与路径:确保 ORACLE_HOME、PATH、LD_LIBRARY_PATH 正确,避免命令解析或库加载异常。
  • 检查监听状态与服务注册:执行 lsnrctl status,核对监听地址/端口(默认 1521)、服务是否已动态注册(Service “xxx” has 1 instance(s))。
  • 校验监听配置:查看 $ORACLE_HOME/network/admin/listener.orasqlnet.ora 的基本语法与路径,确保监听地址、SID/服务映射正确。
  • 做一次连通性验证:从应用端或同网段测试 tnspingsqlplus 直连,排除网络/防火墙干扰。
  • 基线记录:保存当前 status 输出、日志位置、监听端口占用,便于后续对比与回滚。

二 监听器配置优化

  • 精简与收敛监听地址:仅保留必要地址(如 0.0.0.0:1521 或指定内网接口),减少无效监听与解析开销。
  • 控制日志与跟踪级别:将日志级别设为 WARNING/ERROR,仅在排障时临时开启 TRACE,避免高频磁盘 I/O。
  • 连接空闲回收:在 sqlnet.ora 设置 SQLNET.EXPIRE_TIME=10(分钟),周期性探测并清理僵死/半开连接,释放资源。
  • 安全与注册收敛:通过 SECURE_REGISTER_LISTENER=ON 限制实例自注册来源,仅允许数据库主机;配合防火墙仅放行 1521/TCP
  • 高并发场景的权衡:若短连接风暴明显,可评估启用 共享服务器(SHARED_SERVERS) 以减小每个连接对监听与后端进程的压力(需应用配合测试)。

三 CentOS 系统层优化

  • 文件描述符与进程数:在 /etc/security/limits.conf 提升 oracle 用户限制(如 nofile 65536),避免 “Too many open files”。
  • TCP 队列与内核缓冲:提升 net.core.somaxconn(未完成握手队列,建议 1024+)、net.core.rmem_max / net.core.wmem_max(套接字缓冲,可按需上调至数十 MB),减少连接溢出与网络抖动。
  • 启用 TCP 快速打开:按需开启 net.ipv4.tcp_fastopen=3(客户端与服务器两端一致),降低短连接握手延迟(需内核与应用支持)。
  • 连接复用与回收:在 /etc/sysctl.conf 中启用 net.ipv4.tcp_tw_reuse=1,并谨慎评估 tcp_tw_recycle(在 NAT/负载均衡环境下可能带来问题,优先用 reuse)。
  • 持久化与回滚:所有 sysctl 调整写入 /etc/sysctl.conf/etc/sysctl.d/99-oracle-listener.conf,变更前备份,变更后 sysctl -p 生效并观察。

四 监控 排障与维护

  • 持续观测:定期执行 lsnrctl status / lsnrctl services,关注 Current Load、Total Handled 与服务注册状态,异常时第一时间核对日志。
  • 日志与跟踪:通过 lsnrctl set log_status onset log_level WARNING 控制日志;排障时 lsnrctl trace start 生成跟踪,定位握手/转发/注册延迟。
  • 外部监控:采集监听端口连通性、进程存活、日志错误计数(如 ORA-12514/ORA-12520)等指标,结合 Zabbix/Prometheus 设置告警,缩短 MTTR。
  • 变更与版本:任何配置调整先在测试环境验证并备份;保持 Oracle 监听器/客户端 版本与补丁为较新稳定版,获取性能修复与改进。

五 最小改动清单与示例

  • 建议按“影响小→影响大”的顺序实施:
    1. 调整日志级别与关闭跟踪(立即减负);2) 设置 SQLNET.EXPIRE_TIME=10;3) 放开 limits.confnofile;4) 提升 somaxconn/rmem_max/wmem_max;5) 按需开启 tcp_fastopen;6) 启用 SECURE_REGISTER 并收紧防火墙;7) 评估 SHARED_SERVERS
  • 示例片段(仅示意,按实际环境调整):
    • sqlnet.ora
      • SQLNET.EXPIRE_TIME=10
    • /etc/security/limits.conf
      • oracle soft nofile 65536
      • oracle hard nofile 65536
    • /etc/sysctl.d/99-oracle-listener.conf
      • net.core.somaxconn = 1024
      • net.core.rmem_max = 134217728
      • net.core.wmem_max = 134217728
      • net.ipv4.tcp_fastopen = 3
      • net.ipv4.tcp_tw_reuse = 1
    • 应用与验证
      • sysctl -p
      • lsnrctl stop → lsnrctl start
      • lsnrctl status / lsnrctl services
      • tnsping < TNS_ALIAS> 与 sqlplus 直连验证

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何用lsnrctl优化centos性能
本文地址: https://pptw.com/jishu/772221.html
lsnrctl如何备份centos配置 lsnrctl如何诊断centos网络问题

游客 回复需填写必要信息