Linux Oracle 负载均衡实现指南
一、方案总览与适用场景
二、RAC 原生负载均衡配置与验证
RACDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = node-vip1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = node-vip2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = racdb)
(LOAD_BALANCE = yes)
)
)
sqlplus sys/口令@RACDB as sysdba,分别执行 show parameter instance_name 或查询 gv$instance,可看到连接在不同实例(如 racdb1/racdb2)间分布。三、非 RAC 场景的软件负载均衡(HAProxy/NGINX)
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
defaults
log global
mode tcp
option tcplog
timeout connect 5000
timeout client 50000
timeout server 50000
frontend oracle_front
bind *:1521
default_backend oracle_back
backend oracle_back
balance roundrobin
server node1 192.168.1.101:1521 check
server node2 192.168.1.102:1521 check
systemctl restart haproxy && systemctl enable haproxystream {
upstream oracle_backend {
server 192.168.1.101:1521;
server 192.168.1.102:1521;
}
server {
listen 1521;
proxy_pass oracle_backend;
proxy_timeout 50s;
}
}
systemctl restart nginx && systemctl enable nginx四、验证与运维要点
show parameter instance_name 或查询 gv$instance,确认连接在不同实例间分布。五、常见误区与建议