温馨提示×

centos环境下sqlplus配置步骤

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

CentOS 环境下 SQL*Plus 配置步骤

一 准备与安装

  • 确认系统为 x86_64,并安装基础依赖:sudo yum install -y libaio libnsl(部分环境还建议安装 compat-libstdc+±33)。这些库是 Oracle Instant Client 运行所必需的。
  • 选择并安装 Oracle Instant Client(仅需 BasicSQL*Plus 两个包)。两种方式:
    • RPM 安装(推荐):
      • 下载对应版本的 RPM(示例:oracle-instantclient19.9-basic-19.9.0.0.0-1.x86_64.rpmoracle-instantclient19.9-sqlplus-19.9.0.0.0-1.x86_64.rpm
      • 安装:sudo yum localinstall oracle-instantclient*.rpm -y
      • 安装后客户端默认目录为:/usr/lib/oracle/19.9/client64/
    • ZIP 安装:
      • 下载 Basic 与 SQL*Plus 的 ZIP 包,解压到如 /opt/oracle/instantclient
        以上步骤完成后,即可使用 sqlplus 命令(若提示找不到命令,请检查 PATH 设置)。

二 环境变量与库路径

  • 建议通过 /etc/profile.d/oracle.sh 统一配置(对系统所有用户生效):
    • 编辑:sudo vim /etc/profile.d/oracle.sh
    • 内容(以 19.x 为例,路径按实际版本调整):
      • export ORACLE_HOME=/usr/lib/oracle/19.9/client64
      • export PATH=$ORACLE_HOME/bin:$PATH
      • export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
      • export TNS_ADMIN=$ORACLE_HOME/network/admin
      • export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    • 使配置生效:source /etc/profile.d/oracle.sh(或重新登录)。
  • 如使用 ZIP 包或 RPM 安装后仍有库加载问题,可将库目录加入动态链接缓存:
    • echo “/usr/lib/oracle/19.9/client64/lib” | sudo tee /etc/ld.so.conf.d/oracle-instantclient.conf
    • sudo ldconfig
  • 说明:SQL*Plus 依赖的关键变量包括 ORACLE_HOME、LD_LIBRARY_PATH、PATH、TNS_ADMIN、NLS_LANG,其中 NLS_LANG 用于控制客户端字符集与全球化行为。

三 配置 TNS 与直连连接

  • 创建网络配置目录并编辑 tnsnames.ora
    • mkdir -p $TNS_ADMIN
    • vi $TNS_ADMIN/tnsnames.ora
  • 示例条目:
    • ORCL =
      • (DESCRIPTION =
        • (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver.example.com)(PORT = 1521))
        • (CONNECT_DATA =
          • (SERVER = DEDICATED)
          • (SERVICE_NAME = orcl.example.com)
        • )
      • )
  • 连接测试:
    • 使用 TNS 别名:sqlplus username/password@ORCL
    • 使用 EZConnect 直连:sqlplus username/password@//dbserver:1521/orcl.example.com
  • 若使用本机安装的 Oracle 数据库服务端,通常无需再装客户端;服务端自带的 sqlplus 可直接使用(注意 ORACLE_HOME 指向服务端目录)。

四 验证与常见错误

  • 验证安装与版本:
    • sqlplus -v(查看客户端版本)
    • sqlplus /nolog(仅进入命令行,不连接数据库)
  • 常见错误与排查:
    • ORA-12154:TNS 别名无法解析。检查 $TNS_ADMIN/tnsnames.ora 是否存在、别名拼写是否正确、文件与目录权限是否合适。
    • ORA-12541:监听未启动或端口不通。在数据库服务器执行:lsnrctl status;从客户端测试:telnet dbserver 1521
    • ORA-01017:用户名或密码错误,或包含特殊字符需转义(必要时用双引号包裹密码)。
    • 库加载失败:确认 LD_LIBRARY_PATH 包含 $ORACLE_HOME/lib,或已执行 ldconfig 刷新缓存。
  • 连接成功将进入 SQL> 提示符,可进一步执行 SQL 或退出:exit。

五 可选优化与扩展

  • 命令历史与回滚:安装 rlwrap 并创建别名,提升交互体验。
    • sudo yum install -y rlwrap
    • echo “alias sqlplus=‘rlwrap sqlplus’” >> ~/.bashrc && source ~/.bashrc
  • 登录脚本与输出美化:在 $SQLPATH 或当前目录放置 glogin.sqllogin.sql,设置常用格式(如 PAGESIZE、LINESIZE、NUMFORMAT)。
  • 客户端工具扩展:按需安装 oracle-instantclient-tools、oracle-instantclient-devel、ODBC 相关包,以支持 RMAN、开发头文件与 ODBC 连接。

0