Der Preferred Owner lässt sich normalerweise so vewenden, dass der Cluster-Dienst, falls Failback eingeschaltet ist, automatisch wieder auf einen der bevorzugten Knoten zurück schwenkt. Zwar kann man einen Preferred Owner bei der Rolle im Failover Cluster Manager eingeben, diese Einstellung wird von AlwaysOn allerdings ignoriert. Geht man im Failover Cluster Manager auf die entsprechende Gruppe, wählt dort Properties, so sieht man die Preferred Owner.
Zwar lässt sich hier ein Knoten als Preferred Owner einstellen und es kommt auch nicht zu keiner Fehlermeldung, dennoch wird dieser Preferred Owner bei der Failback Einstellung von AlwaysOn ignoriert.
Mit folgendem kleinen Script kann man sich jedoch behelfen:
DECLARE @Fallback INT;
DECLARE @AG nvarchar(50)=N'LSIRAG'
SELECT @Fallback=COUNT(*)
FROM sys.dm_hadr_availability_replica_states S
JOIN sys.availability_groups A ON S.group_id=A.group_id
WHERE S.is_local=1 AND S.ROLE=2
AND S.connected_state=1
AND S.recovery_health=1
AND A.name=@AG;
IF(@Fallback=1)
BEGIN
DECLARE @SQL VARCHAR(200)= 'ALTER AVAILABILITY GROUP ' + @AG + ' FAILOVER;'
EXEC (@SQL)
END
Dieses Script packt man un in einen SQL-Job, der der alle 15 Minuten ausgeführt wird.
VORSICHT: Der Hauptknoten wird immer wenn er synchron läuft, die Gruppe an sich reißen, spätestens nach 15 Minuten. Will man das nicht - Stichwort Patch - , dann muss man vorher den Job deaktiviern.