Ubuntu lsnrctl更新流程介绍
导读:Ubuntu 上 lsnrctl 更新流程 一 前置说明与准备 lsnrctl 是 Oracle Net Listener 的命令行管理工具,随 Oracle Database 或 Oracle Instant Client 提供,并非...
Ubuntu 上 lsnrctl 更新流程
一 前置说明与准备
- lsnrctl 是 Oracle Net Listener 的命令行管理工具,随 Oracle Database 或 Oracle Instant Client 提供,并非 Ubuntu 系统自带命令。更新它本质上是更新 Oracle 客户端/数据库软件或替换相应二进制文件。操作前务必完成:
- 完整备份(数据库、监听配置、应用连接串、服务器与网络拓扑)。
- 选择维护时间窗并通知业务方。
- 准备回退方案(旧安装介质、参数与配置备份、快照/克隆)。
- 确认当前环境:Oracle 版本、安装形态(RPM/DEB 还是 ZIP)、监听名称与端口、是否使用 systemd 托管。
- 准备新版本安装包与校验信息(Oracle 官方下载、补丁说明、兼容性矩阵)。
二 通过 APT 更新 Instant Client 或数据库软件包
- 适用于通过 DEB 包 安装的 Oracle Instant Client 或 Oracle Database 组件(含 lsnrctl)。
- 更新索引与可升级列表:
sudo apt update
apt list --upgradable - 执行升级(按实际包名):
sudo apt upgrade oracle-instantclient-basic
或
sudo apt upgrade oracle-database-preinstall-23c - 如需修复/重装:
sudo apt install --reinstall oracle-instantclient-basic - 验证:
which lsnrctl
lsnrctl version - 注意:Instant Client 的 DEB 包通常不包含监听功能;若需 lsnrctl 管理监听,请安装包含监听组件的包(如 Basic + SQL*Plus 或完整客户端/数据库软件),或改用 ZIP 安装形态。
- 更新索引与可升级列表:
三 通过 ZIP 包更新 Oracle 客户端或数据库
- 适用于 ZIP 形态(Instant Client/数据库)或需要并行保留多版本的场景。
- 停止监听与相关服务:
lsnrctl stop如使用 systemd 托管监听,可先 systemctl stop oracle-listener(按实际单元名)
- 备份旧目录与配置:
cp -a $ORACLE_HOME $ORACLE_HOME.bak_$(date +%F)
cp $ORACLE_HOME/network/admin/listener.ora $ORACLE_HOME/network/admin/listener.ora.bak - 解压新版本到新目录(避免覆盖):
unzip instantclient-basic-linux.x64-23.6.0.0.0dbru.zip -d /opt/oracle/
unzip instantclient-sqlplus-linux.x64-23.6.0.0.0dbru.zip -d /opt/oracle/ - 调整环境变量(示例):
export ORACLE_HOME=/opt/oracle/instantclient_23_6
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH如使用 Instant Client 且需解析别名,可设置 TNS_ADMIN 指向 $ORACLE_HOME/network/admin
- 如为数据库软件升级,按官方安装程序执行(runInstaller),完成后按需更新 listener.ora、sqlnet.ora。
- 启动监听并验证:
lsnrctl start
lsnrctl status - 回退要点:恢复原 ORACLE_HOME、环境变量与 listener.ora,再 lsnrctl start。
- 停止监听与相关服务:
四 更新后的验证与常见问题
- 版本与连通性验证:
- 版本:lsnrctl version
- 状态:lsnrctl status(检查监听端口、服务映射、日志路径)
- 连通:sqlplus user/pass@//host:port/service
- 常见问题与处理:
- 命令未找到:检查 PATH/LD_LIBRARY_PATH/ORACLE_HOME 是否指向新目录;确认安装包是否包含监听组件。
- 库加载失败:确认 LD_LIBRARY_PATH 包含新 Instant Client 目录;必要时安装 libaio1 等依赖。
- 监听端口被占用:检查 netstat/ss,释放端口或调整 listener.ora。
- 权限问题:确保 Oracle 目录与日志文件属主/权限正确(如 oracle:oinstall)。
- 升级后应用连不通:核对 listener.ora/sqlnet.ora 中的 SERVICE_NAME、SID、加密/认证参数与客户端一致。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu lsnrctl更新流程介绍
本文地址: https://pptw.com/jishu/753783.html
