確保網卡配置文件(位于/etc/sysconfig/network-scripts/ifcfg-ethX
)設置合理,關鍵參數包括:
BOOTPROTO=none
(禁用DHCP),明確指定IPADDR
(如192.168.1.101
)、NETMASK
(如255.255.255.0
)、GATEWAY
(如192.168.1.1
),避免IP變動導致連接問題;ONBOOT=yes
,確保系統重啟后網卡自動激活;NM_CONTROLLED=no
(若使用傳統網絡服務),避免管理沖突;ethtool ethX
命令確認網卡工作在全雙工模式(Duplex: Full
),最大化帶寬利用率。開放Oracle數據庫默認端口(1521)及所需端口,允許客戶端訪問:
sudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
,保存規則(sudo service iptables save
)并重啟服務(sudo service iptables restart
);sudo firewall-cmd --permanent --add-port=1521/tcp
,重新加載配置(sudo firewall-cmd --reload
)。監聽器配置文件($ORACLE_HOME/network/admin/listener.ora
)的關鍵優化項:
HOST
設置為服務器靜態IP或主機名(避免localhost
),確??蛻舳四苷_解析;端口保持默認1521或根據業務需求調整(如1522
),但需同步更新客戶端配置;BACKLOG
參數值(如BACKLOG=100
),提升監聽器處理并發連接請求的能力,避免因隊列滿導致連接拒絕。優先使用Easy Connect Naming(簡化客戶端配置,無需維護tnsnames.ora
文件),示例如下:
jdbc:oracle:thin:@//your_host_name:1521/your_service_name
若需使用tnsnames.ora
($ORACLE_HOME/network/admin/tnsnames.ora
),需確保CONNECT_DATA
中的SERVER=DEDICATED
(專用服務器模式),避免共享服務器模式的額外開銷。
編輯/etc/sysctl.conf
文件,添加或修改以下參數,優化TCP/IP協議棧性能:
net.ipv4.ip_local_port_range = 9000 65500
),避免客戶端連接時端口耗盡;net.ipv4.tcp_window_scaling = 1
,支持更大的TCP窗口(提升大數據量傳輸效率);net.ipv4.tcp_max_syn_backlog = 4096
(半連接隊列),減少SYN Flood攻擊導致的連接失??;開啟net.ipv4.tcp_syncookies = 1
(防止SYN Flood攻擊);net.core.somaxconn = 65536
(全連接隊列),避免因隊列滿導致連接被拒絕;net.ipv4.tcp_tw_reuse = 1
(復用TIME_WAIT連接)、net.ipv4.tcp_tw_recycle = 1
(快速回收TIME_WAIT連接),減少端口占用(注意:tcp_tw_recycle
在NAT環境下可能引發問題,需謹慎使用)。sysctl -p
使參數生效。通過SQL命令調整Oracle Net層參數,提升網絡傳輸效率:
ALTER SYSTEM SET SQLNET.INBOUND_CONNECT_TIMEOUT=120 SCOPE=SPFILE;
(客戶端連接超時設為120秒,避免長時間等待);ALTER SYSTEM SET SQLNET.SEND_BUF_SIZE=32768 SCOPE=SPFILE;
、ALTER SYSTEM SET SQLNET.RECV_BUF_SIZE=32768 SCOPE=SPFILE;
(增大發送/接收緩沖區至32KB,默認16KB,提升數據傳輸吞吐量);ALTER SYSTEM SET SQLNET.MAX_IDLE_TIME=1200 SCOPE=SPFILE;
(連接最大空閑時間設為1200秒,自動清理閑置連接,釋放資源)。使用以下工具實時查看網絡狀態:
sudo iftop -i ethX
);sudo nload ethX
);ss -tulnp
查看TCP監聽端口,netstat -anp | grep 1521
查看1521端口連接)。定期使用以下工具進行網絡性能基準測試:
iperf -s
,客戶端iperf -c server_ip -t 30
);netperf -H server_ip -t TCP_STREAM -l 60
)。對于高速網絡(如萬兆以太網),可將網卡MTU設置為9000,減少網絡包分段和重組,提升吞吐量:
sudo ip link set dev ethX mtu 9000
;/etc/sysconfig/network-scripts/ifcfg-ethX
,添加MTU=9000
,重啟網卡(sudo ifdown ethX && sudo ifup ethX
)。通過綁定多個物理網卡(如bond0
),實現帶寬疊加(如2個1G網卡綁定為2G)和故障轉移(一個網卡故障時,另一個自動接管):
/etc/sysconfig/network-scripts/ifcfg-bond0
(主接口),設置BOOTPROTO=none
、IPADDR
、NETMASK
、ONBOOT=yes
,并添加BONDING_OPTS="mode=1 miimon=100"
(mode=1為故障轉移,miimon=100表示每100毫秒檢測鏈路狀態);ifcfg-eth0
、ifcfg-eth1
),設置MASTER=bond0
、SLAVE=yes
、ONBOOT=yes
。sudo systemctl restart network
)使配置生效。