首页主机资讯Debian下sqlplus网络连接设置

Debian下sqlplus网络连接设置

时间2026-01-19 14:45:03发布访客分类主机资讯浏览1058
导读:Debian 下 sqlplus 网络连接设置 一 安装 Oracle Instant Client 与依赖 到 Oracle 官网下载与系统架构匹配的 Instant Client 包,至少需要:Basic 与 SQL*Plus。在 D...

Debian 下 sqlplus 网络连接设置

一 安装 Oracle Instant Client 与依赖

  • 到 Oracle 官网下载与系统架构匹配的 Instant Client 包,至少需要:BasicSQL*Plus。在 Debian 上可用 alien 将 RPM 转为 DEB 后安装,或直接使用已打包版本。示例(以 11.2 x86_64 为例):
    • 转换与安装
      • alien oracle-instantclient11.2-basic-*.rpm
      • alien oracle-instantclient11.2-sqlplus-*.rpm
      • dpkg -i oracle-instantclient11.2-basic-*.deb
      • dpkg -i oracle-instantclient11.2-sqlplus-*.deb
    • 常见安装目录:/usr/lib/oracle/11.2/client64/(不同版本路径略有差异)。
  • 安装依赖库(缺少会报库找不到或无法加载 OCI):
    • apt-get install libaio1 或 libaio-dev(Instant Client 需要异步 I/O 支持)。

二 配置环境变量与客户端网络文件

  • 设置环境变量(建议写入 /etc/profile 或用户 ~/.bashrc 并 source 使其生效):
    • export ORACLE_HOME=/usr/lib/oracle/11.2/client64
    • export TNS_ADMIN=$ORACLE_HOME/network/admin # 指定 tnsnames.ora/sqlnet.ora 目录
    • export PATH=$PATH:$ORACLE_HOME/bin
    • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
  • 创建客户端网络配置目录与文件:
    • mkdir -p $TNS_ADMIN
    • 编辑 $TNS_ADMIN/tnsnames.ora,示例:
      ORCL =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.0.2.10)(PORT = 1521))
          (CONNECT_DATA =
            (SERVICE_NAME = orcl)
          )
        )
      
    • 可选:编辑 $TNS_ADMIN/sqlnet.ora,常用项:
      • NAMES.DIRECTORY_PATH=(TNSNAMES,HOSTNAME) # 解析顺序:先 TNSNAMES,再用主机名
      • NAMES.DEFAULT_DOMAIN=.example.com # 若设置,@别名会自动补域,注意与 tnsnames 一致
      • SQLNET.AUTHENTICATION_SERVICES=(NONE) # 仅口令认证(可按需调整)
  • 说明:sqlnet.ora/tnsnames.ora 通常位于 $ORACLE_HOME/network/admin,也可通过 TNS_ADMIN 指定自定义目录。

三 三种常见连接方式

  • 使用 Easy Connect(无需 tnsnames.ora):
    • sqlplus scott/tiger@//192.0.2.10:1521/orcl
  • 使用 TNS 别名(依赖 tnsnames.ora):
    • sqlplus scott/tiger@ORCL
  • 本机操作系统认证(仅当本机为数据库服务器且配置允许时):
    • sqlplus / as sysdba
  • 提示:若使用 Easy Connect,请确保 HOST/PORT/SERVICE_NAME 正确;若使用别名,确保 TNS_ADMIN 指向包含正确 tnsnames.ora 的目录。

四 连通性排障清单

  • 服务器端监听是否正常(在数据库服务器上执行):
    • lsnrctl status(查看监听地址与端口,默认 1521
    • lsnrctl start(未运行时启动)
  • 网络与防火墙:
    • 从客户端测试到服务器 1521/TCP 的连通性(如:nc -vz 192.0.2.10 1521)
    • 开放服务器防火墙的 1521/TCP(以及 SELinux/云安全组策略)
  • 客户端侧库加载与解析:
    • ldd $(which sqlplus) | grep -i oci # 确认 OCI 库可被解析
    • strace -e openat sqlplus scott/tiger@ORCL 2> & 1 | grep tnsnames.ora # 确认读取的 tnsnames.ora 路径
    • 若使用 NAMES.DEFAULT_DOMAIN,确认别名与域后缀一致,避免 ORA-12154
  • 常见错误速查:
    • ORA-12154:TNS 无法解析服务名 → 检查 sqlnet.ora NAMES.DIRECTORY_PATHtnsnames.ora 别名与路径
    • TNS:listener does not currently know of SID/service → 检查 SERVICE_NAME/SID、监听端口与服务注册
    • ORA-01017:用户名/口令错误 → 核对账户口令与账户状态
    • sqlplus: error while loading shared libraries → 检查 LD_LIBRARY_PATHlibaio 依赖。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian下sqlplus网络连接设置
本文地址: https://pptw.com/jishu/785835.html
Debian如何使用sqlplus进行数据库维护 Debian中sqlplus数据导入导出方法

游客 回复需填写必要信息