AlwaysOn 可用性组方案

AlwaysOn 可用性组方案

1.可用性组

“可用性组”(Availability Group,简称 AG)针对一组离散的用户数据库(称为“可用性数据库”,它们共同实现故障转移)支持故障转移环境。一个可用性组支持一组主数据库以及多组对应的辅助数据库。

每组可用性数据库都由一个“可用性副本”承载。有以下两种类型的可用性副本:

(1)一个“主副本”

主副本用于承载主数据库。主副本使一组主数据库可用于客户端的读写连接。

(2)多个“辅助副本”

辅助副本承载一组辅助数据库并作为可用性组的潜在故障转移目标。主副本将每个主数据库的事务日志记录发送到每个辅助数据库。每个辅助副本缓存事务日志记录(“硬化”日志),然后将它们应用到相应的辅助数据库。

可以配置一个或多个辅助副本以支持对辅助数据库进行只读访问,并且可以将任何辅助副本配置为允许对辅助数据库进行备份。

下图显示一个可用性组,该可用性组包含一个主副本和四个辅助副本。支持最多八个辅助副本,包括一个主副本和两个同步提交辅助副本,其中1个主副本和另一个辅助副本之间可以设置为自动故障转移。

2. 数据同步与故障转移

“数据同步”的过程实现在数据库级别,主数据库与每个连接的辅助数据库独立进行数据同步。因此,一个辅助数据库可以挂起或失败而不会影响其他辅助数据库,一个主数据库可以挂起或失败而不会影响其他主数据库。

可用性组在可用性副本级别进行故障转移。可用性副本仅在数据库级别提供冗余 - 针对一个可用性组中的该组数据库。但是,故障转移不是由诸如因数据文件丢失或事务日志损坏而使数据库成为可疑数据库等数据库问题导致的。

部署 AlwaysOn 可用性组需要一个 WSFC 群集。给定可用性组的每个可用性副本必须位于相同 WSFC 的不同节点上。WSFC 为每个可用性组创建一个资源组,然后监视此资源组,以便评估主副本的运行状况从而决定何时进行故障转移。

3. 可用性组的优势

可用性组具有以下优势:

(1)与 FCI 相比,可用性组不依赖于共享存储。

(2)辅助副本数量最多可达到8个(SQL Server 2012 限制为4个)。

(3)辅助副本可以直接提供只读访问。

(4)“数据同步”延迟时间已经极大地缩短,甚至可以“同步提交”。而且可用性组的辅助副本在还原事务日志时不需要断开客户端的已有连接。

(5)提供 VNN 和虚拟 IP 地址,供客户端透明访问。

4. 可用性组的不足

可用性组具有以下不足:

(1)SQL Server 2012 和 SQL Server 2014 必须在企业版中才能启用此功能,增加了用户的投入成本。SQL Server 2016 允许标准版启用“Basic 可用性组”,如果需要全部功能也需要使用企业版。

(2)在部署可用性组的过程中,集中了日志传送、数据库镜像和 FCI 的大部分功能与属性,增加了部署的复杂程度。

5. 可用性组互操作性

AlwaysOn 可用性组与数据库镜像都不支持跨数据库事务和分布式事务。这是因为无法保证事务的原子性和完整性,可能出现逻辑上的不一致。

AlwaysOn 可用性组与数据库镜像实际上使用相同的数据同步机制(包括使用相同的端点、进程等),因此,这两种技术不可以混合部署。

在 AlwaysOn 可用性组中仍然可以使用包含的数据库、数据库加密、数据库快照、全文索引、FILESTREAM 功能等。在部署时需要注意各节点对某些共享资源(文件夹、网络磁盘等)的访问权限,以及考虑指定网络资源时使用虚拟网络名称作为计算机名。

补充说明:

###读写分离####

读写分离并不是数据库自有的功能,因为客户端的连接字符串就已经指定了目标数据库,SQL Server 数据库引擎不会主动在客户端的请求中筛选哪些是只读访问,更不会将只读访问重定向到另一个 SQL Server 实例。

