温馨提示×

Linux Oracle网络配置如何进行

小樊
38
2025-12-14 13:38:32
栏目: 云计算

Linux Oracle网络配置全流程

一 系统网络与主机名准备

  • 设置主机名(以orcl为例):执行命令:sudo hostnamectl set-hostname orcl
  • 配置静态IP(示例为192.168.1.100/24,网关192.168.1.1):
    • RHEL/CentOS 传统方式编辑文件:/etc/sysconfig/network-scripts/ifcfg-eth0,关键项:
      DEVICE=eth0、BOOTPROTO=static、IPADDR=192.168.1.100、NETMASK=255.255.255.0、GATEWAY=192.168.1.1、DNS1=8.8.8.8、ONBOOT=yes。
    • Oracle Linux 7 推荐使用NetworkManager:命令行执行nmtui进行图形化配置,或用nmcli
      nmcli con mod eth0 ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual autoconnect yes,随后nmcli con up eth0
  • 配置**/etc/hosts**:确保包含“IP 主机名”映射,例如:192.168.1.100 orcl
  • 验证网络:ip addrping 192.168.1.1ping 8.8.8.8nslookup域名。
  • 防火墙放行Oracle端口(默认1521/TCP):
    sudo firewall-cmd --zone=public --add-port=1521/tcp --permanent && sudo firewall-cmd --reload
  • SELinux(可选,测试环境可先放宽):编辑/etc/selinux/configSELINUX=enforcing改为SELINUX=permissivedisabled,并执行setenforce 0临时生效。

二 Oracle监听配置与启停

  • 配置文件路径:$ORACLE_HOME/network/admin/listener.ora。最小可用示例:
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = orcl)(PORT = 1521))
        )
      )
    
    说明:HOST建议使用服务器的主机名(已在/etc/hosts解析),或填服务器IP;PORT通常为1521
  • 启动与验证:
    • 启动:lsnrctl start
    • 状态:lsnrctl status(应能看到监听地址、端口及已注册服务)
    • 日志:$ORACLE_HOME/network/log/listener.log(排错首选)
  • 动态服务注册(推荐):确保数据库参数包含
    • SERVICE_NAMES=orcl(或你的服务名)
    • LOCAL_LISTENER=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl)(PORT=1521))
      设置后实例会自动向监听器注册,无需在listener.ora中静态声明SID_LIST。
  • 常见错误速查:
    • TNS-12541: TNS:no listener → 监听未启动或端口/地址错误,执行lsnrctl start并检查listener.ora。
    • TNS-12560: TNS:protocol adapter error → 客户端网络配置或访问地址错误,核对HOST/PORT与网络连通性。

三 客户端与服务名配置

  • 客户端解析文件:$ORACLE_HOME/network/admin/tnsnames.ora。示例:
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
    
  • 连接测试:
    • 简易连接:sqlplus sys/password@192.168.1.100:1521/orcl as sysdba
    • 使用别名:sqlplus sys/password@ORCL as sysdba
    • 仅测监听:tnsping ORCL
  • 客户端环境(如无完整客户端,可用Instant Client):
    • 安装Basic包并解压至如/opt/oracle/instantclient_XX_X
    • 配置环境变量:export LD_LIBRARY_PATH=/opt/oracle/instantclient_XX_X
    • tnsnames.ora放到Instant Client的network/admin目录或使用TNS_ADMIN指向其目录。

四 验证与排错清单

  • 端到端连通性:
    • 服务器本机:lsnrctl status确认监听在1521并注册到正确服务;tnsping ORCLsqlplus sys/password@ORCL as sysdba
    • 客户端:先ping服务器IP,再tnsping ORCL,最后sqlplus连接。
  • 端口可达性:在客户端执行telnet 192.168.1.100 1521nc -vz 192.168.1.100 1521,不通则检查服务器防火墙/云安全组与监听HOST是否为可达地址。
  • 监听日志:查看$ORACLE_HOME/network/log/listener.log定位启动失败、注册失败、访问拒绝等问题。
  • 动态注册未生效:核对SERVICE_NAMESLOCAL_LISTENER与监听端口一致,必要时lsnrctl reload

五 安全与运维建议

  • 最小暴露面:仅开放1521/TCP,限制来源IP;避免使用0.0.0.0监听所有地址,优先使用服务器主机名或内网IP。
  • 监听安全:可为监听器设置管理密码(PASSWORDS_LISTENER),并定期审计listener.log
  • 主机解析:生产环境建议保持/etc/hosts与DNS一致,避免主机名漂移导致监听与服务注册异常。
  • 变更管控:修改listener.orasqlnet.ora后使用lsnrctl reload平滑生效,重大变更在维护窗口进行并保留回退方案。

0