温馨提示×

怎样配置Ubuntu Oracle网络

小樊
41
2025-12-06 21:04:55
栏目: 云计算

Ubuntu 连接 Oracle 的网络配置步骤

一 环境准备与客户端安装

  • 安装 Oracle Instant Client(Basic 与 SQL*Plus 等所需包),解压至如 /opt/oracle/instantclient_XX_X
  • 配置环境变量(示例为当前用户生效,生产建议统一到系统级 profile 或 systemd 环境):
    • 编辑 ~/.bashrc,加入:
      • 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
  • $TNS_ADMIN(即 $ORACLE_HOME/network/admin)下准备 Oracle 网络配置文件(如 tnsnames.ora、listener.ora)。

二 配置 Ubuntu 主机网络

  • 查看网卡名称:ip addr show(常见为 eth0ens33/ens160 等)。
  • Ubuntu 18.04 及以上优先使用 Netplan(/etc/netplan/*.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
  • 验证:ping 8.8.8.8 与 ping www.baidu.com,确认路由与 DNS 正常。

三 配置 Oracle 客户端网络文件

  • 配置 tnsnames.ora(置于 $TNS_ADMIN),示例:
    • ORCL =
      • (DESCRIPTION =
        • (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
        • (CONNECT_DATA =
          • (SERVER = DEDICATED)
          • (SERVICE_NAME = orcl)
        • )
  • 如本机同时是数据库服务器,配置 listener.ora(置于 $TNS_ADMIN),示例:
    • LISTENER =
      • (DESCRIPTION_LIST =
        • (DESCRIPTION =
          • (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
        • )
      • )
  • 说明:HOST 填服务器本机可达地址(对外服务建议 0.0.0.0),PORT 默认 1521

四 启动监听与测试连接

  • 启动/检查监听器(需已安装 Oracle Database 软件,具备 $ORACLE_HOME/bin/lsnrctl):
    • 启动:lsnrctl start
    • 状态:lsnrctl status
    • 热加载:lsnrctl reload
  • 连接测试(Instant Client 自带 sqlplus):
    • 本地 OS 认证:sqlplus / as sysdba
    • 通过 TNS 别名:sqlplus username/password@ORCL
    • 直连串:sqlplus username/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))
  • 若使用 systemd 管理监听器(可选,需 Oracle 用户与权限正确):
    • 创建 /etc/systemd/system/oracle-listener.service(ExecStart=$ORACLE_HOME/bin/lsnrctl start 等),然后:
      • sudo systemctl daemon-reload
      • sudo systemctl start oracle-listener
      • sudo systemctl enable oracle-listener。

五 常见问题与排查

  • 防火墙放行 1521/TCP(UFW:sudo ufw allow 1521/tcp;firewalld:sudo firewall-cmd --add-port=1521/tcp --permanent && sudo firewall-cmd --reload)。
  • 监听端口占用或配置变更未生效:使用 lsnrctl stop/start 或 lsnrctl reload;检查 listener.ora 中端口与 HOST。
  • 客户端找不到库:确认 LD_LIBRARY_PATH 指向 Instant Client 目录,且 TNS_ADMIN 指向含 tnsnames.ora 的目录。
  • 解析失败:检查 /etc/resolv.conf 或 Netplan 中 nameservers 配置;必要时用 IP 直连验证网络连通性。
  • 云服务器安全组/NACL:确保入站放行 1521/TCP,以及数据库所在子网路由与 ACL 正确。

0