高可用性解决方案概述
本节介绍了几个提高服务器或数据库可用性的 SQL Server 高可用性解决方案。高可用性解决方案可减少硬件或软件故障造成的影响,保持应用程序的可用性,尽可能地减少用户所感受到的停机时间。
SQL Server 提供了几个使服务器或数据库具有高可用性的可选方案。高可用性可选方案包括:
故障转移群集
故障转移群集可对整个 SQL Server 实例的高可用性提供支持。故障转移群集由具有两个或多个共享磁盘的一个或多个节点或服务器组成。各应用程序将安装到一个称为“资源组”的 Microsoft 群集服务 (MSCS) 群集组中。在任何时候,每个资源组都仅属于群集中的一个节点。该应用程序服务具有一个与节点名称无关的虚拟名称,称为故障转移群集实例名称。应用程序可以通过引用故障转移群集实例名称与故障转移群集实例连接。应用程序不必知道哪一节点承载该故障转移群集实例。
SQL Server 故障转移群集实例将像单台计算机一样显示在网络中,不过它具有一种功能,即在当前节点不可用时,可以在节点之间进行故障转移。例如,在发生非磁盘硬件故障、操作系统故障或进行计划的操作系统升级时,可以在故障转移群集的一个节点上配置 SQL Server 实例,使其故障转移到磁盘组中的任意其他节点。
故障转移群集不能防止磁盘故障。您可以使用故障转移群集来减少系统停机时间,提高应用程序可用性。SQL Server Enterprise 和 SQL Server Developer 均支持故障转移群集,SQL Server Standard 也支持故障转移群集,但有一些限制。有关故障转移群集的详细信息,请参阅SQL Server 2008 故障转移群集入门和安装 SQL Server 2008 故障转移群集。
数据库镜像
数据库镜像实际上是个软件解决方案,可提供几乎是瞬时的故障转移,以提高数据库的可用性。数据库镜像可以用来维护相应生产数据库(称为“主体数据库”)的单个备用数据库(或“镜像数据库”)。
通过还原但不恢复主体数据库的数据库备份可创建镜像数据库。这使客户端不能访问镜像数据库。但是,为了进行报告,可通过创建镜像数据库的数据库快照间接使用镜像数据库。数据库快照为客户端提供了快照创建时对数据库中数据的只读访问。
每个数据库镜像配置都涉及包含主体数据库的“主体服务器”,并且还涉及包含镜像数据库的镜像服务器。镜像服务器不断地使镜像数据库随主体数据库一起更新。
数据库镜像在高安全性模式下以同步操作运行,或在高性能模式下以异步操作运行。在高性能模式下,事务不需要等待镜像服务器将日志写入磁盘便可提交,这样可最大程度地提高性能。在高安全性模式下,已提交的事务将由伙伴双方提交,但会延长事务滞后时间。
数据库镜像的最简单配置仅涉及主体服务器和镜像服务器。在该配置中,如果主体服务器丢失,则该镜像服务器可以用作备用服务器,但可能会造成数据丢失。高安全性模式支持具有自动故障转移功能的备用配置高安全性模式。这种配置涉及到称为“见证服务器”的第三方服务器实例,它能够使镜像服务器用作热备用服务器。从主体数据库到镜像数据库的故障转移通常需要几秒钟的时间。
自 SQL Server 2005 Service Pack 1 (SP1) 起,SQL Server Standard 和 SQL Server Enterprise 已经开始支持数据库镜像伙伴和见证服务器了。但各伙伴都必须使用相同的版本,只有 SQL Server Enterprise 支持异步数据库镜像(高性能模式)。SQL Server Workgroup 和 SQL Server Express 也支持见证服务器。
有关数据库镜像的详细信息,请参阅数据库镜像。
日志传送
与数据库镜像一样,日志传送是数据库级操作。可以使用日志传送来维护相应生产数据库(称为“主数据库”)的一个或多个温备用数据库。备用数据库也称为“辅助数据库”。通过还原或使用备份但不恢复主数据库的数据库备份创建每个辅助数据库。使用备份还原可以将生成的辅助数据库用于有限的报表。
日志传送配置包括一个主服务器(包含主数据库),一个或多个辅助服务器(每个服务器包含一个辅助数据库)和一个监视服务器。每个辅助服务器从主数据库的日志备份按设置的时间间隔更新其辅助数据库。日志传送涉及到主服务器创建主数据库日志备份和辅助服务器还原日志备份之间用户可修改的延迟。发生故障转移之前,必须通过手动应用全部未还原的日志备份来完全更新辅助数据库。
日志传送具有支持多个备用数据库的灵活性。如果需要多个备用数据库,可以单独使用日志传送或将其作为数据库镜像的补充。当这些解决方案一起使用时,当前数据库镜像配置的主体数据库同时也是当前日志传送配置的主数据库。
SQL Server Enterprise Edition、Standard Edition 和 Workgroup Edition 均支持日志传送。有关日志传送的详细信息,请参阅日志传送概述和日志传送管理。
复制
复制使用发布-订阅模式。这样,主服务器(称为发布服务器)便可向一个或多个辅助服务器(即订阅服务器)分发数据。复制可在这些服务器间提供实时的可用性和可伸缩性。它支持筛选,以便为订阅服务器提供数据子集,同时还支持分区更新。订阅服务器处于联机状态,并且可用于报告或其他功能,而无需进行查询恢复。SQL Server 提供三种复制类型:快照复制、事务复制以及合并复制。事务复制的滞后时间最短,常用于要求高可用性的情况。有关详细信息,请参阅改善伸缩性和可用性。
SQL Server 的所有版本都支持复制。SQL Server Express 或 SQL Server Compact 3.5 SP1 不提供复制发布。
重要提示 完善地设计与实施备份和还原策略对任何高可用性解决方案都十分重要。有关详细信息,请参阅在 SQL Server 中备份和还原数据库和备份和还原复制的数据库。
可伸缩共享数据库
使用可伸缩共享数据库功能可以扩展专门为报表生成的只读数据库。报表数据库必须驻留在一组专用的只读卷上,这些卷主要用于承载数据库。使用商用服务器硬件和商用卷硬件,您可以扩展报表数据库,使之在多台报表服务器上提供相同的报表数据视图。此功能还允许报表数据库使用平稳的更新路径。有关详细信息,请参阅可缩放共享数据库概述。