centos sqlplus配置文件详解
导读: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
- 文件:/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刷新缓存。
- 在 /etc/ld.so.conf 末尾追加:/usr/lib/oracle/12.2/client64/lib,执行
- 依赖检查
- 安装 libaio、libnsl 等依赖,避免运行时报库缺失:
sudo yum install libaio libaio-devel
以上要点涵盖了 Instant Client 与 RPM 安装的目录差异、环境变量设置与生效方式、库路径注册及依赖检查。
- 安装 libaio、libnsl 等依赖,避免运行时报库缺失:
二 网络与服务解析配置
- 核心文件与作用
- 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
- 在 ~/.bashrc 或 /etc/profile.d/oracle.sh 中添加:
- 生效方式
- 重新登录 SQL*Plus 即可自动执行;脚本按“先 glogin.sql,后 login.sql(含 SQLPATH 路径)”的顺序加载。
以上覆盖了 glogin.sql 与 login.sql 的用途、位置、优先级与常用设置示例。
- 重新登录 SQL*Plus 即可自动执行;脚本按“先 glogin.sql,后 login.sql(含 SQLPATH 路径)”的顺序加载。
四 快速排错与验证
- 基础验证
- 查看版本:
sqlplus -v - 无密码登录:
sqlplus /nolog,确认命令可用后再连接。
- 查看版本:
- 库加载问题
- 若出现找不到库,检查 LD_LIBRARY_PATH 或执行
ldconfig刷新;RPM 安装建议确认 /etc/ld.so.conf 已包含客户端 lib 目录。
- 若出现找不到库,检查 LD_LIBRARY_PATH 或执行
- 连接问题
- 使用 EZConnect 直连排除 tnsnames.ora 影响:
sqlplus user/pass@//host:1521/service - 服务端/网络侧确认监听与端口:
- 监听状态:
lsnrctl status - 防火墙放行(若本机为客户端且访问远端):
firewall-cmd --zone=public --add-port=1521/tcp --permanent & & firewall-cmd --reload
- 监听状态:
- 使用 EZConnect 直连排除 tnsnames.ora 影响:
- 配置加载顺序
- 登录时先执行 $ORACLE_HOME/sqlplus/admin/glogin.sql,再执行当前目录或 SQLPATH 下的 login.sql;若未生效,优先检查 SQLPATH 与当前工作目录是否正确。
以上步骤可快速定位环境与网络配置问题,并验证 SQL*Plus 是否按预期加载脚本。
- 登录时先执行 $ORACLE_HOME/sqlplus/admin/glogin.sql,再执行当前目录或 SQLPATH 下的 login.sql;若未生效,优先检查 SQLPATH 与当前工作目录是否正确。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos sqlplus配置文件详解
本文地址: https://pptw.com/jishu/756852.html
