Ubuntu 下使用 lsnrctl 进行 Oracle 监听网络配置
一 常用命令与入口
- 管理命令
- 启动/停止/重启:lsnrctl start|stop|reload
- 查看状态与已注册服务:lsnrctl status、lsnrctl services
- 在线修改参数:lsnrctl set =;查看参数:lsnrctl get
- 配置文件路径
- 监听器配置:$ORACLE_HOME/network/admin/listener.ora
- 客户端解析(可选):$ORACLE_HOME/network/admin/tnsnames.ora
- 运行身份
- 建议使用 oracle 用户或具备相应权限的用户执行上述命令。
二 配置监听端口
- 编辑配置文件
- 使配置生效
- 完全重启:lsnrctl stop → lsnrctl start
- 或在线重载:lsnrctl reload
- 验证
- lsnrctl status 应显示新端口处于 READY 状态
- 注意事项
- 变更前确认新端口未被占用,并通知依赖方更新连接串
- 如启用防火墙,放行新端口(见第四节)
三 配置监听地址
- 绑定到指定主机或 IP
- 应用与验证
- 使配置生效:lsnrctl stop/start 或 lsnrctl reload
- 验证:lsnrctl status 中的监听地址应为所设 HOST 与 PORT
- 提示
- 主机名需能在本机正确解析(/etc/hosts 或 DNS),否则监听可能失败或绑定异常
四 多监听与防火墙要点
- 管理多个监听器
- 在 listener.ora 中定义多个监听器(如 LISTENER1、LISTENER2)
- 启动/停止指定监听器:lsnrctl start LISTENER1、lsnrctl stop LISTENER2
- 查看全局状态:lsnrctl status
- 防火墙与安全组
- 放行监听端口(如 1521/1522):
- UFW:sudo ufw allow 1522/tcp
- firewalld:sudo firewall-cmd --add-port=1522/tcp --permanent && sudo firewall-cmd --reload
- 云服务器需同步开放安全组对应端口
- 日志与排错
- 监听日志:$ORACLE_HOME/network/log/listener.log
- 动态查看:tail -f $ORACLE_HOME/network/log/listener.log
- 常见故障:端口被占用、HOST 解析错误、防火墙未放行、权限不足