毫无疑问,HA或DR对Production DB是至关重要的,原因不必解释。在SQL Server的早期版本,我们可以使用故障转移群集、数据库镜像、日志传递、复制来实现我们需要的HA或DR,但它们均有优缺点:
AlwaysOn是SQL Server 2012中提供的一种全新的高可用性技术,其集中了上述高可用性技术的优点,以确保企业无需增加成本和提高复杂度,即可实现最高级别的可用性和数据保护。可在数据中心内部以及跨数据中心实现数据冗余,快速地实现应用程序故障转移,保护现有硬件资源。同时简化了其配置过程。AlwaysOn可以实现服务器实例级和数据库级配置高可用性,所对应的技术就是AlwaysOn故障转移群集实例和AlwaysOn可用性组。
AlwaysOn 故障转移群集实例利用 Windows Server 故障转移群集 (WSFC) 功能通过冗余在服务器实例级别(故障转移群集实例 (FCI))提供了本地高可用性。FCI 是在 Windows Server 故障转移群集 (WSFC) 节点上和(可能)多个子网中安装的单个 SQL Server 实例。在网络上,FCI 表现得好像是在单台计算机上运行的 SQL Server 实例,但它提供了从一个 WSFC 节点到另一个 WSFC 节点的故障转移(如果当前节点不可用)。当服务器上出现硬件或软件故障时,连接到该服务器的应用程序或客户端将会停机。在将 SQL Server 实例配置为 FCI(而非独立实例)时,该 SQL Server 实例的高可用性受到 FCI 中提供的冗余节点的保护。在 FCI 中,一次只能有一个节点拥有 WSFC 资源组。 在出现故障(硬件故障、操作系统故障、应用程序或服务故障)或进行计划的升级时,该资源组的所有权就会转移至另一个 WSFC 节点。此过程对于连接到 SQL Server 的客户端或应用程序是透明的,可以最大限度地缩短出现故障时应用程序或客户端的停机时间。故障转移群集实例提供的一些主要优点:
任何时候,只有资源组所有者(而非 FCI 中的任何其他节点)将在资源组中运行各自的 SQL Server 服务。在出现故障转移(无论是自动故障转移还是计划的故障转移)时,将发生以下事件序列:
除非出现硬件或系统故障,否则会将缓冲区缓存中的所有脏页写入磁盘。
资源组中所有相应的 SQL Server 服务都将在活动节点上停止。
资源组所有权将转移到 FCI 中的另一个节点。
新资源组所有者将启动其 SQL Server 服务。
客户端应用程序连接请求将自动定向到使用相同虚拟网络名称 (VNN) 的新活动节点。
建议:在生产环境中,我们建议将静态 IP 地址与故障转移群集实例的虚拟 IP 地址结合使用。建议不要在生产环境中使用 DHCP。 在停机情况下,如果 DHCP IP 租期已到,则它需要额外的时间重新注册与 DNS 名称关联的新 DHCP IP 地址。
关于AlwaysOn 故障转移群集实例更多信息可以参考:http://technet.microsoft.com/zh-cn/library/ms189134.aspx
AlwaysOn可用性组是SQL Server 2012中提供的全新功能,确保了应用程序数据的可用性,实现零数据丢失。AlwaysOn可用性组技术融合了数据库群集和数据库镜像的优点,此技术的一大好处是提供非共享存储,可以避免因为存储的单点故障而造成的整个可用性方案失效。
AlwaysOn可用性组基于数据库(组)级别,是将一组用户数据库(可以是一个或多个)划到一个组中。每组可用性数据库都由一个可用性副本承载。可用性副本包括一个主副本和一到四个辅助副本。 主副本用于承载主数据库,辅助副本则承载一组辅助数据库并作为可用性组的潜在故障转移目标。主副本使主数据库可用于客户端的读写连接,实现对数据库的更改操作。 同时在数据库级别进行同步。 主副本将每个主数据库的事务日志记录发送到每个辅助数据库。 每个辅助副本缓存事务日志记录,然后将它们还原到相应的辅助数据库。 主数据库与每个连接的辅助数据库独立进行数据同步。 因此,一个辅助数据库可以挂起或失败而不会影响其他辅助数据库,一个主数据库可以挂起或失败而不会影响其他主数据库。此外,用户可以借助辅助数据库来实现近实时的报表查询,将查询的负载分担到只读副本。相对于数据库群集及镜像来说,可以更好的利用硬件资源,从而提高IT效率并降低成本。
关于AlwaysOn可用性组更多信息可以参考:http://technet.microsoft.com/zh-cn/library/hh510230.aspx
AlwaysOn集过去HA技术优点于一身,是目前最高级别的HADR技术。
本文对HA相关技术进行了简要的介绍和总结,其中重点介绍了AlwaysOn,下一篇将详细介绍AlwaysOn整个配置的过程及部分管理。