Ubuntu 上 Oracle 负载均衡配置指南
一、方案总览与选择
二、RAC 内置负载均衡配置步骤
MYDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydb)
)
)
ALTER SYSTEM SET remote_listener='LISTENERS_MYDB' SCOPE=BOTH SID='*';
SALES =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sales)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
三、在 Ubuntu 上使用 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 5000ms
timeout client 50000ms
timeout server 50000ms
frontend oracle_front
bind *:1521
default_backend oracle_back
backend oracle_back
balance leastconn
server db1 192.168.1.101:1521 check
server db2 192.168.1.102:1521 check
upstream oracle_backend {
least_conn;
server 192.168.1.101:1521;
server 192.168.1.102:1521;
}
server {
listen 80;
location / {
proxy_pass http://oracle_backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
四、高可用与验证
五、关键注意事项