CentOS上升级 SQL*Plus 的可行路径
升级前检查
sqlplus -vecho $LD_LIBRARY_PATH、echo $PATH方式一 使用 RPM 升级 Instant Client(推荐,便于回滚)
sudo rpm -ivh oracle-instantclient12.2-basic-*.rpm oracle-instantclient12.2-sqlplus-*.rpmsudo rpm -Uvh oracle-instantclient12.2-basic-*.rpm oracle-instantclient12.2-sqlplus-*.rpmsudo 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/sqlplussudo 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_PATHsource ~/.bashrc 或 source /etc/profilesqlplus -v 应显示新版本sqlplus /nolog 可正常进入(无报错)sudo ln -sfn /usr/local/bin/sqlplus.bak_YYYY-MM-DD /usr/local/bin/sqlplussudo rpm -Uvh --oldpackage oracle-instantclient12.2-basic-<旧版本>.rpm oracle-instantclient12.2-sqlplus-<旧版本>.rpm-ivh 安装新版本,再通过软链接切换。方式二 使用 ZIP 升级 Instant Client(并行目录,切换更直观)
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/localmv /usr/local/instantclient_21_1 /usr/local/sqlplus_21_1cd /usr/local/sqlplus_21_1 && mkdir -p lib && mv *.so* lib/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/sqlplussudo 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_PATHsource ~/.bashrc 或 source /etc/profilesqlplus -v 显示新版本sqlplus /nolog 正常进入sudo ln -sfn /usr/local/bin/sqlplus.bak_YYYY-MM-DD /usr/local/bin/sqlplus环境变量与兼容性要点
$ORACLE_HOME/bin$ORACLE_HOME/lib(Linux/UNIX 必需,用于加载共享库)常见问题快速排查
echo $PATH 与 echo $LD_LIBRARY_PATH 是否包含新版本目录/usr/lib/oracle/12.2/client64/bin/sqlplus -vsqlplus 与 *.so 有可执行/可读权限(如 chmod +x /usr/local/sqlplus_21_1/sqlplus,chmod +r /usr/local/sqlplus_21_1/lib/*.so*)ping、telnet 目标主机 1521,必要时放通端口