首页主机资讯centos里sqlplus网络配置要点

centos里sqlplus网络配置要点

时间2026-01-19 01:09:04发布访客分类主机资讯浏览1365
导读:CentOS 上 sqlplus 网络配置要点 一 客户端安装与目录结构 仅连接远程库时,推荐安装 Oracle Instant Client(Basic + SQL*Plus)两个 RPM 包,选择与系统匹配的 x86_64 版本,避免...

CentOS 上 sqlplus 网络配置要点

一 客户端安装与目录结构

  • 仅连接远程库时,推荐安装 Oracle Instant Client(Basic + SQL*Plus)两个 RPM 包,选择与系统匹配的 x86_64 版本,避免 32/64 位混用导致“找不到 sqlplus”等问题。安装后库文件通常位于:/usr/lib/oracle/< 版本> /client64/。在该目录下创建网络配置目录:/usr/lib/oracle/< 版本> /client64/network/admin,用于放置 tnsnames.ora、sqlnet.ora。如使用 RPM 重定位安装,目录会随 relocate 路径变化,但应保持 $ORACLE_HOME/network/admin 的结构一致。

二 核心配置文件与关键参数

  • 建议至少准备并理解以下三个文件(客户端通常只需前两个;服务器端三者皆需):
    • sqlnet.ora:控制解析顺序与认证方式,例如:
      NAMES.DIRECTORY_PATH=(TNSNAMES,HOSTNAME) 表示先查 tnsnames.ora,再按主机名解析;
      SQLNET.AUTHENTICATION_SERVICES=(NTS) 等可按需设置。
    • tnsnames.ora:定义网络服务名到“主机/端口/服务”的映射,示例:
      ORCL =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
          (CONNECT_DATA =
            (SERVER = DEDICATED)
            (SERVICE_NAME = orcl)))
      其中 HOST、PORT、SERVICE_NAME 为必填;SERVICE_NAME 可在数据库侧用 show parameter service_name 查询。
    • listener.ora(服务器端):定义监听地址与端口,以及 SID/GLOBAL_DBNAME 映射,示例:
      SID_LIST_LISTENER =
        (SID_LIST =
          (SID_DESC =
            (GLOBAL_DBNAME = ORCL)
            (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
            (SID_NAME = ORCL)))
      LISTENER =
        (DESCRIPTION_LIST =
          (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))))
      动态注册时,若监听未显示服务,可在数据库侧设置 local_listener 并手工注册:
      alter system set local_listener=‘(ADDRESS=(PROTOCOL=TCP)(HOST=服务器IP)(PORT=1521))’ scope=both;
      alter system register; 。

三 环境变量与库路径

  • 客户端常用变量(写入 /etc/profile~/.bashrc 并 source 生效):
    • ORACLE_HOME:指向 Instant Client 根目录,如 /usr/lib/oracle/19.5/client64
    • TNS_ADMIN:指向 $ORACLE_HOME/network/admin(显式指定配置目录)
    • LD_LIBRARY_PATH:指向 $ORACLE_HOME/lib(确保能加载 OCI 库)
    • PATH:包含 $ORACLE_HOME/bin
    • NLS_LANG:建议设为 AMERICAN_AMERICA.AL32UTF8(避免客户端字符集与服务端不一致)
      如使用较新 Instant Client,可能已自带可执行文件与库目录;如未自动识别库路径,可在 /etc/ld.so.conf 中加入 $ORACLE_HOME/lib 并执行 ldconfig

四 防火墙与连通性测试

  • 开放数据库监听端口(默认 1521):
    • firewalld:firewall-cmd --add-port=1521/tcp --permanent & & firewall-cmd --reload
    • 或 nftables/iptables 放行 1521/tcp
  • 连通性自检:
    • 基本连通:nc -vz 数据库IP 1521 或 telnet 数据库IP 1521
    • Oracle Net 解析与监听:tnsping ORCL(应返回 OK)
    • 登录测试:sqlplus 用户名/密码@ORCL 或 sqlplus 用户名/密码@//数据库IP:1521/服务名
      若 tnsping 失败,优先检查 HOST 是否可解析/可达、端口是否开放、tnsnames.ora 配置是否正确;若监听未注册服务,按上文设置 local_listeneralter system register

五 常见坑与排查清单

  • 架构不一致:在 64 位 CentOS 上误装 32 位 Instant Client 会导致“/bin/sqlplus: 没有那个文件或目录”或无法加载库,需统一为 x86_64
  • 解析顺序不当:sqlnet.ora 未包含 TNSNAMES 时,sqlplus 别名将无法解析;必要时显式设置 NAMES.DIRECTORY_PATH=(TNSNAMES,HOSTNAME)
  • 监听未注册服务:RAC/多监听或自定义监听时,数据库可能未向监听注册,使用 alter system set local_listener=…; alter system register; 并查看 lsnrctl status 输出。
  • 防火墙/安全组未放行:数据库服务器与客户端之间的 1521/tcp 必须双向可达,云环境需检查安全组规则。
  • 主机名解析问题:若使用主机名连接,确保客户端能 ping 通该主机名,必要时在 /etc/hosts 添加解析记录。

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


若转载请注明出处: centos里sqlplus网络配置要点
本文地址: https://pptw.com/jishu/785019.html
CentOS环境下Filebeat如何监控文件 centos中copidar命令怎么实现

游客 回复需填写必要信息