应用维护:SQL Server 2008高可用性
博客园 发表于:12年09月05日 10:48 [原创] DOIT.com.cn
有一个法则叫“九法则”,人和高可用性解决方案的终极目标是五九法则,即99.999%,这样每年只有比5分钟多一点的死机时间。目前灾难恢复一词已经不再受人们欢迎。人们更喜欢使用的词是业务连续性business continuity。其思想是希望防止系统变得不可用,如果服务确实失败,使其对环境的影响最小。这篇文章介绍的高可用性解决方案可以帮助在停机事件中维护业务连续性。
故障转移集群
SQL Server集群基于Windows服务集群服务,集群的工作方式是在两个或多个服务器(称为节点)作为一个单独的虚拟服务器为终端用户服务。
如果要开始集群的话,需要两台服务器,还需要一个共享的存储设备。串行联接SCSI,光纤通道和iSCSI是许多集群存储设备的常用接口。如果选择在集群解决方案中使用iSCSI,那么需要确保对于Windows网络适配器相分离的iSCSI联接采用一个专用的网络接口卡。如果使用Windows Server 2008,确保使用一个兼容的存储设备。在这个设备上将至少创建两个卷。一个卷将作见证磁盘,保存集群配置信息。而对于应用程序,将需要一个或多个数据卷。此外,要使集群起作用,需要为它定义一个虚拟服务器。该虚拟服务器在客户端和终端应用程序看来是一个服务器。它有一个唯一名称和IP地址,可以将 SQL Server安装在这个虚拟服务器上。
主动/被动集群:在主动/被动集群中,对于单个应用程序,有一个节点被指派为主节点,所有进入该集群虚拟服务器的请求都被导向至主节点。辅助节点时故障转移节点,只有在主节点不可用且其中没有检测信号时,他们被变成主动的。当这种情况发生时,一个辅助节点会开始接收集群的工作,使得应用程序继续运行而几乎没有明显的中段。
主动/主动集群:主动/主动集群是这样一幅场景,其中运行着许多个集群感知的应用程序,而且每个应用程序都有一个不同的节点被配置为该应用程序的主节点。这主要是受数据库和其他应用程序服务的工作方式的限制。例如,如果只关注SQL Server,那么每次只有一个服务器可以写主动事务日志。由于其他节点无法写入同一事物日志,他们还能做什么呢?可以配置另一个虚拟服务器,把一个现有的备用节点配置为该虚拟服务器的主节点,然后在该服务器上安装另一个SQL Server实例。假如,假定您有两个服务器,节点A和节点B,节点A是集群服务器1的主节点,节点B是它的辅助节点。您决定使用这两个服务器创建一个叫做集群服务器2的辅助虚拟服务器。只有在这个时候节点B才是主节点,而节点A是辅助节点。要想使主动/主动集群发挥作用,那么如果两个虚拟服务器都出现故障,备用服务器必须能够处理他们两个加起来的工作量。因此,如果服务器A死机了,服务器B就必须能够响应针对两个虚拟服务器的客户端请求。
日志传送
日志传送时用于维护业务连续性的另一种方法。和故障转移集群不一样,日志传送时基于每台数据库进行管理的。它允许指定一个或多个服务器来存储某数据库的辅助副本。其实现方法是 先常规备份事务日志,然后把这些备份还原到一个辅助服务器上。
准备日志传送:首选确定主服务器和备用服务器之间存在可靠的网络连接。其次,确保数据库使用了完整恢复模式;还需要确保备用服务器上不存在目标数据库。
使用SQL Server Management Studio配置日志传送:右击该数据库,选择任务-传送事务日志命令。在事务日志传送页面上,可以配置备份数据库,指定辅助服务器和监视服务器所需的选项。首先,必须把这个数据库启用为日志传送的主服务器。单击“备份设置”将会出现一个新的窗口,允许指定备份操作的位置和频率。如果有多个辅助服务器,而且希望在其中一个辅助服务器升级为主服务器之后继续使用备用辅助服务器,那么可以考虑把备份文件夹放在所有服务器都可以访问的共享位置上,但要确保当主服务器上发生一般的服务故障时,该位置不会受到影响。一旦配置了备份作业设置,就可以配置一个或多个辅助服务器。可以将辅助服务器配置为热备用服务器,使之处于NO RECOVERY状态,直至出现故障转移,或者也可以把它们配置为数据库的一个只读副本。
要配置一个新的辅助服务器,可以在事务日志传送页面上单击添加按钮。如果用于故障转移,那么辅助服务器的名称应当和主服务器一致,这样可以避免重新配置客户端应用程序。然后还可以配置数据库初次还原的选项。在复制文件选项卡中,可以配置有关文件复制任务的选项。可以创建一个新的作业,把备份操作创建的文件复制到辅助服务器上的目标文件夹中。在还原事务日志选项卡中可以配置还原操作,包括恢复模式,频率和使用备用数据库的任务。还可以配置延迟还原操作以保证备份及复制操作有机会完成,并制定在多长时间内如果没有执行还原就发出警报,还可以为还原任务配置适当的计划。
另外,也可以配置服务器来监视日志传送操作,但并不是必须这么做。该服务器应该是一个不直接参与日志传送过程的SQL Server。要添加监视服务器,可以在事务日志传送页面上选择“使用监视服务器实例”,然后单击设置按钮添加和配置新的服务器。在配置了日志传送监视器之后,也可以使用它来查看该服务器监视的所有日志传送数据库的报表。为此,可以在对象资源管理器中右击服务器名称,选择报表-标准报表-事务日志传送状态命令。