温馨提示×

centos sqlplus网络配置注意事项

小樊
41
2025-12-29 06:16:22
栏目: 云计算

CentOS 上 SQL*Plus 网络配置注意事项

客户端环境与解析

  • 安装匹配的 Oracle Instant Client(Basic/SQL*Plus 包),并将目录加入 PATH,设置 LD_LIBRARY_PATH;建议显式设置 TNS_ADMIN 指向 …/network/admin,便于集中管理配置。
  • 客户端解析优先顺序:先检查 TNS_ADMIN/tnsnames.ora,再依赖 Easy Connect 串;确保 tnsnames.oraHOST/PORT/SERVICE_NAME 正确。
  • 连接串两种常用写法:
    • Easy Connect:sqlplus user/pass@192.0.2.10:1521/service_name
    • TNS 别名:sqlplus user/pass@ORCL_ALIAS
  • 常见客户端报错速查:
    • sqlplus: command not found → 客户端未装或 PATH/LD_LIBRARY_PATH 未设置
    • ORA-12154tnsnames.ora 不存在或别名未定义/路径不对
    • ORA-12545HOST/PORT/SERVICE_NAME 任一错误,或目标主机不可达

服务器端监听与服务

  • 监听配置 listener.ora 中的 HOST 建议使用服务器实际 IP0.0.0.0(允许所有地址),端口通常为 1521;变更后用 lsnrctl stop && lsnrctl start 使生效。
  • 确认监听已启动并注册服务:lsnrctl status,检查服务名与实例映射是否正确。
  • 确认数据库实例运行:ps -ef | grep pmon;未运行可由具有 SYSDBA 权限的账户登录本机执行 sqlplus / as sysdbastartup
  • 若仅本机可连、远程不通,优先复查 listener.ora 的 HOST 配置 与实例是否已注册到监听。

防火墙与 SELinux

  • firewalld:放行数据库端口(默认 1521/tcp)并持久化
    • firewall-cmd --zone=public --add-port=1521/tcp --permanent
    • firewall-cmd --reload
  • 如使用 iptablesiptables -A INPUT -p tcp --dport 1521 -j ACCEPT 并保存规则。
  • SELinux:
    • 临时宽松用于排查:setenforce 0
    • 更优做法是为 Oracle 端口放行布尔值:setsebool -P oracle_db_port_t 1
  • 云环境需同步检查 安全组/NACL 是否放行 1521/tcp

连通性测试与超时排查

  • 分层验证:
    • 网络层:ping <DB_IP>(ICMP 可达性)
    • 端口层:telnet <DB_IP> 1521nc -zv <DB_IP> 1521(端口开放)
    • 监听层:lsnrctl status(服务注册与端口)
    • 解析层:tnsping ORCL_ALIAS(TNS 解析是否正常)
  • 连接超时或间歇性失败时:
    • 在客户端 sqlnet.ora 适度增大 SQLNET.EXPIRE_TIME(分钟)与 SQLNET.RECV_TIMEOUT,避免长时间空闲断连或接收等待过久。
    • strace -T -t -o sqlplus.log sqlplus … 定位 DNS 解析、连接建立等耗时环节;检查 /etc/resolv.confNTP 时间同步。
    • 服务器端查看监听与数据库日志($ORACLE_HOME/log 下相关日志)获取更详细错误。

名称解析与主机配置

  • 正确设置 /etc/hosts:确保 IP <-> 主机名 映射唯一且准确,避免解析到错误主机。
  • 合理设置 主机名hostnamectl set-hostname your_host_name,与 listener.ora/tnsnames.oraHOST 保持一致或可解析。
  • 避免 DNS 误配 导致解析慢或失败;必要时在 /etc/resolv.conf 中调整 nameserver 顺序或改用 hosts 直连。

0