AlwaysOn 可用性组提供了只读路由访问,如果客户端的连接字符串申明了只读单身,那么 AlwaysOn 可用性组侦听器可以根据只读路由表的顺序将连接重定向到只读副本。

读写分离是最初级的负载平衡方案,实现的功能只是将一些只读访问(例如,报表查询,备份等)定向到只读副本,而且必须在设计应用程序时就要考虑如何分摊只读访问。

根据只读副本的数据更新的延迟需求,可以考虑采用同步提交(例如,AlwaysOn可用性组)、异步提交(例如,AlwaysOn可用性组、数据库镜像、日志传送、复制等)等解决方案。

###分布式系统的 CAP 理论###

数据库的负载平衡是基于分布式架构进行设计的,因此需要了解分布式领域的 CAP 理论。

CAP 理论证明任何分布式系统只可以同时满足以下二点,没法三者兼顾。

◆ C(Consistency):一致性被称为原子对象,任何的读写都应该看起来是“原子“的,或串行的。写后面的读一定能读到前面写的内容。所有的读写请求都好像被全局排序。

◆ A(Availability):对任何非失败节点都应该在有限时间内给出请求的回应。(请求的可终止性)

◆ P(Partition Tolerance):允许节点之间丢失任意多的消息,当网络分区发生时,节点之间的消息可能会完全丢失。

根据 CAP 理论,架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。其中,关系数据库的 ACID 模型要求的强一致性就以牺牲性能和高可用性为代价,因此很难进行分区,通常部署为“单活”模式,即只能有1个活动节点(CAP理论中的“分区”概念)。如果没有要求强一致性,则可以部署多个活动节点,即“多活”模式。

根据具体的业务需求和逻辑结构,可以单独或组合使用负载平衡方案,从而实现满意的性能目标。例如:一家电商的网站,在线订单模块允许少量的数据不一致性(可以通过在线排队等手段进行二次处理;或者通过客服热线进行善后工作),可以考虑 A+P 模式,优先实现性能目标;在线支付模块必须使用 C+A 模式,保证强一致性,以及实现高可用;消息管理、查询统计等模块由于不需要及时响应,则可以考虑 C+P 模式。

###Alwayson优点###

支持最多五个可用性副本。 “可用性副本”是可用性组的实例化,此可用性组由特定的 SQL Server 实例承载,该实例维护属于此可用性组的每个可用性数据库的本地副本。 每个可用性组支持一个主副本和最多四个辅助副本。

支持替代可用性模式,如下所示:异步提交模式。 此可用性模式是一种灾难恢复解决方案,适合于可用性副本的分布距离较远的情况。同步提交模式。 此可用性模式相对于性能而言更强调高可用性和数据保护,为此付出的代价是事务延迟时间增加。 一个给定的可用性组可支持最多三个同步提交可用性副本(包括当前主副本)。

支持几种形式的可用性组故障转移:自动故障转移、计划的手动故障转移(通常简称为“手动故障转移”)和强制的手动故障转移(通常简称为“强制故障转移”)。

利用只读连接访问,与副本的只读连接可以在此副本作为辅助副本运行时访问和读取其数据库。 当副本作为辅助副本运行时,对副本的数据库执行备份操作。通过使用活动辅助功能,可更好地利用辅助硬件资源,从而提高 IT 效率并降低成本。 此外,通过将读意向应用程序和备份作业转移到辅助副本,有助于提高针对主副本的性能。

支持每个可用性组的可用性组侦听器。 “可用性组侦听器”是一个服务器名称,客户端可连接到此服务器以访问 AlwaysOn 可用性组的主副本或辅助副本中的数据库。 可用性组侦听器将传入连接定向到主副本或只读辅助副本。 侦听器在可用性组故障转移后提供快速应用程序故障转移。

关于alwayson的相关术语解释

