Ubuntu系统中Oracle网络参数的配置方法

一 系统网络与防火墙设置
- 确认网卡名称:先执行 ip addr show 查看当前网卡信息,常见网卡名称包括 ens33/ens18/eth0。
- 配置静态IP(Ubuntu 18.04+ 通常使用 Netplan):编辑 /etc/netplan/*.yaml,示例:
network:
version: 2
renderer: networkd
ethernets:
ens33:
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,依次设置 address、netmask、gateway、dns-nameservers,完成后执行 sudo systemctl restart networking 重启网络服务。
- 防火墙放行 Oracle 监听端口:执行 sudo ufw allow 1521/tcp;如果部署在云服务器环境,还需要在云平台安全组中同步放行 TCP 1521 端口。
二、Oracle客户端及环境变量配置
- 安装 Oracle Instant Client(Basic 与 SQL*Plus 组件),并解压到 /opt/oracle/instantclient_XX_X 目录。
- 配置环境变量(可写入 ~/.bashrc 或 /etc/profile.d/oracle.sh):
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,使设置立即生效。 - 权限与目录检查:确保 $ORACLE_HOME/network/admin 目录已经存在并具备可读权限,权限通常建议设置为 755。
三 Oracle网络核心配置文件说明
- 配置文件路径:相关文件通常都位于 $TNS_ADMIN(即 $ORACLE_HOME/network/admin)目录下。其中 listener.ora 在 UNIX/Linux 系统中的默认位置为 $ORACLE_HOME/network/admin/listener.ora。
- listener.ora(监听器配置):
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
)
配置完成后可通过 lsnrctl start 启动监听,使用 lsnrctl status 查看监听器状态。 - tnsnames.ora(客户端连接别名):
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
配置后可使用 tnsping ORCL 测试网络服务名是否正常解析;连接数据库时使用:sqlplus username/password@ORCL。 - sqlnet.ora(名称解析与安全控制):
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)可选:仅允许指定网段TCP.VALIDNODE_CHECKING = YESTCP.INVITED_NODES = (192.168.1.0/24) - 动态注册:如果数据库实例没有自动注册到监听器,可手动设置 local_listener(示例):
ALTER SYSTEM SET local_listener=‘(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))’ SCOPE=BOTH;
四 验证方法与常见故障排查
- 基本网络连通性:先 ping 数据库主机,再通过 nc 或 telnet 测试 1521 端口是否可访问。
- 监听状态检查:执行 lsnrctl status,应能看到监听地址为 0.0.0.0:1521 或指定 IP,同时确认服务和实例已经成功注册。
- 客户端解析验证:tnsping ORCL 返回 OK 表示 TNS 解析正常,随后可继续使用 sqlplus 进行数据库连接测试。
- 常见错误与处理:
- ORA-12170 TNS Connect timeout:重点检查防火墙或安全组是否已放行 1521,并确认 HOST 地址能够正常访问。
- ORA-12541 TNS:no listener:执行 lsnrctl start 启动监听器,并确认监听程序确实运行在 1521 端口。
- 动态注册失败:检查 local_listener 参数配置是否正确,并确认其与监听地址和端口保持一致。
五 性能与安全优化建议(可选)
- 传输优化:在内网或私有网络环境下,可以启用 Jumbo Frames(MTU=9000)提升传输效率,但要保证交换机和通信两端网卡配置一致,测试稳定后再进行持久化设置。
- TCP/IP 内核参数(/etc/sysctl.conf):
net.core.somaxconn = 65536
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_window_scaling = 1
修改后执行:sudo sysctl -p,使内核参数生效。 - 网卡速率与双工模式:可使用 ethtool -s eth0 speed 1000 duplex full 进行设置。
- 访问控制:优先通过 ufw 或云安全组限制允许访问 1521 端口的来源网段;在 sqlnet.ora 中也可以结合 TCP.INVITED_NODES 实现更细致的白名单控制,但需要注意其对 SCAN 或负载均衡场景的影响。
