浅谈实现SQL Server远距离异地容灾

SQL Server 从2012 推出 SQL Alwayson 以来,使我们对SQL Server数据库容灾产生翻天覆地的变化。 其优点很明显

1、不依赖于特殊硬件

2、可以跨越子网

3、现在已经可以支持到9个副本,包括一个主副本和两个同步提交辅助副本。

于是我们诞生了像如下图的容灾方案,跨越数据中心的方案,如异地容灾。 也有用户使用此方案实现云端和本地的数据容灾,并且还可以实现故障转移。

看起来也是很完美的方案,实施的过程中很多用户发现alwayson会无缘无故的出现故障。在配置过程中可以配置HealthCheckTimeout 属性以放宽SQL Server的check 时长。

此属性的默认值为 60,000 毫秒(60 秒)。 最小值为 15,000 毫秒(15 秒)。

但是设置了这个参数也会出现问题。因为在通常的alwayson的依赖于windows 群集WSFC运行,WSFC虽然现象可以跨越子网,实现多子网的群集,但是WSFC也需要依赖于心跳进行CHECK系统是否正常。而这个对网络要求稳定性较高。心跳的时间要求如下 。

    Parameter        Default        Range   
   SameSubnetDelay      1000 milliseconds      250-2000 milliseconds  
   CrossSubnetDelay      1000 milliseconds      250-4000 milliseconds  
   SameSubnetThreshold      5      3-10  
   CrossSubnetThreshold      5      3-10  

因此会出现情况,由于物理距离,云上和本地的延迟不可避免,再由于网络的波动,会导致windows群集心跳认为对方故障,而出现alwayson故障。

因此在运维层面来讲,会出现很多的问题。虽然alwayson解决了数据的容灾备份的问题,但是网络很难实现远距离的高质量的要求。

SQL 2016 有了新的功能,来帮助实现新的构架,满足跨区域容灾备份的要求,并且实现性能横向的扩展。

分布式可用性组

这个功能就是 :分布式可用性组

分布式可用性组可为跨多个数据中心的可用性组提供更加灵活的部署方案。 对于过去在灾难恢复等方案中使用日志传送等功能的情况,现在甚至可以使用分布式可用性组。 不过,与日志传送不同,分布式可用性组不得包含延迟的事务应用程序。 这意味着,对于错误更新或删除数据的人为过失事件,可用性组或分布式可用性组无法提供帮助。

分布式可用性组是松散耦合的,在这种情况下,这意味着它们无需单个 WSFC 群集,并且它们由 SQL Server 维护。 由于 WSFC 群集是单独进行维护的,且最初在这两个可用性组之间异步同步,因此很容易在其他站点配置灾难恢复。 每个可用性组中的主要副本都同步其自己的次要副本。

  • 分布式可用性组仅支持手动故障转移。 在切换数据中心的灾难恢复情况下,不应配置自动故障转移(除极少数例外)。

  • 很可能无需为多站点或子网 WSFC 群集设置某些传统项或参数(如 CrossSubnetThreshold),但仍需了解数据传输的另一层的网络延迟。 不同之处在于,每个 WSFC 群集都维护其自身的可用性;群集并非包含四个节点的大型实体。 如上图所示,实际有两个单独的双节点 WSFC 群集。

  • 建议采用异步数据移动,因为此方法将用于灾难恢复目的。

  • 如果在主要副本和第二个可用性组的至少一个次要副本之间配置同步数据移动,并在分布式可用性组上配置同步移动,则分布式可用性组将等待,直到所有同步副本确认它们具有数据。

单个分布式可用性组最多可拥有 16 个次要副本,具体视需要而定。 因此,它最多可拥有 18 个副本供读取,包括不同可用性组的两个主要副本。 此方法意味着,多个站点可实现近实时访问,以便向各应用程序报告。与仅使用单个可用性组相比,分布式可用性组可帮助扩大只读场。 分布式可用性组可通过两种方式扩大可读副本:可使用分布式可用性组中第二个可用性组的主要副本来创建另一个分布式可用性组,即使数据库未处于恢复状态。还可以使用第一个可用性组的主要副本来创建另一个分布式可用性组。换句话说,就是主要副本可以参与两个不同的分布式可用性组。 下图显示 AG 1 和 AG 2 均参与分布式 AG 1,而 AG 2 和 AG 3 参与分布式 AG 2。 AG 2 的主要副本(或转发器)是分布式 AG 1 的次要副本和分布式 AG 2 的主要副本。

下图显示 AG 1 为两个不同分布式可用性组的主要副本:分布式 AG 1(包含 AG 1 和 AG 2)和分布式 AG 2(包含 AG 1 和 AG 3)。

在前面两个示例中,三个可用性组中至多可以具有 27 个副本,这些副本可用于只读查询。

无论是那种分布式的方案,好处都显而易见,每个环境中都有一个群集,因此群集的检测可靠性能够解决,而远程的容灾由alwayson去完成,在数据库层完成,这样更加稳定。

分布式可用性组是一种特殊类型的可用性组,它跨两个单独的可用性组。 加入分布式可用性组的可用性组无需处于同一位置。 它们可以是物理也可以是虚拟的,可以在本地、公有云中或支持可用性组部署的任何位置。 这包括跨域甚至跨平台 - 例如一个可用性组托管在 Linux ,一个托管在 Windows 上。 只要两个可用性组可以进行通信,就可以使用它们配置分布式可用性组。

