AlwaysOn 2017 新特性和提升
AlwaysOn 2017一些新特性和增强:
l 可用性组参数配置:最小提交辅助副本数(REQUIRED_COPIES_TO_COMMIT)
l 读取缩放可用性组(Read-scale availability groups)
l Linux上的可用性组
l Linux上的故障转移群集实例
l 跨平台的可用性组
可用性组参数配置:最小提交辅助副本数(REQUIRED_COPIES_TO_COMMIT)
CREATE AVAILABILITY GROUP [ag1] WITH (REQUIRED_COPIES_TO_COMMIT = 1)
让用户来配置在主副本上提交事务前,需要提交事务的最小副本数量。确保事务等待直到事务日志在最小辅助副本上更新。默认值为0,最大值为副本数减去1(相关副本必需为同步提交模式)。通常,如果承载辅助同步副本的 SQL 服务器停止响应,主副本将标记该辅助副本未同步,并且继续。当无响应的数据库重新联机时它将处于“未同步”状态,并且副本将被标记为不正常,直到主可以使其再次同步。如果最小副本数不可用则在主副本上的提交将失败。ALTER AVAILABILITY GROUP支持REQUIRED_COPIES_TO_COMMIT。
读取缩放可用性组(Read-scale availability groups)
在 SQL Server 2016 及更早版本中,所有可用性组都需要群集。 群集用于提供业务连续性,实现高可用性和灾难恢复 (HADR)。 此外,配置次要副本以执行读取操作。 如果目标不是高可用性,配置和运行群集消耗了相当大的运营开销。 SQL Server 2017 引入了不需要群集的读取缩放可用性组。
如果业务要求是转换主要副本上运行的任务关键型工作负荷的资源,用户现在可以使用只读路由或直接连接到可读次要副本。 而无需依赖于与任何群集技术的集成。 Windows 和 Linux 平台上的 SQL Server 2017 支持这些新功能。
这不是高可用性配置。 不需要监视基础结构、协调故障检测和进行自动故障转移。 如果没有群集,SQL Server 无法提供自动化高可用性解决方案可提供的低恢复时间目标 (RTO)。 如果需要高可用×××,请使用群集管理器(Windows 上的 Windows Server 故障转移群集或 Linux 上的 Pacemaker)。
读取缩放可用性组可提供灾难恢复功能。 当只读副本处于同步提交模式时,可提供恢复点目标 (RPO) 0。 要对读取缩放可用性组进行故障转移,请参阅对读取缩放可用性组上的主要副本进行故障转移。
总体来说,该特性只有DR功能,不支持HA。该特性适用于只是为了在多个服务器上部署多个只读副本,分担读取压力。
不同地理位置的解决方案可以使用分布式可用性组实现读取缩放解决方案。 这可以用于减轻主要副本、可读次要副本以及靠近读取工作负荷源的站点的读取工作负荷。
参考:
https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/read-scale-availability-groups
https://blogs.msdn.microsoft.com/sql_pfe_blog/2017/11/17/sql-server-2017-read-scale-availability-groups/
在 Linux 上配置读取缩放可用性组
Linux上的可用性组
在Linux上配置AG基于群集Pacemaker和仲裁Corosync
参考:
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-availability-group-overview
Linux上的故障转移群集实例
在Linux上配置FCI官方文档还很简陋,从共享存储来看,目前支持iSCSI、NFS和SMB协议。
参考:
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-shared-disk-cluster-concepts
跨平台的可用性组
此配置不支持高可用性,因为没有任何群集解决方案来管理跨平台配置。创建具有 Windows server 上的一个副本和 Linux 服务器上的其他副本始终在可用性组 (AG) 的步骤。 此配置是跨平台,因为副本均在不同操作系统上。 迁移到另一个平台或灾难恢复 (DR) 使用此配置。
参考:
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-availability-group-cross-platform?view=sql-server-2017&viewFallbackFrom=sql-server-linux-2017