数据库集群的故障转移与负载均衡技术解析
在当今互联网蓬勃发展的时代,计算机系统的“可用性”和“正常运行时间”成为了关键指标。对于全球各地的企业应用而言,确保系统 7×24 小时可用至关重要,这就需要借助故障转移和负载均衡技术来实现。
1. 系统可用性概述
系统可用性是指系统正常运行并可供操作的时间。这里的“系统”涵盖了应用栈的所有层级,包括应用层、防火墙、互连设备、网络、存储子系统及其控制器等。为了达到 99.999% 的可用性要求,企业系统需要采用冗余架构,并在远程位置存储数据以应对灾难情况。
系统可用性的提供取决于业务需求。如果业务需要全年 365 天、每天 24 小时支持客户,如互联网书店,那么冗余架构必不可少;反之,如果系统停机不会对业务造成重大影响,则可能不需要如此高的冗余度。此外,可用性也可以通过每年允许的停机时间来衡量。
任何组织都希望保持组件的平均无故障时间(MTBF)尽可能高。在单实例 Oracle 配置中,要满足 99.999% 的可用性要求也面临挑战。每个数据库都可能出现故障,当数据库或其组成系统出现故障时,用户需要连接到其他位置的数据库继续操作。在集群数据库环境(如 RAC)中,使用 TAF 和 FCF 等数据库功能可以在节点或实例故障时,将用户透明地迁移到其他节点。
RAC 允许多个 Oracle 实例访问同一物理数据库,GCS 和 GES 可确保不同节点缓存之间的一致性,能有效防止节点故障或通信故障。除了提供可用性和故障转移功能,RAC 还能通过在集群中的各个实例之间分配工作负载,实现负载均衡和可扩展性。