在SQL 2017 里面创建alwayson时候可以有三个选项:widows 故障转移群集、external、None

  • Windows Server 故障转移群集

    当可用性组托管在属于 Windows Server 故障转移群集的  SQL Server 的实例上时使用,以实现高可用性和灾难恢复。 适用于所有受支持的  SQL Server 版本。

  • EXTERNAL

    当可用性组托管在由外部群集技术(例如 Linux 上的 Pacemaker)管理的  SQL Server 的实例上时使用,以实现高可用性和灾难恢复。 适用于 SQL Server 2017 (14.x) 及更高版本。

  • NONE

    当可用性组托管在不由群集技术管理的  SQL Server 的实例上时使用,以实现读取缩放和负载均衡。 适用于 SQL Server 2017 (14.x) 及更高版本。

因此在SQL 2017 环境中是可以不依赖于windows 群集,也可以跨越操作系统,提供了更多的容灾的方案。 特别是私有云和公有云之间的数据同步和容灾实现。

浅谈实现SQL Server远距离异地容灾相关推荐

  1. 只是浅谈MS SQL Server的Page Splits运作原理

    一直以来,很多文章或书籍都会提到数据库在对数据做增删修都会因为数据异动导致Page Splits的产生. 一旦过度的分割就会提高所谓的逻辑片段,而要降低逻辑片段就得对数据表或索引做Rebuild或Re ...

  2. 谈谈双活业务中心和异地容灾备份设计

    点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 今天谈下多数据中心和异地容灾备份方面的内容.在前面一篇文章里面我详细谈到过一个软件业务系统的高可用性设计 ...

  3. 通俗易懂浅谈一下服务器异地容灾备份

    最近关于服务器异地容灾备份等话题热度逐渐上升,服务端的网络.机房硬件等一旦出现故障,将有可能导致大规模的服务瘫痪,商城订单下降等,进而对公司造成经济损失. 服务端灾备不仅是运维人员的工作,前后端开发人 ...

  4. 一名小小的SQL Server DBA想谈一下SQL Server的能力

    一名小小的SQL Server DBA想谈一下SQL Server的能力 百度上暂时还没有搜索到相关的个人写的比较有价值的文章,至少在中文网络的世界里面没有 但是在微软的网站有这样一篇文章:<比 ...

  5. 浅谈 AnalyticDB SQL 优化

    浅谈 AnalyticDB SQL 优化 前言 ADB计算引擎 ADB优化器 ADB索引 ADB SQL开发与表分区设计 ADB SQL开发的性能指南 ADB慢SQL的定位和常见原因 ADB慢SQL优 ...

  6. 异地容灾系统方案设计与分析

    目 录 第 1 章 容灾技术规范 1.1 容灾的总体规划 1.1.1 技术指标 RPO.RTO 1.1.2 国际标准 SHARE 78 1.1.2.1 Tier0 1.1.2.2 Tier1 1.1. ...

  7. 大亚湾国土资源数据库异地容灾备份采购项目

    随着的大亚湾区国土资源信息化建设的不断深化,国土资源信息化成果已经由最初的服务国土资源管理变为支撑全区基础地理信息服务.金土工程.数字大亚湾地理空间框架.不动产数据和"四规合一"空 ...

  8. 佛山市住房公积金数据异地容灾备份系统

    一.       项目详细内容和要求 1.1.      项目介绍 佛山市住房公积金管理中心经过多年来持续的发展,实现了一市五区公积金业务的统一管理.特别在新系统启用后,中心以及各管理部的公积金数据实 ...

  9. 四川省公安厅交通警察总队异地容灾系统建设采购

    预审公告标题: 四川省公安厅交通警察总队异地容灾系统建设采购项目征求意见稿 采购项目名称: 四川省公安厅交通警察总队异地容灾系统建设采购项目 采购项目编号: ZY[2011]0148 公告发布时间: ...

最新文章

  1. 经常使用的npm命令
  2. 代码版本控制工具Concurrent Versions System(CVS)的三种用配置库更新本地工作目录文件的方法
  3. python open方法下file模块_python-linecache模块读取文件用法
  4. java导出word表格_使用PowerDesigner16.5 逆向数据库 导出word文档
  5. FlashCache初体验
  6. 推荐算法是今日头条的核心竞争力吗?
  7. .NET下数据访问层+webform前台 技术大比拼
  8. AMD CPU驱动被曝漏洞,可使 KASLR崩溃、密码泄露
  9. PX4 vision_to_mavros定位
  10. 微信好友管理工具_助手_系统软件哪个最好?
  11. 清华大学829电磁场考研资料
  12. pillow软件 Android,Pillow app
  13. 【JS】用JS发送电子邮件
  14. 响应“交通强国”战略,百度地图重构行业生态价值
  15. 计算机怎么通电启动,电脑通电自动开机怎么设置
  16. 西方情人节前一天的话
  17. 如何批量导入不同文件夹中的图片
  18. 世界上首先实现存储的电子数字计算机,世界上首先实现存储程序的电子数字计算机是ENIAC。...
  19. java泛型(360°无死角讲解)
  20. 360度盖茨:操作系统之外的

热门文章

  1. 浅谈java对象的equals方法
  2. JWT token信息保存
  3. .NET (二)委托第二讲:内置委托Func
  4. 学习nodejs+express+angular+socket.io ,投票demo
  5. C++学习札记(1)
  6. TypeScript 1.5 Beta带来修饰元数据支持
  7. iOS开发UI篇—实现一个私人通讯录小应用(一)
  8. 双系统重装win7/Xp后如何恢复ubuntu引导--转载
  9. CVS的几个学习小站及配置说明
  10. Java 中的几种线程池,你之前用对了吗,互联网 面试官 如何面试