前段时间研究了一下Sql Server Always On High Group,之后还做了个ppt给同事交流了一下,这边拿出来分享一下。
SQL Server Always On 是微软提出的MSSQL全面的高可用性和灾难恢复解决方案 FCI(故障转移群集实例) + AG(可用性组) = Always On Always On AG: 1)主副本:数据库的读写请求,发送事务日志到辅助副本 2)辅助副本:数据库的故障转移,进行只读访问和备份
安装配置了1托2的测试环境,通过监听连接上数据库后进行如下操作 1.在主副本上新建登录用户 正常状态登录成功 Failover后登录失败 只读路由登录失败 结论:DBA必须在每个副本进行配置 (job亦然) 2.跨数据库事务&分布式事务 不支持 原因:产生failover的時候,容易出现数据不一致的情况。现sql server2016,支持分布式事务alwayson架构。
优缺点分析
缺點: 1.由於Always On AG是獨立存儲,因此需要更多的磁盤空間來存儲複製的數據。 2.非實例級別的解決方案。即使是可用組内的跨數據庫事務也不支持。 3.并未實現真正意義上的負載均衡。 優點: 1.Always On AG的各個節點是獨立存儲,可以避免類似cluster共享存儲的故障而造成整個可用性方案失效。 2.輔助副本可以配置在異地,實現異地容災。 3.實例下的多個數據庫是獨立同步的,輔助副本之間的同步工作也是獨立的,當某數據庫發生同步失敗會挂起該數據庫,但并不影響其他數據庫的工作。 4.利用輔助副本可以實現一定的讀寫分離,單純的查詢操作可以指向到輔助副本,爲主副本分擔一定壓力。相對於cluster和mirror而言,硬件資源可以得到更好地利用。 5.可利用輔助副本進行定期備份。 6.通過偵聽器進行連接,當發生failover的時候,無需修改應用程式等配置。
总结:always on 高可用性组,用作读写分离和异地灾备是很好的解决方案。(sqlserver数据库镜像在微软后期好像就会被弃用了,赶紧拿起alwayson把)
