2.5 操作2.5.1可用性组升级

在升级之前,可以参考升级AG副本实例的模型和实践。

升级实例的顺序依赖于角色是否为辅助副本和他们是同步或异步副本。首先升级承载异步副本的实例,然后升级承载同步副本的实例。

注意:如果一个AG只有异步副本,为了避免数据丢失,修改一个副本为同步,等待直到同步后,然后升级该副本。


以下为AG在Linux上执行滚动升级SQL Server实例。


备份每个数据库


停止即将升级的目标辅助副本节点上的资源

pcsconstraintlocationag_cluster-masteravoidsnodeName1


在辅助副本上升级SQL Server

sudoyumupdatemssql-serversudoyumupdatemssql-server-ha


移除位置约束

pcsconstraintremovelocation-ag_cluster-master-rhel1--INFINITY


验证升级后资源启动、辅助副本已连接并同步

pcsstatus


在所有辅助副本升级后,手工故障转移到一个同步副本。

对于AG为EXTERNAL类型,使用群集管理工具来故障转移;

对于AG为NONE类型,使用Transact-SQL来故障转移。

sudopcsresourcemoveag_cluster-master<targetReplicaName>--master

重要:以下步骤仅适用于AG没有群集管理器的情况。


如果AG为NONE类型,手动故障转移。按以下顺序完成。

1.设置主副本为辅助

ALTERAVAILABILITYGROUP[ag1]SET(ROLE=SECONDARY);

2.设置同步辅助副本为主

ALTERAVAILABILITYGROUP[ag1]FAILOVER;


在故障转移后,在旧的主副本上升级SQL Server。

#addconstraintfortheresourcetostopontheupgradednode#replace'nodename2'withthenameoftheclusternodetargetedforupgradepcsconstraintlocationag_cluster-masteravoidsnodeName2#upgrademssql-serverandmssql-server-hapackagessudoyumupdatemssql-serversudoyumupdatemssql-server-ha#removetheconstraint;makesuretheresourceisstartedandreplicaisconnectedandsynchronizedpcsconstraintremovelocation-ag_cluster-master-rhel1--INFINITY


对于AG类型为EXTERNAL,清理手动故障转移导致的位置约束

sudopcsconstraintremovecli-prefer-ag_cluster-master


对于新升级的辅助副本(即旧的主副本)恢复数据移动

ALTERDATABASEdatabase_nameSETHADRRESUME;


在升级完所有的服务器后,你可以按需将主副本切换回来。