温馨提示×

centos里sqlplus环境配置步骤

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

CentOS 上配置 SQL*Plus 环境步骤

一 准备与安装

  • 确认系统为 x86_64,安装基础依赖:libaio、libnsl、compat-libstdc+±33(以 CentOS 7 为例:sudo yum install -y libaio libnsl compat-libstdc++-33)。
  • 从 Oracle 官网下载 Instant ClientBasicSQL*Plus RPM 包(版本建议与数据库匹配,如 19.x/21.x),例如:
    • oracle-instantclient19.9-basic-19.9.0.0.0-1.x86_64.rpm
    • oracle-instantclient19.9-sqlplus-19.9.0.0.0-1.x86_64.rpm
  • 安装 RPM(root 或 sudo):
    • sudo yum localinstall oracle-instantclient*.rpm
    • sudo rpm -ivh oracle-instantclient-basic-*.rpm oracle-instantclient-sqlplus-*.rpm
  • 安装完成后,Instant Client 默认目录为:/usr/lib/oracle/<版本>/client64(如 /usr/lib/oracle/19.9/client64)。

二 环境变量与库路径

  • 推荐在 /etc/profile.d/oracle.sh 中统一配置(系统级对所有用户生效):
    • sudo tee /etc/profile.d/oracle.sh <<'EOF'
      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
      EOF
    • 使配置生效:source /etc/profile
  • 若不想用脚本,也可写入当前用户 ~/.bashrc
    • echo 'export ORACLE_HOME=/usr/lib/oracle/19.9/client64' >> ~/.bashrc
    • echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> ~/.bashrc
    • echo 'export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
    • echo 'export TNS_ADMIN=$ORACLE_HOME/network/admin' >> ~/.bashrc
    • echo 'export NLS_LANG=AMERICAN_AMERICA.AL32UTF8' >> ~/.bashrc
    • source ~/.bashrc
  • 可选:注册动态库缓存(部分环境需要)
    • echo /usr/lib/oracle/19.9/client64/lib | sudo tee /etc/ld.so.conf.d/oracle-instantclient.conf
    • sudo ldconfig

三 配置 TNS 与服务名连接

  • 创建网络配置目录并编辑 tnsnames.ora
    • mkdir -p $TNS_ADMIN
    • vi $TNS_ADMIN/tnsnames.ora
  • 示例内容(按实际修改 HOST、PORT、SERVICE_NAME):
    • ORCL =
      • (DESCRIPTION =
        • (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver.example.com)(PORT = 1521))
        • (CONNECT_DATA =
          • (SERVER = DEDICATED)
          • (SERVICE_NAME = orcl.example.com)
        • )
      • )
  • 说明:若本机已安装 Oracle 数据库服务端,其 $ORACLE_HOME/network/admin 下通常已有 tnsnames.ora,可直接使用或软链到客户端目录。

四 连接测试与常见排错

  • 直连方式(无需 TNS):
    • sqlplus username/password@//dbserver.example.com:1521/orcl.example.com
  • TNS 别名方式:
    • sqlplus username/password@ORCL
  • 基本诊断:
    • 监听与端口:telnet dbserver.example.com 1521nc -vz dbserver.example.com 1521
    • 常见错误:
      • ORA-12154:检查 TNS_ADMIN 路径、tnsnames.ora 别名拼写与权限。
      • ORA-12541:目标主机 1521 端口未开放或未启动监听。
      • LIBRARY PATH 缺失:确认 LD_LIBRARY_PATH 包含 $ORACLE_HOME/lib,必要时执行 ldconfig $ORACLE_HOME/lib
      • ORA-01017:用户名/密码错误,若含特殊字符,使用双引号包裹(如 "user/\"p@ss\"@ORCL")。

五 使用优化与扩展

  • 命令历史与回滚:安装 rlwrap 并创建别名
    • sudo yum install -y rlwrap
    • echo "alias sqlplus='rlwrap sqlplus'" >> ~/.bashrc && source ~/.bashrc
  • SQL*Plus 登录美化:在 $ORACLE_HOME/sqlplus/admin/glogin.sql 或用户登录脚本中设置
    • SET PAGESIZE 10000
    • SET LINESIZE 200
    • SET NUMFORMAT 999999999999.99
  • 客户端工具扩展:按需安装 oracle-instantclient-tools、oracle-instantclient-devel、ODBC 等包,以支持 RMAN、Pro*C、ODBC 等场景。

0