前两篇文章已经建立了SQL 2008 的故障转移集群,由于故障转移集群存在一个单点故障,既是当网络存储设备不可用时,整个集群就不可用了。所以为了获得更好的高可用特性和容灾机制,我们可以将集群中的某一特定SQL数据库配置一个镜像数据库。这样,即使整个集群不可用,数据库还可以从集群的主题数据库迁移到镜像上,当集群内任意节点恢复后,就可以从镜像数据上迁移回集群。
这个方案结构图如下
一、配置集群的数据库镜像
具体配置方法参见,这里大概介绍一下流程
《SQL Server 2008 数据库镜像部署实例之一》
《SQL Server 2008 数据库镜像部署实例之二》
《SQL Server 2008 数据库镜像部署实例之三》
1、此例中我们在SQL集群中建立一个用于留言板的数据库Message作 为一个主数据库
2、创建完整的Message数据库备份、日志备份
3、在用做镜像服务器的SQL Server上还原数据库备份和日志备份。注意还原的时候一定要在选项卡中,勾选Restore with norecovery。否则镜像不能成功
4、镜像设置完成后如图示:CSQL\SQL2008为集群名称和SQL实例;Hyper-V02是镜像数据库。
在数据库上点击右键——任务——启动数据库镜像监视器。在这里可以看到一些镜像的详细运作信息,包括镜像状态、事务日志同步情况等等。
至此,SQL2008镜像+故障转移集群的实例全部完成,在实际使用的过程中还需要针对不同情况对不同的
高可用方案作出灵活的选择。
二:关于运行模式
在此例中选择镜像的运行模式至关重要,因为它关乎着故障时数据的的流向问题。运行模式主要分为两类,一是带见证服务器的,另一个是不带见证服务器的。
1、带见证服务器的高安全性模式(带自动故障转移功能的高安全模式)
此模式下,当前主体服务器节点失败,故障开始在节点间转移,镜像会话故障转移到镜像数据库服务器上,故障在节点间转移完成后,先前的主体服务器集群变成镜像服务器,镜像服务器变成主体服务器。
2、不带见证服务器的高安全模式(不带自动故障转移功能的高安全性模式会话)
此模式下,如果运行当前主体服务器的节点失败,则群集中的其他节点将充当主体服务器。注意,如果群集不可用,数据库将不可用(可以强行将挂起的镜像数据库上线,这样可能会丢失数据)
3、不带见证服务器的高性能模式(此例中使用的模式)
此模式下,如果群集故障转移到另一节点,在镜像会话中,故障转移群集实例将继续作为主体服务器。如果整个群集出现问题,则可以将服务强制到镜像服务器上。
4、带见证服务器的高性能模式
此模式下,见证会话需要由两个或多个服务器实例组成的仲裁。如果会话将仲裁丢失,则不能为数据库服务。参见《见证服务器如何影响数据库可用性》