在 CentOS 上实现 Oracle 负载均衡的实用方案
一、方案总览与前提
二、RAC 场景的标准配置步骤
RACDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = scan-cluster.example.com)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = racdb)
)
)
ALTER SYSTEM SET remote_listener='LISTENERS_RACDB' SCOPE=BOTH SID='*';
lsnrctl status 检查服务是否已在多个实例上注册为 READY。v$session 或 gv$instance 的分布,确认连接在各实例间均衡。三、非 RAC 场景的可选做法
四、关键配置与验证清单
lsnrctl status 显示多实例 READY。LOAD_BALANCE=yes + FAILOVER=on;应用使用服务名而非实例名。remote_listener 指向多地址别名,使各实例参与新连接分配。v$session 按 inst_id 分组计数,观察是否均匀;也可在 lsnrctl services 输出中查看各实例 handler 数量。五、常见问题与排错要点
remote_listener 是否正确设置;确认各实例服务已注册为 READY;客户端连接串是否启用 LOAD_BALANCE=yes。LOAD_BALANCE 或仅配置了单地址;补充多地址并开启负载均衡参数。lsnrctl status 与 srvctl status service 排查。