Ubuntu系统中SQL*Plus环境的配置流程

一、安装Oracle Instant Client和SQL*Plus
- 准备安装包:前往 Oracle 官网下载与 Ubuntu 系统架构对应的 Oracle Instant Client 安装包,至少需要Basic与SQL*Plus组件,必要时可额外下载SDK。常见可用版本包括12.1、21.x等。
- 安装转换工具与依赖环境:
sudo apt-get update
sudo apt-get install -y alien libaio1 - 将 RPM 包转换为 DEB 并完成安装(以下示例为 64 位 12.1 版本,实际操作时请根据下载版本调整文件名):
sudo alien -i oracle-instantclient12.1-basic-.x86_64.rpm
sudo alien -i oracle-instantclient12.1-sqlplus-.x86_64.rpm
如同时安装 SDK:sudo alien -i oracle-instantclient12.1-devel-*.x86_64.rpm - 验证 SQL*Plus 是否安装成功:
sqlplus -v
如果系统提示找不到 sqlplus 命令,也可以尝试使用 sqlplus64(部分安装包会提供该命令)。
二 配置环境变量与库路径
- 设置 Oracle 环境变量(可写入 ~/.bashrc 或 /etc/profile,路径中的版本号与 client 目录名称需按实际安装情况替换,例如12.1/client64或21/client64):
export ORACLE_HOME=/usr/lib/oracle/12.1/client64
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
保存后执行:source ~/.bashrc(或 source /etc/profile)使配置立即生效。 - 注册 Oracle 客户端库路径(用于解决“libsqlplus.so 找不到”之类的共享库加载问题):
echo “$ORACLE_HOME/lib” | sudo tee /etc/ld.so.conf.d/oracle.conf
sudo ldconfig - 如果缺少异步 I/O 依赖,系统通常会报“libaio.so.1 找不到”,此时可执行以下命令安装:
sudo apt-get install -y libaio1
三 配置 TNS 与服务名连接
- 创建 Oracle 网络配置目录,并编辑 tnsnames.ora 文件:
sudo mkdir -p $TNS_ADMIN
sudo nano $TNS_ADMIN/tnsnames.ora - 示例配置如下(请根据实际数据库主机地址、监听端口和服务名进行修改):
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.109)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
) - 测试数据库连接:
sqlplus system/YourPassword@TEST
也可以直接使用 EZConnect 方式连接:
sqlplus system/YourPassword@//dbhost:1521/SID
四 提升 SQL*Plus 使用体验
- 安装 rlwrap,为 SQL*Plus 增加方向键支持和历史命令功能:
sudo apt-get install -y rlwrap
使用方式:rlwrap sqlplus user/pass@//host:1521/service
建议添加别名到 ~/.bashrc:alias sqlplus=‘rlwrap sqlplus’。 - 设置默认编辑器(让 SQL> edit 默认调用 vim 或 vi):
在 $ORACLE_HOME/sqlplus/admin/glogin.sql 中加入:DEFINE _EDITOR = vi
或者在 ~/.bashrc 中设置:export EDITOR=vi,然后重新 source 让其生效。 - 保存个人 SQLPlus 使用配置:可在 SQLPlus 中执行 STORE SET $HOME/.sqlplusrc,后续通过 @$HOME/.sqlplusrc 快速恢复个人环境设置。
五 常见问题排查
- 报错“libaio.so.1: cannot open shared object file”:通常说明缺少 libaio1 依赖,安装完成后重新执行即可。
- 报错“sqlplus: error while loading shared libraries: libsqlplus.so …”:请确认 $ORACLE_HOME/lib 已正确写入 /etc/ld.so.conf.d/oracle.conf,并重新执行 sudo ldconfig。
- 报错“libsqlplus.so: cannot open shared object file”或系统提示命令不存在:重点检查 ORACLE_HOME、PATH、LD_LIBRARY_PATH 是否正确指向 client(64)/lib 相关目录;必要时可尝试使用 sqlplus64。
- 登录时出现 ORA-01017:请核对用户名和密码是否正确,同时确认服务名、端口配置无误,以及目标数据库是否允许远程连接。
- 出现中文乱码:可在 ~/.bashrc 中配置 NLS_LANG,例如:export NLS_LANG=“SIMPLIFIED CHINESE_CHINA.UTF8”。
