温馨提示×

centos中sqlplus环境配置步骤

小樊
41
2025-12-15 13:02:50
栏目: 云计算

CentOS 中 SQL*Plus 环境配置步骤

一 准备与安装

  • 选择安装方式:推荐使用 Oracle Instant Client(轻量、仅含客户端工具)。从 Oracle 官网下载与系统架构匹配的包,至少需要 BasicSQL*Plus 两个包,版本建议保持一致(如 19c21c)。
  • RPM 安装(推荐):将下载的 RPM 上传至服务器后执行
    sudo yum localinstall oracle-instantclient-basic-<版本>.x86_64.rpm oracle-instantclient-sqlplus-<版本>.x86_64.rpm
    安装完成后,Instant Client 通常位于 /usr/lib/oracle/<版本>/client64(例如 /usr/lib/oracle/21.6/client64)。
  • ZIP 安装:将 ZIP 解压到统一目录(如 /opt/oracle/instantclient_<版本>),后续通过环境变量指向该目录。
  • 依赖检查:确保安装 libaio(Instant Client 必需)
    sudo yum install -y libaio

二 环境变量与库路径

  • 设置环境变量(写入 ~/.bashrc/etc/profile.d/oracle.sh,二选一,后者便于系统级生效):
    export ORACLE_HOME=/usr/lib/oracle/21.6/client64
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    export PATH=$ORACLE_HOME/bin:$PATH

    可选:指定 tnsnames.ora 目录

    export TNS_ADMIN=$ORACLE_HOME/network/admin

    可选:字符集(按需)

    export NLS_LANG=AMERICAN_AMERICA.UTF8
    使配置生效:source ~/.bashrc 或 source /etc/profile.d/oracle.sh。
  • 库路径注册(RPM 安装强烈建议执行,避免 “libsqlplus.so 找不到” 等动态库错误):
    echo “$ORACLE_HOME/lib” | sudo tee /etc/ld.so.conf.d/oracle-instantclient.conf
    sudo ldconfig
  • 说明:SQL*Plus 在 UNIX/Linux 上依赖 LD_LIBRARY_PATH 定位共享库;ORACLE_HOME 指向客户端安装目录;TNS_ADMIN 指定 tnsnames.ora 所在目录;NLS_LANG 控制全球化行为。

三 配置 TNS 与便捷连接

  • 创建网络配置目录与文件:
    sudo mkdir -p $ORACLE_HOME/network/admin
    sudo vi $ORACLE_HOME/network/admin/tnsnames.ora
  • 示例条目:
    MYDB =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db.example.com)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = myservice)
    )
    )
  • 连接测试:
    sqlplus username/password@MYDB
    或使用 EZConnect
    sqlplus username/password@//db.example.com:1521/myservice
  • 免 TNS 的替代方式:设置 TWO_TASK(UNIX/Linux)
    export TWO_TASK=MYDB
    sqlplus hr
    等价于 sqlplus hr@MYDB。

四 验证与常见问题

  • 验证安装:
    sqlplus -v
    正常会输出版本号(如 SQL*Plus: Release 21.0.0.0.0)。
  • 连接测试:
    sqlplus /nolog
    SQL> connect username/password@MYDB
    或直接使用 EZConnect 登录。
  • 常见问题与处理:
    • 动态库错误(如 “sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file”):确认已执行 ldconfig 或正确设置 LD_LIBRARY_PATH
    • 找不到 tnsnames.ora:确认 TNS_ADMIN 指向包含 network/admin/tnsnames.ora 的目录,或使用 TWO_TASK/EZConnect。
    • 字符集乱码:设置 NLS_LANG(如 AMERICAN_AMERICA.UTF8)与数据库侧保持一致。
    • 命令历史与编辑:安装 rlwrap 并配置别名可提升体验
      sudo yum install -y rlwrap
      echo “alias sqlplus=‘rlwrap sqlplus’” >> ~/.bashrc && source ~/.bashrc。

0