温馨提示×

怎样配置 Linux Oracle 网络参数

小樊
40
2025-12-06 15:48:49
栏目: 云计算

Linux Oracle 网络参数配置全流程

一 基础网络与主机名

  • 设置主机名(以实际主机名为准):sudo hostnamectl set-hostname your_host_name
  • 配置 /etc/hosts,确保本机名可解析到正确 IP(示例):192.168.1.100 your_host_name
  • 配置网卡(RHEL/CentOS 传统 ifcfg 方式,示例为 eth0):
    • 编辑:/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
    • 使生效:sudo systemctl restart network(或使用 NetworkManager:nmcli con down <name> && nmcli con up <name>
  • 验证:ip addrping 网关与外网、nslookup 域名解析
  • 说明:若为 Ubuntu 18.04+,优先使用 netplan 配置静态 IP,再 sudo netplan apply

二 防火墙与 SELinux

  • 防火墙放行 Oracle 监听端口(默认 1521/TCP):
    • firewalld:sudo firewall-cmd --add-port=1521/tcp --permanent && sudo firewall-cmd --reload
    • 或按需临时停用:sudo systemctl stop firewalld(不建议生产长期关闭)
  • SELinux(如与网络/监听冲突,可先宽松或临时关闭以排障):
    • 临时:sudo setenforce 0
    • 永久:sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config(或 disabled,重启生效)
  • 建议:生产环境优先使用“放行端口/服务”的策略,而非直接关闭安全组件。

三 Oracle Net 配置

  • 配置文件路径与用途(均为 $ORACLE_HOME/network/admin/ 目录,若未设置 TNS_ADMIN,以此目录为准):
    • listener.ora:监听器配置
    • tnsnames.ora:客户端连接串别名
    • sqlnet.ora:Oracle Net 行为参数
  • 监听器示例(listener.ora):
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name)(PORT = 1521))
        )
      )
    
  • 客户端别名示例(tnsnames.ora):
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = your_service_name)
        )
      )
    
  • 生效与检查:
    • 启动/重启监听:lsnrctl stoplsnrctl start
    • 查看状态:lsnrctl status
    • 图形化配置(可选):sudo -u oracle netca
  • 重要提示:listener.ora 中的 HOST 不要写成 127.0.0.1localhost,否则仅本机可连;应使用可路由的主机名或服务器 IP。

四 客户端与测试连接

  • 环境变量(Oracle 用户 profile,示例):
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
    export ORACLE_SID=orcl
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    
  • 客户端使用 Instant Client 时,建议显式设置 TNS_ADMIN 指向含 tnsnames.ora 的目录,例如:
    export TNS_ADMIN=/opt/oracle/instantclient_XX_X/network/admin
    
  • 连接测试:
    • 使用别名:sqlplus username/password@ORCL
    • 使用 EZConnect:sqlplus username/password@//your_host_name:1521/your_service_name
    • 本机操作系统认证:sqlplus / as sysdba
  • 若使用 Ubuntu 客户端,Instant Client 路径与 TNS_ADMIN 设置方式同上。

五 常见排错要点

  • 监听未起或端口不通:
    • lsnrctl status 查看监听端口与服务映射
    • ss -lntp | grep 1521netstat -lntp | grep 1521 检查端口监听
    • 防火墙/云安全组是否放行 1521/TCP
  • 主机名解析问题:
    • hostname/etc/hosts 是否一致、是否可解析
    • listener.ora 的 HOST 是否为服务器可达地址(非 127.0.0.1)
  • 客户端连通性:
    • tnsping ORCL 检查解析与连通
    • 直接用 EZConnect 排除 tnsnames.ora 配置问题
  • SELinux/防火墙干扰:临时放宽策略验证是否为根因,再改为精细化放行规则。

0