温馨提示×

centos oracle网络配置技巧

小樊
40
2025-11-23 19:38:12
栏目: 云计算

CentOS 上 Oracle 网络配置实用技巧

一 基础网络与主机解析

  • 使用静态 IP 时编辑网卡配置文件(如 /etc/sysconfig/network-scripts/ifcfg-ens33),确保包含:BOOTPROTO=static、IPADDR、NETMASK、GATEWAY、DNS1、ONBOOT=yes;使用 DHCP 时将 BOOTPROTO 设为 dhcp。修改后用 systemctl restart NetworkManagernmcli con down/up 使生效。
  • 设置主机名并写入 /etc/hosts:例如 192.168.1.100 dbserver,执行 hostnamectl set-hostname dbserver
  • 验证:ip addrping 网关nslookup 域名
  • 安全策略建议:生产环境不建议直接关闭 firewalld/SELinux,仅开放必要端口(如 1521/TCP),SELinux 可先设为 permissive 做问题定位。

二 监听器与客户端解析配置

  • 监听器(服务器端):编辑 $ORACLE_HOME/network/admin/listener.ora,示例:
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
        )
      )
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = ORCL)
          (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
        )
      )
    
    操作:lsnrctl stop → lsnrctl start/reload → lsnrctl status 查看监听端口、服务映射。
  • 客户端解析(可选):编辑 $ORACLE_HOME/network/admin/tnsnames.ora,示例:
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ORCL)
        )
      )
    
    测试:tnsping ORCLsqlplus sys/password@ORCL as sysdba
  • 图形化工具:可用 netca(Net Configuration Assistant)配置监听与本地命名;或用 netmgr(Net Manager)可视化维护 listener.ora/tnsnames.ora

三 防火墙与 SELinux 放行

  • firewalld(推荐):
    sudo firewall-cmd --permanent --add-port=1521/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-ports    # 确认 1521/tcp 已在列表
    
  • 传统 iptables(如仍在使用):
    iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
    service iptables save && service iptables restart
    
  • SELinux:
    • 临时放宽:setenforce 0;永久调整:/etc/selinux/config 中设 SELINUX=permissive(或按策略细化)。
  • 云环境:除系统防火墙外,还需在 安全组/NACL 放行 1521/TCP

四 连接失败快速排查清单

  • 网络连通:ping dbserver_iptelnet dbserver 1521nc -vz dbserver 1521
  • 监听状态:lsnrctl status,确认监听在 0.0.0.0:1521 或指定 HOST 上,且能看到目标 SID/SERVICE_NAME
  • 实例状态:
    sqlplus / as sysdba
    SQL> select status from v$instance;
    SQL> startup    # 若未启动
    
  • 客户端配置:核对 tnsnames.oraHOST/PORT/SERVICE_NAME 与服务器一致;必要时用 EZCONNECTsqlplus user/pass@//dbserver:1521/ORCL
  • 日志定位:查看 $ORACLE_HOME/diag/tnslsnr//trace/listener.log 与数据库告警日志,获取具体报错。

五 性能与安全加固要点

  • 内核网络参数(/etc/sysctl.conf,执行 sysctl -p):
    kernel.shmmax = 2147483648
    kernel.shmall = 2097152
    kernel.shmmni = 4096
    kernel.sem = 250 32000 100 128
    fs.file-max = 65536
    net.ipv4.ip_local_port_range = 1024 65000
    net.core.rmem_default = 262144
    net.core.rmem_max = 262144
    net.core.wmem_default = 262144
    net.core.wmem_max = 262144
    
  • 资源与权限:设置 oracle 用户资源限制(如 /etc/security/limits.confnofile/nproc),并确保 ORACLE_HOME/binPATH
  • 监听加固:避免使用默认监听名或端口;必要时限制监听来源 IP(在 listener.ora 使用 TCP.INVITED_NODES 或在防火墙层做白名单)。

0