Ubuntu系统下Oracle网络配置优化指南
Oracle数据库需要稳定的网络连接,建议为数据库服务器配置静态IP地址。编辑Ubuntu的网络配置文件(新版本Ubuntu使用/etc/netplan/*.yaml,传统版本使用/etc/network/interfaces):
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: ["192.168.1.100/24"] # 静态IP地址及子网掩码
gateway4: 192.168.1.1 # 网关地址
nameservers:
addresses: ["8.8.8.8", "8.8.4.4"] # DNS服务器
应用配置:sudo netplan apply。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。/etc/resolv.conf文件包含有效的DNS服务器地址(如nameserver 8.8.8.8),避免域名解析延迟。ping命令测试数据库服务器与客户端之间的网络连接(如ping 192.168.1.100),确保无丢包或高延迟。编辑$ORACLE_HOME/network/admin/listener.ora文件,调整以下关键参数:
CONNECTIONS_MAX参数(如CONNECTIONS_MAX=1000),允许更多并发连接。CONNECTION_TIMEOUT=60(单位:秒),自动关闭闲置连接,释放资源。SERVER=DEDICATED改为SERVER=SHARED,提高连接利用率。LOG_LEVEL_LISTENER和TRACE_LEVEL_LISTENER设置为OFF,减少日志文件大小,提升监听器性能。ufw)仅允许特定IP地址访问Oracle监听端口(默认1521):sudo ufw allow from 192.168.1.0/24 to any port 1521。Jumbo Frames通过增大MTU(最大传输单元)减少网络包分段,提升吞吐量。操作步骤:
sudo ip link set dev eth1 mtu 9000(eth1为私网网卡名称)。/etc/sysconfig/network-scripts/ifcfg-eth1(或Netplan配置),添加MTU=9000,重启网卡:sudo ifdown eth1 && sudo ifup eth1。调整Ubuntu内核参数以提升网络传输效率:
# 启用TCP窗口缩放(支持更大窗口)
sudo sysctl -w net.ipv4.tcp_window_scaling=1
# 减少SYN重传次数(避免阻塞)
sudo sysctl -w net.ipv4.tcp_syn_retries=2
sudo sysctl -w net.ipv4.tcp_synack_retries=2
# 增大全连接队列(应对高并发)
sudo sysctl -w net.core.somaxconn=65536
# 开启SYN Cookies(防止SYN Flood攻击)
sudo sysctl -w net.ipv4.tcp_syncookies=1
持久化配置:将上述命令添加到/etc/sysctl.conf文件,执行sudo sysctl -p使配置生效。
ethtool工具将网卡设为全双工,避免半双工导致的带宽浪费:sudo ethtool -s eth0 duplex full speed 1000 # 设置为全双工、1Gbps
lspci -k查看网卡型号,下载并安装最新驱动,提升网络性能。通过连接池(如Oracle Universal Connection Pool、DBCP)管理数据库连接,减少连接创建和销毁的开销,提升应用响应速度。
在sqlnet.ora文件中添加SQLNET.COMPRESSION=ON,启用数据传输压缩,减少网络带宽占用(适用于高延迟或低带宽环境)。
iftop(实时流量监控)、nethogs(进程级流量分析)工具监控网络使用情况,及时发现异常。iperf工具测试网络带宽(如iperf -c 192.168.1.100),评估网络性能瓶颈。lsnrctl status查看监听状态,终止闲置连接),确保网络资源充足。