centos中sqlplus环境配置步骤
小樊
41
2025-12-15 13:02:50
CentOS 中 SQL*Plus 环境配置步骤
一 准备与安装
- 选择安装方式:推荐使用 Oracle Instant Client(轻量、仅含客户端工具)。从 Oracle 官网下载与系统架构匹配的包,至少需要 Basic 与 SQL*Plus 两个包,版本建议保持一致(如 19c、21c)。
- RPM 安装(推荐):将下载的 RPM 上传至服务器后执行
sudo yum localinstall oracle-instantclient-basic-<版本>.x86_64.rpm oracle-instantclient-sqlplus-<版本>.x86_64.rpm
安装完成后,Instant Client 通常位于 /usr/lib/oracle/<版本>/client64(例如 /usr/lib/oracle/21.6/client64)。
- ZIP 安装:将 ZIP 解压到统一目录(如 /opt/oracle/instantclient_<版本>),后续通过环境变量指向该目录。
- 依赖检查:确保安装 libaio(Instant Client 必需)
sudo yum install -y libaio
二 环境变量与库路径
- 设置环境变量(写入 ~/.bashrc 或 /etc/profile.d/oracle.sh,二选一,后者便于系统级生效):
export ORACLE_HOME=/usr/lib/oracle/21.6/client64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
可选:指定 tnsnames.ora 目录
export TNS_ADMIN=$ORACLE_HOME/network/admin
可选:字符集(按需)
export NLS_LANG=AMERICAN_AMERICA.UTF8
使配置生效:source ~/.bashrc 或 source /etc/profile.d/oracle.sh。
- 库路径注册(RPM 安装强烈建议执行,避免 “libsqlplus.so 找不到” 等动态库错误):
echo “$ORACLE_HOME/lib” | sudo tee /etc/ld.so.conf.d/oracle-instantclient.conf
sudo ldconfig
- 说明:SQL*Plus 在 UNIX/Linux 上依赖 LD_LIBRARY_PATH 定位共享库;ORACLE_HOME 指向客户端安装目录;TNS_ADMIN 指定 tnsnames.ora 所在目录;NLS_LANG 控制全球化行为。
三 配置 TNS 与便捷连接
- 创建网络配置目录与文件:
sudo mkdir -p $ORACLE_HOME/network/admin
sudo vi $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
- 免 TNS 的替代方式:设置 TWO_TASK(UNIX/Linux)
export TWO_TASK=MYDB
sqlplus hr
等价于 sqlplus hr@MYDB。
四 验证与常见问题
- 验证安装:
sqlplus -v
正常会输出版本号(如 SQL*Plus: Release 21.0.0.0.0)。
- 连接测试:
sqlplus /nolog
SQL> connect username/password@MYDB
或直接使用 EZConnect 登录。
- 常见问题与处理:
- 动态库错误(如 “sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file”):确认已执行 ldconfig 或正确设置 LD_LIBRARY_PATH。
- 找不到 tnsnames.ora:确认 TNS_ADMIN 指向包含 network/admin/tnsnames.ora 的目录,或使用 TWO_TASK/EZConnect。
- 字符集乱码:设置 NLS_LANG(如 AMERICAN_AMERICA.UTF8)与数据库侧保持一致。
- 命令历史与编辑:安装 rlwrap 并配置别名可提升体验
sudo yum install -y rlwrap
echo “alias sqlplus=‘rlwrap sqlplus’” >> ~/.bashrc && source ~/.bashrc。