可用性组 (availability group):一个容器,用于一组共同实现故障转移的数据库(“可用性数据库”)。

可用性数据库 (availability database):属于可用性组的数据库。 对于每个可用性数据库,可用性组将保留一个读写副本(“主数据库”)和一个到四个只读副本(“辅助数据库”)。

主数据库 (primary database):可用性数据库的读写副本。

辅助数据库 (secondary database):可用性数据库的只读副本。

可用性副本 (availability replica):可用性组的实例化,该可用性组由特定的 SQL Server 实例承载,并维护属于该可用性组的每个可用性数据库的本地副本。 存在两种类型的可用性副本:一个“主副本”和一至四个“辅助副本”。

主副本 (primary replica):可用性副本使主数据库可用于来自客户端的读写连接,还用于将每个主数据库的事务日志记录发送到每个辅助副本。

辅助副本 (secondary replica):维护各可用性数据库的辅助副本的可用性副本,充当可用性组的潜在故障转移目标。 或者,辅助副本可以支持对辅助数据库进行只读访问,并支持对辅助数据库创建备份。

可用性组侦听器 (availability group listener):一个服务器名称,客户端可连接到此服务器以访问 AlwaysOn 可用性组的主副本或辅助副本中的数据库。 可用性组侦听器将传入连接定向到主副本或只读辅助副本。

详情参考:http://technet.microsoft.com/zh-cn/library/hh510230.aspx

Alwayson故障转移群集实例

作为 SQL Server AlwaysOn 产品/服务的一部分,AlwaysOn 故障转移群集实例利用 Windows Server 故障转移群集 (WSFC) 功能通过冗余在服务器实例级别(故障转移群集实例 (FCI))提供了本地高可用性。 FCI 是在 Windows Server 故障转移群集 (WSFC) 节点上和(可能)多个子网中安装的单个 SQL Server 实例。 在网络上,FCI 表现得好像是在单台计算机上运行的 SQL Server 实例,但它提供了从一个 WSFC 节点到另一个 WSFC 节点的故障转移(如果当前节点不可用)。

详情参考:http://technet.microsoft.com/zh-cn/library/ms189134.aspx

Alwayon可用性组概述

详情参考:http://technet.microsoft.com/zh-cn/library/ff877884.aspx

Alwayson可用性组入门

建议大家在部署时候,参考入门的步骤进行配置。

详情参考:http://technet.microsoft.com/zh-cn/library/gg509118.aspx

参考链接:http://543925535.blog.51cto.com/639838/1341805/

时间: 2024-10-04 21:09:49

AlwaysOn 可用性组方案的相关文章

Skype for Business后端服务器部署AlwaysOn可用性组实战篇

企业内部自建的Lync Server 2013统一通信平台,在Skype for Business Server 2015发布后,通过就地升级方式已经完成升级,原来后端数据库高可用架构保持不变,仍采用镜像和见证的自动故障转移方式.当要改变后端数据库服务器高可用架构方式,采用AlwaysOn可用性组,如何顺利部署实施呢?且看下文详细的实战部署,阅读后可以顺利改造现有后端高可用架构. 前面讲到,现有SfB后端数据库采用镜像的高可用,如何顺利的从镜像方式改为AlwaysOn可用性组,本实验环境涉及到部

005.SQLServer AlwaysOn可用性组高可用简介

一 AlwaysOn 可用性组 1.1 AlwaysOn 可用性组概述 AlwaysOn 可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案.SQL Server 2012 中引入了 AlwaysOn 可用性组功能,此功能可最大程度地提高一组用户数据库对企业的可用性. "可用性组"针对一组离散的用户数据库(称为"可用性数据库",它们共同实现故障转移)支持故障转移环境. 一个可用性组支持一组读写主数据库以及一至四组对应的辅助数据库.可使辅助数

部署SQL2012 AlwaysOn可用性组<一>

