在 CentOS 上升级 SQL*Plus 的两种可靠做法
升级前准备
sudo yum install -y libaio方式一 ZIP 包升级步骤
unzip instantclient-basic-linux.x64-<version>.zip -d /usr/local
unzip instantclient-sqlplus-linux.x64-<version>.zip -d /usr/local
mv /usr/local/instantclient_<ver> /usr/local/sqlplus_<ver>
cd /usr/local/sqlplus_<ver>
mkdir -p lib
mv *.so* lib/
chmod +x sqlplus
ln -sfn /usr/local/sqlplus_<ver>/sqlplus /usr/local/bin/sqlplus
echo 'export LD_LIBRARY_PATH=/usr/local/sqlplus_<ver>/lib:$LD_LIBRARY_PATH' | sudo tee /etc/profile.d/instantclient.shecho 'export LD_LIBRARY_PATH=/usr/local/sqlplus_<ver>/lib:$LD_LIBRARY_PATH' >> ~/.bash_profilesource /etc/profile.d/instantclient.sh 或 source ~/.bash_profilesqlplus -v
sqlplus /nolog
ln -sfn /usr/local/sqlplus_<old>/sqlplus /usr/local/bin/sqlplus)。方式二 RPM 包升级步骤
sudo rpm -Uvh oracle-instantclient<ver>-basic-<ver>.x86_64.rpm
sudo rpm -Uvh oracle-instantclient<ver>-sqlplus-<ver>.x86_64.rpm
sudo rpm -e oracle-instantclient<ver>-basic-<ver>.x86_64 与 sudo rpm -e oracle-instantclient<ver>-sqlplus-<ver>.x86_64echo 'export ORACLE_HOME=/usr/lib/oracle/<ver>/client64' | sudo tee /etc/profile.d/instantclient.sh
echo 'export PATH=$ORACLE_HOME/bin:$PATH' | sudo tee -a /etc/profile.d/instantclient.sh
echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH' | sudo tee -a /etc/profile.d/instantclient.sh
source /etc/profile.d/instantclient.sh
sqlplus -v
sqlplus /nolog
rpm -Uvh --oldpackage 安装旧版本 RPM,或 rpm -e 卸载后重装旧包。验证与常见问题处理
sqlplus -vsqlplus /nolog,或 sqlplus user/pass@//host:1521/serviceecho $LD_LIBRARY_PATH 是否包含新版本的 lib 目录/usr/local/bin/sqlplus 软链接是否指向新版本chmod +r /usr/local/sqlplus_<ver>/lib/*.so*