数据库作为信息系统重要的基础设施,一直承担着压舱石的角色。互联网应用的高并发、海量数据使得数据库的负载越来越重,这在数据大集中的情况下愈发明显。而数据库作为信息系统唯一的“单点”,稳定性、可用性是首先要保证的目标。这里的单点并不是指数据库没有高可用方案,而是因为数据库只要涉及到数据的复制就一定是有状态的,有状态的应用更加难以运维,并且在遭遇异常时并不能做到真正意义上的无缝切换。
传统关系型数据库经过几十年的发展,目前高可用方案都已经非常成熟,目前数据库常用的高可用方案主要包括:主机HA、数据库主备和数据库集群方案。主机HA由于其适用范围广、切换时间短被广泛应用于生产环境的各类数据库上,主机层面的高可用这里不再讨论。
主备方案
主备方案是目前数据库最常用的高可用方案。主备模式主要涉及到两个问题:①数据同步问题;②主备切换问题。
数据同步涉及到不同同步模式的选择,如果采用同步模式备机宕机可能影响主机业务,同时影响性能,如果采用异步模式可能造成数据的丢失。由于银行业务的特殊性,信息系统的rpo要求等于0,即不允许数据的丢失,所以银行业一般采用同步模式,同时现在的数据库产品为了保证性能和可用性会在同步和异步之间有一个折中方案。下面就以DB2 HADR、ORACLE ADG、MYSQL半同步为例介绍一下主备方案。