Ubuntu lsnrctl网络配置技巧

Ubuntu 下 lsnrctl 网络配置技巧一 基础配置与常用命令以 oracle 用户操作,确保环境变量正确(如 ORACLE_HOME、ORACLE_SID)。常用命令速览:启动/停止/状态:lsnrctl start|stop|status热加载配置:lsnrctl reload查看服务与端点:lsnrctl services在线修改参数:lsnrctl set =;查看参数:ls

Ubuntu 下 lsnrctl 网络配置技巧

一 基础配置与常用命令

  • oracle 用户操作,确保环境变量正确(如 ORACLE_HOME、ORACLE_SID)。常用命令速览:
    • 启动/停止/状态:lsnrctl start|stop|status
    • 热加载配置:lsnrctl reload
    • 查看服务与端点:lsnrctl services
    • 在线修改参数:lsnrctl set =;查看参数:lsnrctl get
    • 跟踪与日志:lsnrctl trace_level_listener|trace_level_server
    • 帮助:lsnrctl help
  • 配置文件路径通常为 $ORACLE_HOME/network/admin/listener.ora;必要时同时检查 tnsnames.ora。修改后优先使用 reload 使配置生效,减少中断。

二 监听端口与地址配置

  • 修改监听端口(示例改为 1522
    1. 编辑配置文件:
      sudo -i -u oracle
      nano $ORACLE_HOME/network/admin/listener.ora
    2. LISTENERADDRESS 中将 PORT=1521 改为 PORT=1522
    3. 使配置生效:
      lsnrctl stop
      lsnrctl start
      或热加载:lsnrctl reload
    4. 验证:
      lsnrctl status
      ss -lntp | grep 1522
  • 仅监听内网地址(示例 192.168.1.100
    • listener.oraADDRESS 中将 HOST=192.168.1.100(不要用主机名以避免解析不确定性)。
    • 重启或热加载监听器,并用 ss -lntp | grep 1521 确认仅绑定到指定地址。
  • 防火墙放行
    • UFW:sudo ufw allow 1521,1522/tcp
    • firewalld:sudo firewall-cmd –add-port=1521/tcp –permanent && sudo firewall-cmd –reload
  • 客户端连通性测试
    • tnsping 或 sqlplus:sqlplus sys/密码@//192.168.1.100:1521/ORCL as sysdba
  • 变更端口会影响现有应用,务必提前通知并更新客户端/中间件配置,且确认新端口未被占用。

三 服务注册与客户端解析

  • 静态注册(推荐在需要显式声明 SID 的场景)
    • listener.oraSID_LIST_LISTENER 中声明数据库 SIDORACLE_HOME,示例:
      SID_LIST_LISTENER =
      (SID_LIST =
      (SID_DESC =
      (SID_NAME = ORCL)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
      )
      )
  • 动态注册(更常见)
    • 确保数据库参数 LOCAL_LISTENER 指向当前监听地址,例如:
      ALTER SYSTEM SET LOCAL_LISTENER=‘(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))’ SCOPE=BOTH;
      ALTER SYSTEM REGISTER;
  • 客户端解析
    • tnsnames.ora 中定义服务别名,示例:
      ORCL =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
      )
      )
  • 验证
    • 查看监听端注册的服务:lsnrctl services
    • 从客户端测试:tnsping ORCLsqlplus user/pass@ORCL

四 systemd 托管与开机自启

  • 创建服务单元文件 /etc/systemd/system/oracle-listener.service
    [Unit]
    Description=Oracle Listener
    After=network.target

    [Service]
    Type=forking
    ExecStart=$ORACLE_HOME/bin/lsnrctl start
    ExecStop=$ORACLE_HOME/bin/lsnrctl stop
    ExecReload=$ORACLE_HOME/bin/lsnrctl reload
    User=oracle
    Group=oinstall
    Restart=on-failure

    [Install]
    WantedBy=multi-user.target

  • 启用与操作

    • 重载并启动:sudo systemctl daemon-reload && sudo systemctl enable –now oracle-listener
    • 查看状态:sudo systemctl status oracle-listener
  • 使用 systemd 可确保监听器随系统启动、统一日志与故障重启。

五 故障排查要点

  • 端口与进程
    • 检查监听端口:ss -lntp | grep 1521netstat -an | grep 1521
    • 若端口被占用,换端口或释放占用进程后再启动监听器。
  • 监听状态与服务注册
    • lsnrctl status 查看监听地址、端口与已注册服务;lsnrctl services 核对 SID/SERVICE_NAME 是否出现。
  • 客户端连通
    • 先用 tnsping 验证解析与连通,再用 sqlplus 测试登录;必要时在客户端 tnsnames.ora 中使用 IP 而非主机名以规避 DNS 问题。
  • 防火墙与云安全组
    • 确认 UFW/firewalld 与云厂商安全组已放行对应 TCP 端口。
  • 日志与跟踪
    • 提高日志与跟踪级别定位疑难:lsnrctl trace_level_listener 16lsnrctl trace_level_server 16,检查 $ORACLE_HOME/diag/tnslsnr/ 下日志。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1455980.html

(0)
派派
上一篇 2025-11-21
下一篇 2025-11-21

发表回复

登录后才能评论