温馨提示×

ubuntu下sqlplus环境配置步骤

小樊
34
2025-12-18 23:03:33
栏目: 云计算

Ubuntu 下 SQL*Plus 环境配置步骤

一 安装 Oracle Instant Client 与 SQL*Plus

  • 准备安装包:从 Oracle 官网下载与系统架构匹配的 Instant Client 包,至少需要BasicSQL*Plus(可选SDK)。常见版本如12.121.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
  • 验证安装:
    sqlplus -v
    若提示找不到命令,可尝试 sqlplus64(部分安装包提供)。

二 配置环境变量与库路径

  • 设置环境变量(写入 ~/.bashrc 或 /etc/profile,按实际版本替换路径中的版本与 client 目录名,如12.1/client6421/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 与服务名连接

  • 创建网络配置目录并编辑 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 以支持方向键与历史:
    sudo apt-get install -y rlwrap
    使用:rlwrap sqlplus user/pass@//host:1521/service
    建议加入别名(写入 ~/.bashrc):alias sqlplus=‘rlwrap sqlplus’。
  • 设置默认编辑器(SQL> edit 调用 vim):
    在 $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”。

0