首页主机资讯centos sqlplus配置文件详解

centos sqlplus配置文件详解

时间2025-11-26 17:02:03发布访客分类主机资讯浏览1068
导读:CentOS 上 SQL*Plus 的配置文件与生效机制 在 CentOS 环境中,SQLPlus 的行为由三类配置共同决定:系统级环境设置、网络与服务解析配置、SQLPlus 启动脚本。下面按“文件/变量—位置—作用—示例”的结构进行详解...

CentOS 上 SQL*Plus 的配置文件与生效机制

在 CentOS 环境中,SQLPlus 的行为由三类配置共同决定:系统级环境设置、网络与服务解析配置、SQLPlus 启动脚本。下面按“文件/变量—位置—作用—示例”的结构进行详解,便于快速定位与定制。

一 系统级环境与库路径配置

  • 关键变量与典型位置
    • ORACLE_HOME:Oracle 客户端/服务端根目录。Instant Client 常见路径如:/usr/lib/oracle/21.6/client64/opt/oracle/instantclient_19_8。服务端默认在如 /home/oracle/app/oracle/product/12.2.0/dbhome_1
    • LD_LIBRARY_PATH:动态库搜索路径,通常指向 $ORACLE_HOME/lib
    • PATH:将 $ORACLE_HOME/bin 加入可执行路径。
    • TNS_ADMIN:指定 tnsnames.ora、sqlnet.ora 等网络配置目录;若未设置,SQL*Plus 通常会在 $ORACLE_HOME/network/admin 查找。
    • 持久化方式:写入 ~/.bashrc/etc/profile/etc/profile.d/oracle.sh 并执行 source 使其生效。
  • 示例(Instant Client,写入 /etc/profile.d/oracle.sh)
    • 文件:/etc/profile.d/oracle.sh
      export ORACLE_HOME=/opt/oracle/instantclient_19_8
      export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
      export PATH=$ORACLE_HOME:$PATH
      # 可选:若使用 tnsnames.ora
      export TNS_ADMIN=$ORACLE_HOME/network/admin
      
    • 生效:source /etc/profile.d/oracle.sh
  • 示例(RPM 安装的 12.2 客户端,写入 ~/.bashrc)
    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=$PATH:$ORACLE_HOME/bin
    # 可选:NLS 字符集
    # export NLS_LANG=AMERICAN_CHINA.ZHS16GBK
    
    • 生效:source ~/.bashrc
  • 库路径注册(RPM 安装常见做法)
    • /etc/ld.so.conf 末尾追加:/usr/lib/oracle/12.2/client64/lib,执行 ldconfig 刷新缓存。
  • 依赖检查
    • 安装 libaiolibnsl 等依赖,避免运行时报库缺失:
      sudo yum install libaio libaio-devel
      以上要点涵盖了 Instant Client 与 RPM 安装的目录差异、环境变量设置与生效方式、库路径注册及依赖检查。

二 网络与服务解析配置

  • 核心文件与作用
    • tnsnames.ora:定义服务别名(TNS),便于使用别名连接数据库。
    • sqlnet.ora:定义命名方法、日志与跟踪、SQL*Net 参数等。
  • 典型位置
    • 若设置了 TNS_ADMIN,则在该目录下;否则默认在 $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
      以上说明了 tnsnames.ora 的作用、位置与典型连接写法,以及 EZConnect 直连方式。

三 SQL*Plus 启动脚本配置

  • 文件与作用
    • glogin.sql(全局):位于 $ORACLE_HOME/sqlplus/admin/glogin.sql,对所有用户生效,适合统一规范。
    • login.sql(用户/目录级):默认在当前工作目录查找;若设置了 SQLPATH,则在 SQLPATH 指定目录查找。login.sql 的优先级高于 glogin.sql。
  • 典型内容与效果
    -- 设置默认编辑器
    define _editor=vim
    
    -- 输出与格式
    set serveroutput on size unlimited
    set trimspool on
    set long 5000
    set linesize 120
    set pagesize 9999
    column plan_plus_exp format a100
    
    -- 自定义提示符(显示 用户@连接标识)
    set sqlprompt '&
        _user.@&
        _connect_identifier.>
        '
    
  • 设置 SQLPATH(示例)
    • ~/.bashrc/etc/profile.d/oracle.sh 中添加:
      export SQLPATH=$ORACLE_HOME/sqlplus/admin:$HOME/sqlplus
  • 生效方式
    • 重新登录 SQL*Plus 即可自动执行;脚本按“先 glogin.sql,后 login.sql(含 SQLPATH 路径)”的顺序加载。
      以上覆盖了 glogin.sql 与 login.sql 的用途、位置、优先级与常用设置示例。

四 快速排错与验证

  • 基础验证
    • 查看版本:sqlplus -v
    • 无密码登录:sqlplus /nolog,确认命令可用后再连接。
  • 库加载问题
    • 若出现找不到库,检查 LD_LIBRARY_PATH 或执行 ldconfig 刷新;RPM 安装建议确认 /etc/ld.so.conf 已包含客户端 lib 目录。
  • 连接问题
    • 使用 EZConnect 直连排除 tnsnames.ora 影响:sqlplus user/pass@//host:1521/service
    • 服务端/网络侧确认监听与端口:
      • 监听状态:lsnrctl status
      • 防火墙放行(若本机为客户端且访问远端):firewall-cmd --zone=public --add-port=1521/tcp --permanent & & firewall-cmd --reload
  • 配置加载顺序
    • 登录时先执行 $ORACLE_HOME/sqlplus/admin/glogin.sql,再执行当前目录或 SQLPATH 下的 login.sql;若未生效,优先检查 SQLPATH 与当前工作目录是否正确。
      以上步骤可快速定位环境与网络配置问题,并验证 SQL*Plus 是否按预期加载脚本。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos sqlplus配置文件详解
本文地址: https://pptw.com/jishu/756852.html
centos sqlplus安全设置方法 CentOS Syslog与ELK Stack集成实践

游客 回复需填写必要信息