首页主机资讯Ubuntu lsnrctl网络配置技巧

Ubuntu lsnrctl网络配置技巧

时间2025-11-21 22:34:04发布访客分类主机资讯浏览430
导读:Ubuntu 下 lsnrctl 网络配置技巧 一 基础配置与常用命令 以 oracle 用户操作,确保环境变量正确(如 ORACLE_HOME、ORACLE_SID)。常用命令速览: 启动/停止/状态:lsnrctl start|st...

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/ 下日志。

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


若转载请注明出处: Ubuntu lsnrctl网络配置技巧
本文地址: https://pptw.com/jishu/753784.html
Ubuntu lsnrctl更新流程介绍 Ubuntu lsnrctl权限设置怎么做

游客 回复需填写必要信息