1. 安装与配置Oracle Instant Client(SQL*Plus依赖)
在CentOS中使用SQLPlus前,需先安装Oracle Instant Client(包含SQLPlus核心工具)。推荐通过Oracle官方YUM仓库或手动下载RPM包安装:
oracle-database-enterprise-release.repo),安装对应版本的oracle-instantclient19.8-sqlplus(版本号随官方更新);instantclient-basic-linux.x64-XX.X.X.X.X.zip和instantclient-sqlplus-linux.x64-XX.X.X.X.X.zip,解压至/opt/instantclient_XX_X目录。~/.bash_profile(或/etc/profile),添加ORACLE_HOME(Instant Client路径)、LD_LIBRARY_PATH(指向$ORACLE_HOME)、PATH(包含$ORACLE_HOME/bin),执行source使配置生效。2. 增强交互体验:rlwrap工具
SQL*Plus原生不支持命令行编辑(如上下箭头切换历史命令),可通过rlwrap工具解决:
sudo yum install rlwrap;~/.bash_profile中添加alias sqlplus='rlwrap sqlplus',并执行source ~/.bash_profile。3. 美化输出格式:配置glogin.sql
通过修改glogin.sql(全局登录脚本)定制SQL*Plus输出,提升可读性:
~/.sqlplus/glogin.sql(用户级)或$ORACLE_HOME/sqlplus/admin/glogin.sql(全局);SET LINESIZE 1000 -- 设置行宽(避免内容换行)
SET PAGESIZE 50 -- 设置每页显示行数(减少分页)
SET TRIMSPOOL ON -- 去除输出文件中的尾部空格
SET COLSEP '|' -- 设置列分隔符(便于后续处理)
SET HEADING ON -- 显示列标题
SET FEEDBACK OFF -- 关闭查询结果的“X rows selected”提示(减少冗余)
执行@~/.sqlplus/glogin.sql使配置生效。4. 简化命令调用:配置别名
为常用SQL*Plus命令设置别名,减少重复输入:
~/.bash_profile中添加:alias sqlplus='rlwrap sqlplus' -- 带历史功能的SQL*Plus
alias rman='rlwrap rman' -- 增强的RMAN工具
alias lsnrctl='rlwrap lsnrctl' -- 增强的监听器工具
执行source ~/.bash_profile后,可直接用sqlplus代替rlwrap sqlplus。5. 规范连接方式:安全与便捷兼顾
连接数据库时,优先使用**服务名(Service Name)**而非SID(旧版),提升兼容性:
sqlplus username/password@hostname:port/service_name
示例:sqlplus scott/tiger@orcl:1521/orcl。
若频繁连接同一数据库,可将连接信息保存到~/.sqlplusrc文件(每行格式:username/password@connect_string),后续直接用sqlplus /@connect_string快速连接。
6. 提升效率:常用命令与脚本技巧
@符号运行SQL脚本(如@script.sql),支持从文件批量执行命令;SPOOL命令将查询结果保存到文件(如SPOOL result.txt,执行完用SPOOL OFF关闭);COLUMN命令调整列显示(如COLUMN employee_name HEADING 'Employee Name' FORMAT A20,设置列标题和宽度);VARIABLE声明变量,避免SQL注入(如VARIABLE emp_id NUMBER; BEGIN :emp_id := 100; END; /,后续用:emp_id引用)。7. 安全加固:权限与审计
CREATE SESSION、SELECT),避免过度授权(如禁止给普通用户DBA权限);AUDIT SELECT TABLE, INSERT TABLE BY scott;),跟踪敏感操作。8. 自动化运维:脚本与定时任务
#!/bin/bash
sqlplus / as sysdba <<EOF
SHUTDOWN IMMEDIATE;
STARTUP;
EXIT;
EOF
crontab -e添加定时任务(如每天凌晨2点执行备份脚本):0 2 * * * /path/to/backup_script.sh
确保脚本有执行权限(chmod +x script.sh)。