温馨提示×

centos里sqlplus环境如何配置

小樊
39
2025-12-21 11:27:53
栏目: 云计算

在 CentOS 上配置 SQL*Plus 的推荐做法


一 准备与安装

  • 选择安装方式:优先使用 Oracle Instant Client RPM,也可用 ZIP 包;若本机已安装 Oracle 数据库服务端,可直接使用自带的 sqlplus,无需再装客户端。
  • 安装依赖(Instant Client 需要):
    sudo yum install -y libaio libaio-devel
  • RPM 安装示例(以 12.2 为例,两个包都要装):
    sudo yum install -y oracle-instantclient12.2-basic-.x86_64.rpm
    sudo yum install -y oracle-instantclient12.2-sqlplus-
    .x86_64.rpm
    安装后客户端默认目录通常为:/usr/lib/oracle/12.2/client64
  • 如需 ZIP 安装:下载 Basic 与 SQL*Plus 两个 ZIP,解压到同一目录(如 /opt/oracle/instantclient_XX_X),后续通过环境变量使用。

二 环境变量与库路径

  • RPM 安装的推荐配置(写入 ~/.bashrc/etc/profile.d/oracle.sh):
    export ORACLE_HOME=/usr/lib/oracle/12.2/client64
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    export PATH=$ORACLE_HOME/bin:$PATH
    使配置生效:source ~/.bashrc 或 source /etc/profile.d/oracle.sh。
  • ZIP 安装的推荐配置(ORACLE_HOME 指向解压目录):
    export ORACLE_HOME=/opt/oracle/instantclient_XX_X
    export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
    export PATH=$ORACLE_HOME:$PATH
  • 若采用系统库缓存方式(RPM 也可用):在 /etc/ld.so.conf 末尾添加
    /usr/lib/oracle/12.2/client64/lib
    然后执行:sudo ldconfig。

三 配置网络连接

  • 创建网络配置目录与文件:
    sudo mkdir -p $ORACLE_HOME/network/admin
    sudo vim $ORACLE_HOME/network/admin/tnsnames.ora
  • tnsnames.ora 示例:
    MYDB =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = your_service_name)
    )
    )
  • 说明:如本机是 Oracle 服务器,监听与 tnsnames.ora 通常在 $ORACLE_HOME/network/admin 已存在;仅客户端需自建。

四 验证与连接测试

  • 版本检查:
    sqlplus -v
  • 本地“空登录”测试(不连库,验证 sqlplus 可用):
    sqlplus /nolog
  • 连接测试(三种常用写法):
    • 使用 TNS 别名:sqlplus username/password@MYDB
    • 使用 EZConnect:sqlplus username/password@//hostname:1521/service_name
    • 使用 SID(部分库仍支持):sqlplus username/password@hostname:1521/SID
  • 网络连通与监听检查:
    tnsping MYDB
    lsnrctl status(服务器端)

五 常见问题与排查

  • 命令未找到:检查 PATH 是否包含 $ORACLE_HOME/bin;RPM 安装路径一般为 /usr/lib/oracle/12.2/client64/bin
  • 库加载失败:确认 LD_LIBRARY_PATH 包含 $ORACLE_HOME/lib,或已执行 ldconfig 刷新缓存。
  • TNS 无法解析:核对 tnsnames.oraHOST/PORT/SERVICE_NAME 与服务器一致,且目录由 TNS_ADMIN 正确指向。
  • 监听问题:服务器端执行 lsnrctl status 查看监听端口(默认 1521)与服务映射。
  • 字符集:如出现中文乱码,可设置 NLS_LANG,例如:
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK(或 AMERICAN_CHINA.ZHS16GBK)。

0