Ubuntu 连接 Oracle 数据库的网络设置
一 前置检查与网络连通性
- 确认网卡名称与地址:ip addr show(常见为 eth0/ens/ens160 等)。
- 测试基础网络:ping 8.8.8.8(连通性),ping www.baidu.com(DNS 解析)。
- 如使用 Ubuntu 18.04+,优先通过 /etc/netplan/*.yaml 配置网络;老版本可用 /etc/network/interfaces。
- 云服务器需确保安全组/本机防火墙放行 Oracle 监听端口 1521/TCP。
二 配置 Ubuntu 网络
- Netplan(Ubuntu 18.04+,/etc/netplan/*.yaml,示例为 ens160)
- 编辑:sudo nano /etc/netplan/50-cloud-init.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,示例为 eth0)
- 编辑:sudo nano /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
- 防火墙放行(UFW 示例):sudo ufw allow 1521/tcp;云上请在安全组放行 1521。
三 安装 Oracle 客户端与环境变量
- 安装 Instant Client(Basic 与 SQL*Plus 等)
- 下载匹配架构的 Oracle Instant Client 压缩包,解压至 /opt/oracle/instantclient_XX_X。
- 配置环境变量(写入 ~/.bashrc 或 /etc/environment)
- 建议:
export ORACLE_HOME=/opt/oracle/instantclient_XX_X
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
- 使生效:source ~/.bashrc(或 source /etc/environment)。
四 配置 Oracle 网络连接
- 创建目录与 tnsnames.ora
- 目录:mkdir -p $TNS_ADMIN
- 编辑:$TNS_ADMIN/tnsnames.ora
- 示例条目(按实际替换 HOST/PORT/SERVICE_NAME)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.103)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
- 说明:若仅直连,也可不依赖 tnsnames.ora,使用 EZConnect:sqlplus user/pass@//HOST:1521/SERVICE_NAME。
五 测试与排错
- 基本连通性
- 端口连通:nc -vz HOST 1521 或 telnet HOST 1521
- 解析与路由:ping HOST;traceroute/tracert HOST
- 客户端连接测试
- 通过别名:sqlplus username/password@ORCL
- 通过 EZConnect:sqlplus username/password@//HOST:1521/SERVICE_NAME
- 常见故障
- 防火墙/安全组未放行 1521;HOST 或 SERVICE_NAME 错误;监听未启动(服务器端);客户端库路径未设置(LD_LIBRARY_PATH);tnsnames.ora 路径不对(TNS_ADMIN)。