双机热备常见问题及解决方案
对于企业重要的应用系统而言,保证系统能持续、可靠地提供服务是非常重要的,因此就出现了对高可用性的需求和高可用性的解决方案。
对于如何选择高可用性的解决方案,特别是关于双机热备的方案选择,常见的有以下问题:
Q:高可用性的解决方案有哪些?
A:从广义讲,高可用性包括一切避免系统服务中断的技术。而一般所说的系统高可用性,往往特指服务器的双机或多机热备/容错。
Q:什么时候需要双机热备?
A:决定是否使用双机热备,正确的方法是要分析一下系统的重要性以及对服务中断的容忍程度,以此决定是否使用双机热备。即,你的用户能容忍多长时间恢复服务,如果服务不能恢复会造成多大的影响。
Q:双机热备方案与集群的区别?
A:从概念上,双机热备是集群(Cluster)的一种。集群一般包括两类,一类是纯粹应用服务器的集群,各个应用服务器都访问统一的数据库服务器,但彼些并不需要共享存储,这种集群是比较简单的,往往采取各个服务器同时提供服务的方式,并且往往同时采用负载均衡技术。有另一类是数据库服务器(或其他需要访问存储数据的系统如Exchange、Notes)的集群。集群可能包括多台服务器。集群软件除了支持双机工作外,还可以支持多台服务器(Multi Node)工作,同时部署多个应用,并在多个服务器间灵活地设置接管策略。
Q:数据库服务的高可用性有几种方式?
A:最简单的,是采用备机的方式。这其实不属于高可用性的范围,但可以将出现故障后恢复服务的时间控制在几十分钟的量级,而且备机平时还可用作其他用途。这种方式是一种低成本的简单方案,对于不是非常重要的应用比较适合。它不适用于重要应用,但是除非你的应用停上几天都无所谓,否则至少要有这一级别的保护措施。
第二种是通过软件方式实现双机热备。即不采用共享的存储设备,而是数据不再单点存储,本机数据可以向多台主机做实时的数据复制。这种方式的优点是节省了昂贵的存储设备投资。缺点是或者会产生数据的差异,或者会影响数据库的速度。比如,如果在服务中断时切换到备机,则可能有少量已经在主机完成的事务在备机上尚未实现。而与备份数据的恢复不同,备机启动后,后续的操作已经进行,因此丢失的事务就很难补上。因此,这种方式适用于对于丢失少量数据不是非常敏感的系统。
第三种是基于共享存储设备和双机软件实现双机热备。这是标准的方法,能够在无人值守的情况下提供秒级的切换,并且不会丢失数据。当然,投资会比较高。
Q:数据库双机热备时,双机是同时工作吗?
A:在一般的中小规模应用中,数据库的双机热备都是主/备方式,主服务器工作时另一台等待,在主服务器出现故障时借助双机软件自动切换至另一台服务器。而有些大规模应用为充分利用设备,可以采用并行服务的方式,两台服务器同时提供服务,如Oracle的RAC(Oracle Real Application Cluster),以及支持SQL Server并行服务的数据库路由器软件ICX