Oracle RAC(Real Application Clusters)环境中,负载均衡故障转移是确保高可用性和性能的关键特性。档主要探讨了在Oracle RAC 11g环境下如何进行负载均衡和故障转移的测试。

负载均衡机制

负载均衡是通过分配数据库连接请求到不同的数据库实例来提升系统性能的机制。在Oracle RAC中,客户端配置LOAD_BALANCE参数为yes,即可实现负载均衡。例如,客户端的tns配置可以包含多个数据库服务器的IP地址,如 192.168.200.125192.168.200.126192.168.200.127,这些地址可以是主机IPVIP(Virtual IP)或SCAN(Single Client Access Name)地址。

LOAD_BALANCE设为yes时,Oracle网络层会自动选择最少负载的实例进行连接。对于服务端连接,如使用SCAN地址,则应将remote_listener参数设置为SCAN的端口,以实现负载均衡。若使用VIP,则需将remote_listener设置为VIP的地址列表,如 192.168.200.123192.168.200.124

故障转移(Failover)

客户端的故障转移(Transparent Application Failover, TAF)指当数据库实例发生故障时,客户端能自动切换到其他健康实例。tns配置中需要定义FAILOVER_MODE,包括类型(session)、方法(basic)、重试次数(RETRIES)和延迟时间(DELAY)。

故障转移测试

测试过程中,通过关闭一个RAC节点(如rac01)观察VIP和SCAN连接的行为。VIP连接在短暂错误后自动切换到rac02,而SCAN连接则需重新登录,因为Ezconnect在运行时无法实现故障转移。

若服务端故障转移测试失败,可能是未正确配置或服务未启动。可通过srvctl命令管理服务,如修改、启动和查看服务状态。在停止rac1CRS(Cluster Resource Manager)后,监听服务会自动转移至rac2。但在停止rac1后,所有连接方式执行的语句均会失败,此时需重新登录并连接到rac02