一.准备环境 1.准备3台计算机 操作系统均为windows server 2008 R2 数据库:test 域控制器,IP:192.168.2.218/24 主节点w65,IP:192.168.2.65/24 辅助节点w67:IP:192.168.2.67/24 测试关闭相关防火墙,安装相关组件如:framew 3.5 sp1,同时windows server 2008 R2安装SQL 2012 需要安装组件"Windows Server 2008 R2 Service Pack 1补丁包&q

部署SQL2012 AlwaysOn可用性组<二>

!!!接上篇部署SQL2012 AlwaysOn可用性组<一> 一.向现有可用性组添加可读副本辅助服务器 1.新增一台w68服务器(IP:192.168.2.68/24),准备安装环境同w67 1)更新windows 2008 R2补丁 2)安装framework 3.5 sp1.故障转移集群组件 3)安装SQL 2012 2.w65服务器故障转移集群把w68服务器添加到集群中 1)打开"故障转移集群管理器"--选择SQLCluter.sz1card1.com集群--点击节

目录:第16章 AlwaysOn 可用性组

第16章  AlwaysOn 可用性组 16.1  实现 AlwaysOn 可用性组  http://mssqlmct.blog.51cto.com/9951484/1661520 16.2  添加副本和数据库  http://mssqlmct.blog.51cto.com/9951484/1661528 16.3  添加侦听器 http://mssqlmct.blog.51cto.com/9951484/1661533 16.4  监视 AlwaysOn 可用性组  http://mssqlm

16.1 实现 AlwaysOn 可用性组

16.1  实现 AlwaysOn 可用性组 以下通过实验说明配置 AlwaysOn 可用性组的过程. 现有环境如下: 服务器名称 角色 SQLSVR1 WSFC 节点,默认实例 SQLSVR2 WSFC 节点,默认实例 SQLSVR3 WSFC 节点,默认实例 需要添加到 AlwaysOn 可用性组的数据库为 SQLDB01 和 SQLDB02. 16.1.1 先决条件 SQL Server 2012及后续产品才支持 AlwaysOn 可用性组,而且只有企业版才可以使用此功能. 加入 Alwa

16.4 监视 AlwaysOn 可用性组

16.4  监视 AlwaysOn 可用性组 16.4.1 打开显示面板 在 SSMS 中,选择一个可用性组,右键单击它,然后在右键菜单中选择"显示面板". 面板显示的信息主要分为3部分. 第一部分显示当前可用性组的基本信息,包括:当前状态.主实例位于哪个节点.故障转移模式.群集状态. 第二部分为可用性副本概略列表. 第三部分为可用性副本的详细列表.可以单击"添加/删除列"右边的图标(向上的三角形),从而隐藏这个详细列表. 概略列表和详细列表可以手动添加或删除列.其

SQL群集下安装多实例并启用AlwaysOn可用性组功能

SQL群集+安装新实例+启用AlwaysOn可用性组功能 主要内容 并行安装运行SQL server 的不同版本和实例 启用AlwaysOn可用性组功能 实验环境 并行安装SQL Server 2012 +SQL Server 2016 场景1:基于SQL Server 2012搭建了Cluster01-SQL群集.   hostname IP 实例名 端口 说明 AD dc1.contoso.com 192.168.136.150       SQL SQL1.contoso.com 192.

sql server 2014 alwayson 可用性组 特性

一个"主副本",主副本用于承载主数据库.主副本使一组主数据库可用于客户端的读写连接. 可以配置一个或多个辅助副本以支持对辅助数据库进行只读访问,并且可以将任何辅助副本配置为允许对辅助数据库进行备份. 支持最多八个辅助副本, 包括一个主副本和两个同步提交辅助副本(即三个同步节点),(可用性组的辅助副本在还原事务日志时不需要断开客户端的已有连接,区别与logshipping) 其中1个主副本和另一个辅助副本之间可以设置为自动故障转移(即两个同步提交的辅助副本中选择一个). 一个辅助数据库可