温馨提示×

centos中sqlplus版本升级方法

小樊
44
2025-12-31 04:49:24
栏目: 云计算

CentOS 上升级 SQL*Plus 的可行路径

  • CentOS 上,SQL*Plus 通常随 Oracle Instant Client 提供。升级思路是:准备新版本 Instant Client(选择与系统架构匹配的 Linux x86-64 包),按当前安装方式(ZIP 或 RPM)执行“覆盖式升级”,并更新环境变量或系统库缓存,使新版本生效。Instant Client 提供 basic/basiclitesqlplus 两个必需包,且高版本客户端一般可连接低版本数据库;注意 19c+glibc 有要求,升级前请确认系统满足要求。

升级前检查

  • 查看现有版本:sqlplus -v
  • 确认安装方式与目录:
    • RPM 常见目录为 /usr/lib/oracle/<版本>/client64(如 12.221.1)。
    • ZIP 解压目录可自定义(如 /usr/local/sqlplus_<版本>)。
  • 检查依赖与系统库:确保已安装 libaio,并确认 glibc 版本满足目标 Instant Client 的要求(特别是 19c+)。
  • 规划网络与认证文件:如使用 Oracle Wallet(常见于云数据库),升级后仍需使用同一套 Walletsqlnet.ora/tnsnames.ora(由 TNS_ADMIN 指定)。

升级步骤

  • ZIP 方式(通用、便于多版本并存)

    1. 备份旧目录与环境变量配置。
    2. 下载新版本 sqlplusbasic/basiclite,解压到同一目录(如 /usr/local/sqlplus_21_1)。
    3. 若目录中缺少链接库,创建符号链接:ln -s libclntsh.so.<新版本> libclntsh.so
    4. 更新软链接:ln -sfn /usr/local/sqlplus_21_1/sqlplus /usr/local/bin/sqlplus
    5. 更新环境变量(建议写入 /etc/profile 或用户 profile):
      • export LD_LIBRARY_PATH=/usr/local/sqlplus_21_1:$LD_LIBRARY_PATH
      • export PATH=/usr/local/sqlplus_21_1:$PATH
    6. 使配置生效:source /etc/profile,验证:sqlplus -v
      说明:ZIP 升级与安装流程基本一致,关键在于替换解压目录、更新软链接与库路径。
  • RPM 方式(系统级、便于用包管理)

    1. 备份并查看已装包:rpm -qa | grep oracle-instantclient
    2. 下载新版本 basicsqlplus 的 RPM。
    3. 执行升级(推荐):rpm -Uvh oracle-instantclient21.1-basic-*.rpm oracle-instantclient21.1-sqlplus-*.rpm;如需回滚,可先 rpm -e 旧包再安装新包。
    4. RPM 安装后通常无需手动创建 libclntsh.so 链接。
    5. 更新环境变量(如 /etc/profile):
      • export ORACLE_HOME=/usr/lib/oracle/21.1/client64
      • export PATH=$ORACLE_HOME/bin:$PATH
      • export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    6. 使配置生效:source /etc/profile,验证:sqlplus -v
      说明:RPM 的升级可用 rpm -Uvh 完成;若遇到冲突或需并行多版本,优先采用 ZIP 方式。

验证与常见问题

  • 验证命令:sqlplus -v 显示新版本;sqlplus /nolog 可进一步测试启动与库加载。
  • 库加载失败:检查 LD_LIBRARY_PATH 是否指向新目录;或改用 ldconfig
    • echo /usr/local/sqlplus_21_1 > /etc/ld.so.conf.d/oic.conf && ldconfig(ZIP 场景)。
  • 多版本并存:通过更新 /usr/local/bin/sqlplus 软链接或在 PATH 中调整目录顺序切换版本。
  • 字符集与提示:若需中文提示,选择 basic 而非 basiclite(basiclite 仅含英文错误信息与有限字符集)。
  • 环境变量要点:LD_LIBRARY_PATH 用于指定库搜索路径;PATH 确保找到 sqlplus 可执行文件;ORACLE_HOMETNS_ADMIN 用于定位消息文件与网络配置(如 sqlnet.ora/tnsnames.oraWallet)。

0