?

Log in

No account? Create an account
 
 
04 July 2019 @ 02:04 pm
AlwaysOn кластер  
Коллеги, есть задачка, нужна помощь. В наличии Failover Cluster с двумя нодами MS SQL AlwaysOn. Все работает зашибись, при падении основной ноды вторая автоматом переключается на Primary, все как доктор прописал. Но хотелось бы извращений, в частности, чтоб автоматом переключалось обратно, когда node1 оживает и хочет быть Primary, но увы - она теперь Secondary и обратно файловим только ручками. Пример: в главном офисе node1, в одном из удаленных - node2. В главном офисе валится сеть или электричество, node2 становится главной и все бранчи работают с ней. Главный офис оживает, но node1 в режиме Secondary, а это не по-фэншуйски, да и бэкап логов заряжен на реплику, собирай их потом.
Пробовал назначать Preferred Owners только node1 (Оснастка Failover Cluster - Roles) - безрезультатно. Также пробовал лишать права голоса вторую ноду - она расстроилась и отказалась становиться Primary (ну да, чего я ожидал?).
Остается вариант со скриптами - периодическая проверка ноды на Primary/Secondary и во втором случае нечто вроде ALTER AVAILABILITY GROUP [AG] FAILOVER.
Но хотелось бы сначала узнать, есть ли другие возможности? Доп информация: ноды работают в синхронном режиме, Файловер мод - автоматический.
 
 
 
termsl: pic#120993127termsl on July 4th, 2019 12:39 pm (UTC)
Делаешь на главном плановое задание, с повторением как можно чаще, в котором скриптом назначаешь его праймари.
СергейЮричrern on July 4th, 2019 12:44 pm (UTC)
Пока это единственный работающий вариант, угу. Не обязательно сильно часто, раз в пять минут достаточно. Ну и нахлобучивать к нему проверку статуса баз, а то если они не успели синхронизироваться, а мы переключим - будет грустно всем.
termsl: pic#120993127termsl on July 4th, 2019 12:53 pm (UTC)
ALTER AVAILABILITY GROUP "GROUP" FAILOVER; - вроде не даст переключиться, если базы не синхронизированы, принудительно, с потерей надо сказать:
ALTER AVAILABILITY GROUP "GROUP" FORCE_FAILOVER_ALLOW_DATA_LOSS;
СергейЮричrern on July 4th, 2019 01:03 pm (UTC)
Отлично, если так. Значит джоб по ошибке стопим и далее со всеми остановками, до полной синхронизации.