温馨提示×

Linux下Oracle如何配置网络

小樊
45
2025-11-30 18:27:56
栏目: 云计算

Linux下Oracle网络配置全流程

一 基础网络与主机名

  • 设置主机名(以主机名为orcl为例):执行命令:hostnamectl set-hostname orcl
  • 配置 IP 与路由(示例将网卡eth0设为10.211.55.188/24,网关10.211.55.1):
    nmcli connection modify eth0 ipv4.addresses 10.211.55.188/24 ipv4.gateway 10.211.55.1 ipv4.method manual autoconnect yes
    nmcli connection up eth0
  • 配置 /etc/hosts:确保本机名与 IP 正确映射,例如:
    10.211.55.188 orcl
  • 验证:ping 网关与外网地址、ip addr 查看地址是否生效。
  • 防火墙放行 Oracle 监听端口(默认1521):
    firewall-cmd --add-port=1521/tcp --permanent && firewall-cmd --reload
  • SELinux(如启用)可按需放宽或临时置为宽容模式:
    setenforce 0(临时),或编辑 /etc/selinux/configSELINUX=enforcing 改为 SELINUX=permissive/disabled 后重启。

二 Oracle Net 配置文件与位置

  • 关键文件与作用:
    • listener.ora:监听器配置,定义监听的协议、地址与端口,以及所服务的数据库/服务。
    • tnsnames.ora:客户端连接描述符,定义服务名到主机/端口/服务的映射。
    • sqlnet.ora:Oracle Net 行为参数(如命名方法、日志与跟踪等)。
  • 默认路径:位于 $ORACLE_HOME/network/admin/ 目录下(UNIX/Linux)。如使用 RACGrid Infrastructure,监听文件通常在 Grid_home/network/admin,并可通过 SRVCTLTNS_ADMIN 管理。

三 配置监听器 Listener

  • 方式一 图形化工具:以 oracle 用户执行 netca,按向导完成监听与命名配置。
  • 方式二 手工编辑 $ORACLE_HOME/network/admin/listener.ora,示例:
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = orcl)(PORT = 1521))
        )
      )
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = orcl)
          (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
        )
      )
    
  • 启动与验证:
    lsnrctl stoplsnrctl startlsnrctl status(应能看到监听端口 1521 与已注册服务/SID)。

四 配置客户端与服务名 TNSNAMES

  • 编辑 $ORACLE_HOME/network/admin/tnsnames.ora,示例:
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = orcl)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
    
  • 本机测试连接:
    • 本地 OS 认证:sqlplus / as sysdba
    • 通过服务名:sqlplus system/oracle@ORCL
  • 远程客户端:将同一份 tnsnames.ora 分发到客户端或使用 Easy Connect(如:sqlplus user/pass@//orcl:1521/orcl)。

五 常见问题与快速排查

  • 监听未启动或端口不对:检查 lsnrctl status,确认监听地址为 0.0.0.0:1521 或正确的主机名/IP,必要时 lsnrctl restart
  • 主机名解析失败:确认 /etc/hostsIP 主机名 映射,且 hostname 返回正确主机名。
  • 防火墙/SELinux 拦截:放行 1521/tcp,或临时 setenforce 0 验证是否为 SELinux 导致。
  • 客户端连不通:在服务端 tnsping ORCLlsnrctl status 交叉验证,确保服务名、主机、端口一致;必要时抓包或开启 sqlnet.ora 跟踪定位。

0