温馨提示×

如何配置Ubuntu Oracle网络连接

小樊
41
2025-11-29 01:18:37
栏目: 云计算

Ubuntu连接Oracle的网络配置步骤

一 环境准备与网络连通性

  • 安装 Oracle Instant Client(Basic 与 SQL*Plus),解压至如 /opt/oracle/instantclient_XX_X,并设置环境变量(示例):
    • 编辑 ~/.bashrc/etc/environment,加入:
      • export ORACLE_HOME=/opt/oracle/instantclient_XX_X
      • export LD_LIBRARY_PATH=$ORACLE_HOME
      • export TNS_ADMIN=$ORACLE_HOME/network/admin
      • export PATH=$ORACLE_HOME:$PATH
    • 使配置生效:source ~/.bashrc 或 source /etc/environment
  • 确认网络连通与监听可达:
    • 查看网卡与地址:ip addr
    • 测试外网:ping 8.8.8.8;测试域名:ping www.baidu.com
    • 测试数据库端口(默认 1521):nc -vz <数据库主机IP或域名> 1521
    • 如通过 SSH 隧道访问,先建立本地端口转发(例如本地 11521 转发至远端 1521),后续用本地端口连接。

二 配置Oracle客户端网络文件

  • 设置 TNS_ADMIN 指向你的网络配置目录(如 $ORACLE_HOME/network/admin),在该目录创建或编辑 tnsnames.ora
    • ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = <数据库主机或IP>)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <你的服务名,如 orcl>) ) )
  • 说明:
    • 若使用 EZConnect,可直接用 sqlplus user/password@//:/ 测试,无需 tnsnames.ora。
    • 若采用 TNS 别名方式,请确保 TNS_ADMIN 指向包含 tnsnames.ora 的目录,并使用 sqlplus user/password@ORCL 测试。

三 Ubuntu系统网络配置

  • Ubuntu 18.04 及以上默认使用 Netplan。编辑 /etc/netplan/*.yaml(如 50-cloud-init.yaml01-netcfg.yaml),示例(静态 IP):
    • network:
      • version: 2
      • renderer: networkd
      • ethernets:
        • ens160:
          • dhcp4: no
          • addresses: [192.168.1.100/24]
          • gateway4: 192.168.1.1
          • nameservers:
            • addresses: [8.8.8.8, 8.8.4.4]
    • 应用:sudo netplan apply
  • 旧版(使用 ifupdown)可编辑 /etc/network/interfaces
    • auto eth0
    • iface eth0 inet static
      • address 192.168.1.100
      • netmask 255.255.255.0
      • gateway 192.168.1.1
      • dns-nameservers 8.8.8.8 8.8.4.4
    • 使配置生效:sudo systemctl restart networking
  • 完成后再次验证外网与数据库端口连通性。

四 连接测试与常见问题

  • 连接测试:
    • 使用 EZConnect:sqlplus user/password@//:/
    • 使用 TNS 别名:sqlplus user/password@ORCL
    • 本机装有数据库时,可用:sqlplus / as sysdba
  • 常见问题与排查要点:
    • 防火墙/安全组未放行 1521(或隧道端口),在服务器与云安全组放通对应端口。
    • 监听未启动或 SERVICE_NAME/SID 不匹配,请在数据库侧确认监听状态与 service_name。
    • 客户端找不到库或配置,检查 LD_LIBRARY_PATHTNS_ADMINtnsnames.ora 路径及内容。
    • 接口名不一致(如 eth0/ens160/enp0s3),以 ip addr 输出为准,修改 Netplan/ifupdown 配置时使用实际接口名。

0