Debian下sqlplus网络连接设置
导读:Debian 下 sqlplus 网络连接设置 一 安装 Oracle Instant Client 与依赖 到 Oracle 官网下载与系统架构匹配的 Instant Client 包,至少需要:Basic 与 SQL*Plus。在 D...
Debian 下 sqlplus 网络连接设置
一 安装 Oracle Instant Client 与依赖
- 到 Oracle 官网下载与系统架构匹配的 Instant Client 包,至少需要:Basic 与 SQL*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_PATH、tnsnames.ora 别名与路径
- TNS:listener does not currently know of SID/service → 检查 SERVICE_NAME/SID、监听端口与服务注册
- ORA-01017:用户名/口令错误 → 核对账户口令与账户状态
- sqlplus: error while loading shared libraries → 检查 LD_LIBRARY_PATH 与 libaio 依赖。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian下sqlplus网络连接设置
本文地址: https://pptw.com/jishu/785835.html
