centos上sqlplus版本升级方法
导读:CentOS上升级 SQL*Plus 的可行路径 在 CentOS 上,SQL*Plus 通常随 Oracle Instant Client 或 Oracle Database 安装。升级时建议采用“并行安装新版本 + 切换环境变量/软链...
CentOS上升级 SQL*Plus 的可行路径
- 在 CentOS 上,SQL*Plus 通常随 Oracle Instant Client 或 Oracle Database 安装。升级时建议采用“并行安装新版本 + 切换环境变量/软链接”的方式,避免影响现有业务。升级前务必做好环境与数据的备份,并确认新版本与数据库的兼容性(高版本客户端一般可连接低版本数据库,但以兼容性矩阵为准)。
升级前检查
- 查看当前版本:
sqlplus -v - 检查库路径:
echo $LD_LIBRARY_PATH、echo $PATH - 若通过服务脚本或应用调用 sqlplus,记录其调用方式(绝对路径或 PATH 顺序),便于回滚与切换
- 兼容性核对:确认目标 sqlplus 版本与数据库版本匹配;必要时先在测试环境验证
方式一 使用 RPM 升级 Instant Client(推荐,便于回滚)
- 1)安装新版本(示例为 12.2,可按需替换为 19/21/23 等)
- 下载匹配系统的 RPM 包(需同时有 Basic 与 SQL*Plus 包):
- oracle-instantclient12.2-basic-*.x86_64.rpm
- oracle-instantclient12.2-sqlplus-*.x86_64.rpm
- 安装或升级:
- 全新安装:
sudo rpm -ivh oracle-instantclient12.2-basic-*.rpm oracle-instantclient12.2-sqlplus-*.rpm - 就地升级:
sudo rpm -Uvh oracle-instantclient12.2-basic-*.rpm oracle-instantclient12.2-sqlplus-*.rpm
- 全新安装:
- 安装后客户端目录通常为:/usr/lib/oracle/12.2/client64(包含 bin、lib)。
- 下载匹配系统的 RPM 包(需同时有 Basic 与 SQL*Plus 包):
- 2)切换版本(两种做法,二选一)
- 软链接方式(系统级,便于全局切换):
- 备份旧链接:
sudo mv /usr/local/bin/sqlplus /usr/local/bin/sqlplus.bak_$(date +%F) - 建立新链接(指向新版本):
sudo ln -sfn /usr/lib/oracle/12.2/client64/bin/sqlplus /usr/local/bin/sqlplus - 如需 lib 路径也做链接:
sudo ln -sfn /usr/lib/oracle/12.2/client64/lib /usr/local/lib/oracle_instantclient_12_2
- 备份旧链接:
- 环境变量方式(用户级或脚本级,灵活可控):
- 在用户环境(如
~/.bashrc或/etc/profile.d/oracle.sh)中设置:export ORACLE_HOME=/usr/lib/oracle/12.2/client64export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
- 使配置生效:
source ~/.bashrc或source /etc/profile
- 在用户环境(如
- 软链接方式(系统级,便于全局切换):
- 3)验证
sqlplus -v应显示新版本sqlplus /nolog可正常进入(无报错)
- 4)回滚
- 软链接回退:
sudo ln -sfn /usr/local/bin/sqlplus.bak_YYYY-MM-DD /usr/local/bin/sqlplus - RPM 回退:
sudo rpm -Uvh --oldpackage oracle-instantclient12.2-basic-< 旧版本> .rpm oracle-instantclient12.2-sqlplus-< 旧版本> .rpm
- 软链接回退:
- 说明
- RPM 升级命令使用 -Uvh;如需保留旧包做并行,可先
-ivh安装新版本,再通过软链接切换。
- RPM 升级命令使用 -Uvh;如需保留旧包做并行,可先
方式二 使用 ZIP 升级 Instant Client(并行目录,切换更直观)
- 1)准备新版本
- 下载并解压到独立目录(示例为 /usr/local/sqlplus_21_1):
unzip instantclient-basic-linux.x64-21.1.0.0.0.zip -d /usr/localunzip instantclient-sqlplus-linux.x64-21.1.0.0.0.zip -d /usr/local- 建议将解压目录重命名:
mv /usr/local/instantclient_21_1 /usr/local/sqlplus_21_1
- 下载并解压到独立目录(示例为 /usr/local/sqlplus_21_1):
- 2)建立库目录并归集 .so(部分 ZIP 包需要)
cd /usr/local/sqlplus_21_1 & & mkdir -p lib & & mv *.so* lib/
- 3)切换版本(两种做法,二选一)
- 软链接方式(系统级):
- 备份旧链接:
sudo mv /usr/local/bin/sqlplus /usr/local/bin/sqlplus.bak_$(date +%F) - 指向新版本:
sudo ln -sfn /usr/local/sqlplus_21_1/sqlplus /usr/local/bin/sqlplus - 如需 lib:
sudo ln -sfn /usr/local/sqlplus_21_1/lib /usr/local/lib/oracle_instantclient_21_1
- 备份旧链接:
- 环境变量方式(用户级或脚本级):
- 在
~/.bashrc或/etc/profile.d/oracle.sh中设置:export ORACLE_HOME=/usr/local/sqlplus_21_1export PATH=$ORACLE_HOME:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
- 使配置生效:
source ~/.bashrc或source /etc/profile
- 在
- 软链接方式(系统级):
- 4)验证
sqlplus -v显示新版本sqlplus /nolog正常进入
- 5)回滚
- 软链接回退:
sudo ln -sfn /usr/local/bin/sqlplus.bak_YYYY-MM-DD /usr/local/bin/sqlplus - 或直接改回旧版的环境变量/软链接指向。
- 软链接回退:
环境变量与兼容性要点
- 关键变量
- ORACLE_HOME:指向 sqlplus 安装目录(Instant Client 或数据库 home)
- PATH:包含
$ORACLE_HOME/bin - LD_LIBRARY_PATH:包含
$ORACLE_HOME/lib(Linux/UNIX 必需,用于加载共享库) - 可选:NLS_LANG(字符集/语言)、SQLPATH(登录脚本搜索路径)、TNS_ADMIN(客户端网络配置目录)
- 兼容性
- 一般“高版本 sqlplus 可连低版本数据库”,但建议按 Oracle 支持矩阵与业务回归测试为准。
常见问题快速排查
- 命令找不到或报库缺失
- 检查
echo $PATH与echo $LD_LIBRARY_PATH是否包含新版本目录 - 使用绝对路径测试:
/usr/lib/oracle/12.2/client64/bin/sqlplus -v
- 检查
- 权限问题
- 确认
sqlplus与*.so有可执行/可读权限(如chmod +x /usr/local/sqlplus_21_1/sqlplus,chmod +r /usr/local/sqlplus_21_1/lib/*.so*)
- 确认
- 连接失败
- 核对用户名/口令、服务名/SID、监听端口(默认 1521)
- 网络与防火墙:
ping、telnet 目标主机 1521,必要时放通端口
- 版本兼容
- 若报错与版本相关,优先核对客户端与数据库版本匹配性,再考虑回退或升级数据库侧组件。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos上sqlplus版本升级方法
本文地址: https://pptw.com/jishu/772168.html
